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 /src | |
| 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
Diffstat (limited to 'src')
| -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);  | 
