aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/synth/synth-vhdl_eval.adb6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/synth/synth-vhdl_eval.adb b/src/synth/synth-vhdl_eval.adb
index 1ca559dec..0ce6fcc91 100644
--- a/src/synth/synth-vhdl_eval.adb
+++ b/src/synth/synth-vhdl_eval.adb
@@ -605,6 +605,12 @@ package body Synth.Vhdl_Eval is
Res : Memtyp;
begin
Check_Matching_Bounds (Le_Typ, Re_Typ, Expr);
+ if L_Len = 0 and R_Len = 0 then
+ -- LRM08 9.2.5 Adding operators
+ -- If both operands are null arrays, then the result of the
+ -- concatenation is the right operand.
+ return Right;
+ end if;
Bnd := Elab.Vhdl_Types.Create_Bounds_From_Length
(Get_Uarray_Index (Res_Typ).Drange, L_Len + R_Len);
El_Typ := Unshare_Type_Expr (Le_Typ,