aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/synth/elab-vhdl_expr.adb4
-rw-r--r--src/synth/synth-static_oper.adb2
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