aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/synth/synth-expr.adb9
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;