From 987fa0d6f09a71073dce20657917f87178fb7cb1 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 12 Nov 2019 20:34:35 +0100 Subject: synth: create const default values, adjust assign_value. Fix #1014 --- src/synth/synth-stmts.adb | 6 ++++-- src/synth/synth-values.adb | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/synth/synth-stmts.adb b/src/synth/synth-stmts.adb index be804c978..b55297dc1 100644 --- a/src/synth/synth-stmts.adb +++ b/src/synth/synth-stmts.adb @@ -416,7 +416,8 @@ package body Synth.Stmts is case Targ.Kind is when Value_Discrete => Targ.Scal := Val.Scal; - when Value_Array => + when Value_Const_Array + | Value_Array => declare Len : constant Iir_Index32 := Val.Arr.Len; begin @@ -425,7 +426,8 @@ package body Synth.Stmts is Val.Arr.V (I), Loc); end loop; end; - when Value_Record => + when Value_Const_Record + | Value_Record => for I in Targ.Rec.V'Range loop Assign_Value (Targ.Rec.V (I), Val.Rec.V (I), Loc); end loop; diff --git a/src/synth/synth-values.adb b/src/synth/synth-values.adb index 657cd457f..b36e35431 100644 --- a/src/synth/synth-values.adb +++ b/src/synth/synth-values.adb @@ -811,7 +811,7 @@ package body Synth.Values is for I in Arr.V'Range loop Arr.V (I) := Create_Value_Default (El_Typ); end loop; - return Create_Value_Array (Typ, Arr); + return Create_Value_Const_Array (Typ, Arr); end; when Type_Unbounded_Array => raise Internal_Error; @@ -823,7 +823,7 @@ package body Synth.Values is for I in Els.V'Range loop Els.V (I) := Create_Value_Default (Typ.Rec.E (I).Typ); end loop; - return Create_Value_Record (Typ, Els); + return Create_Value_Const_Record (Typ, Els); end; when Type_Access => return Create_Value_Access (Typ, Null_Heap_Index); -- cgit v1.2.3