diff options
author | Tristan Gingold <tgingold@free.fr> | 2019-11-12 20:34:35 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2019-11-12 20:36:05 +0100 |
commit | 987fa0d6f09a71073dce20657917f87178fb7cb1 (patch) | |
tree | f310077e7edd3a13b11ca1b855f57f8786fa7b4c | |
parent | 3aed7e6e47610750f50cce9bdc547f975e01e656 (diff) | |
download | ghdl-987fa0d6f09a71073dce20657917f87178fb7cb1.tar.gz ghdl-987fa0d6f09a71073dce20657917f87178fb7cb1.tar.bz2 ghdl-987fa0d6f09a71073dce20657917f87178fb7cb1.zip |
synth: create const default values, adjust assign_value.
Fix #1014
-rw-r--r-- | src/synth/synth-stmts.adb | 6 | ||||
-rw-r--r-- | src/synth/synth-values.adb | 4 |
2 files changed, 6 insertions, 4 deletions
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); |