aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-10-04 13:11:02 +0200
committerTristan Gingold <tgingold@free.fr>2022-10-04 13:11:02 +0200
commitb27cc2de7294a3f1730465fad2f9f772212a5345 (patch)
tree1a11babf0f1d552726c526e39d5978a951758af6 /src/synth
parent35676f5d385d139edc0cf6373c580577c16e6ea5 (diff)
downloadghdl-b27cc2de7294a3f1730465fad2f9f772212a5345.tar.gz
ghdl-b27cc2de7294a3f1730465fad2f9f772212a5345.tar.bz2
ghdl-b27cc2de7294a3f1730465fad2f9f772212a5345.zip
elab-vhdl_objtypes(unshare): handle slice_type. Fix #2205
Diffstat (limited to 'src/synth')
-rw-r--r--src/synth/elab-vhdl_objtypes.adb6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/synth/elab-vhdl_objtypes.adb b/src/synth/elab-vhdl_objtypes.adb
index b027c84f1..1a04fc411 100644
--- a/src/synth/elab-vhdl_objtypes.adb
+++ b/src/synth/elab-vhdl_objtypes.adb
@@ -1034,7 +1034,7 @@ package body Elab.Vhdl_Objtypes is
| Type_Float =>
null;
when Type_Slice =>
- raise Internal_Error;
+ Res.Slice_El := Unshare (T.Slice_El, Pool);
when Type_Array
| Type_Vector =>
Res.Arr_El := Unshare (T.Arr_El, Pool);
@@ -1084,7 +1084,9 @@ package body Elab.Vhdl_Objtypes is
| Type_Float =>
null;
when Type_Slice =>
- raise Internal_Error;
+ Res.Slice_El := Unshare_Type (Typ.Slice_El,
+ Get_Array_Element (Base),
+ Global, Pool);
when Type_Array
| Type_Vector =>
Res.Arr_El := Unshare_Type (Typ.Arr_El,