diff options
Diffstat (limited to 'src/vhdl/translate/trans-chap2.adb')
-rw-r--r-- | src/vhdl/translate/trans-chap2.adb | 31 |
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 |