diff options
-rw-r--r-- | src/synth/synth-expr.adb | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/synth/synth-expr.adb b/src/synth/synth-expr.adb index 8320f2897..bfaef8f17 100644 --- a/src/synth/synth-expr.adb +++ b/src/synth/synth-expr.adb @@ -946,9 +946,14 @@ package body Synth.Expr is function Synth_Compare (Id : Compare_Module_Id) return Value_Acc is N : Net; + L, R : Value_Acc; + Typ : Type_Acc; begin - N := Build_Compare (Build_Context, Id, - Get_Net (Left), Get_Net (Right)); + pragma Assert (Left_Type = Right_Type); + Typ := Get_Value_Type (Syn_Inst, Left_Type); + L := Synth_Subtype_Conversion (Left, Typ, Expr); + R := Synth_Subtype_Conversion (Right, Typ, Expr); + N := Build_Compare (Build_Context, Id, Get_Net (L), Get_Net (R)); Set_Location (N, Expr); return Create_Value_Net (N, Boolean_Type); end Synth_Compare; |