diff options
-rw-r--r-- | src/synth/elab-vhdl_expr.adb | 4 | ||||
-rw-r--r-- | src/synth/synth-static_oper.adb | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/synth/elab-vhdl_expr.adb b/src/synth/elab-vhdl_expr.adb index d105fc730..d897fee69 100644 --- a/src/synth/elab-vhdl_expr.adb +++ b/src/synth/elab-vhdl_expr.adb @@ -437,7 +437,9 @@ package body Elab.Vhdl_Expr is procedure Check_Matching_Bounds (L, R : Type_Acc; Loc : Node) is begin - null; + if not Are_Types_Equal (L, R) then + Error_Msg_Elab (+Loc, "non matching bounds"); + end if; end Check_Matching_Bounds; -- Return the bounds of a one dimensional array/vector type and the diff --git a/src/synth/synth-static_oper.adb b/src/synth/synth-static_oper.adb index 8b431b21c..a5356398e 100644 --- a/src/synth/synth-static_oper.adb +++ b/src/synth/synth-static_oper.adb @@ -328,7 +328,7 @@ package body Synth.Static_Oper is Res_St : Type_Acc; Res : Memtyp; begin - Check_Matching_Bounds (Left.Typ, Right.Typ, Expr); + Check_Matching_Bounds (Left.Typ, Re_Typ, Expr); Bnd := Synth.Vhdl_Oper.Create_Bounds_From_Length (Syn_Inst, Get_Index_Type (Get_Type (Expr), 0), 1 + Rlen); Res_St := Create_Onedimensional_Array_Subtype |