aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/translate/trans-chap2.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2017-11-06 20:20:52 +0100
committerTristan Gingold <tgingold@free.fr>2017-11-06 20:20:52 +0100
commit1984d2adb083153f03eb7775d956445772ca484f (patch)
tree92939d572fd44940755e30d3963101c0a797f9e7 /src/vhdl/translate/trans-chap2.adb
parentf9dd14670a2b17575bc879f82030faaaabdbbea6 (diff)
downloadghdl-1984d2adb083153f03eb7775d956445772ca484f.tar.gz
ghdl-1984d2adb083153f03eb7775d956445772ca484f.tar.bz2
ghdl-1984d2adb083153f03eb7775d956445772ca484f.zip
Use Flist for array indexes.
Diffstat (limited to 'src/vhdl/translate/trans-chap2.adb')
-rw-r--r--src/vhdl/translate/trans-chap2.adb31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/vhdl/translate/trans-chap2.adb b/src/vhdl/translate/trans-chap2.adb
index 790200218..d975a2ac1 100644
--- a/src/vhdl/translate/trans-chap2.adb
+++ b/src/vhdl/translate/trans-chap2.adb
@@ -1134,6 +1134,23 @@ package body Trans.Chap2 is
end case;
end Instantiate_Iir_List_Info;
+ procedure Instantiate_Iir_Flist_Info (L : Iir_Flist)
+ is
+ El : Iir;
+ begin
+ case L is
+ when Null_Iir_Flist
+ | Iir_Flist_All
+ | Iir_Flist_Others =>
+ return;
+ when others =>
+ for I in Flist_First .. Flist_Last (L) loop
+ El := Get_Nth_Element (L, I);
+ Instantiate_Iir_Info (El);
+ end loop;
+ end case;
+ end Instantiate_Iir_Flist_Info;
+
-- B must be passed by reference.
procedure Adjust_Info_Basetype (B : access Ortho_Info_Basetype_Type;
Orig : access Ortho_Info_Basetype_Type) is
@@ -1422,6 +1439,20 @@ package body Trans.Chap2 is
when others =>
raise Internal_Error;
end case;
+ when Type_Iir_Flist =>
+ case Get_Field_Attribute (F) is
+ when Attr_None =>
+ Instantiate_Iir_Flist_Info (Get_Iir_Flist (N, F));
+ when Attr_Of_Maybe_Ref =>
+ if not Get_Is_Ref (N) then
+ Instantiate_Iir_Flist_Info (Get_Iir_Flist (N, F));
+ end if;
+ when Attr_Ref
+ | Attr_Of_Ref =>
+ null;
+ when others =>
+ raise Internal_Error;
+ end case;
when Type_PSL_NFA
| Type_PSL_Node =>
-- TODO