diff options
author | Tristan Gingold <tgingold@free.fr> | 2017-11-08 05:45:55 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2017-11-08 05:45:55 +0100 |
commit | 9e01b1290d44a275160a0d87454e35918fe0d2e5 (patch) | |
tree | 162a7dbc77d34b87fd8d09105b0c5e26ae4cf70b /src/vhdl/sem_specs.adb | |
parent | e663f3eaa705b80acdb7c97f52ac50b4beb76b7d (diff) | |
download | ghdl-9e01b1290d44a275160a0d87454e35918fe0d2e5.tar.gz ghdl-9e01b1290d44a275160a0d87454e35918fe0d2e5.tar.bz2 ghdl-9e01b1290d44a275160a0d87454e35918fe0d2e5.zip |
Use flist for disconnection specification and component specification.
Diffstat (limited to 'src/vhdl/sem_specs.adb')
-rw-r--r-- | src/vhdl/sem_specs.adb | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/vhdl/sem_specs.adb b/src/vhdl/sem_specs.adb index 0909315e1..a8a921c7b 100644 --- a/src/vhdl/sem_specs.adb +++ b/src/vhdl/sem_specs.adb @@ -959,7 +959,7 @@ package body Sem_Specs is Type_Mark : Iir; Atype : Iir; Time_Expr : Iir; - List : Iir_List; + List : Iir_Flist; El : Iir; Sig : Iir; Prefix : Iir; @@ -984,17 +984,16 @@ package body Sem_Specs is end if; List := Get_Signal_List (Dis); - if List = Iir_List_All or List = Iir_List_Others then + if List in Iir_Flists_All_Others then -- FIXME: checks todo null; else - for I in Natural loop + for I in Flist_First .. Flist_Last (List) loop El := Get_Nth_Element (List, I); - exit when El = Null_Iir; Sem_Name (El); El := Finish_Sem_Name (El); - Replace_Nth_Element (List, I, El); + Set_Nth_Element (List, I, El); Sig := Get_Named_Entity (El); Sig := Name_To_Object (Sig); @@ -1321,7 +1320,7 @@ package body Sem_Specs is return Res; end Apply_Component_Specification; - List : Iir_List; + List : Iir_Flist; El : Iir; Inter : Sem_Scopes.Name_Interpretation_Type; Comp : Iir; @@ -1339,7 +1338,7 @@ package body Sem_Specs is end if; List := Get_Instantiation_List (Spec); - if List = Iir_List_All then + if List = Iir_Flist_All then -- LRM93 5.2 -- * If the reserved word ALL is supplied, then the configuration -- specification applies to all instances of the specified @@ -1354,7 +1353,7 @@ package body Sem_Specs is Warning_Msg_Sem (Warnid_Specs, +Spec, "component specification applies to no instance"); end if; - elsif List = Iir_List_Others then + elsif List = Iir_Flist_Others then -- LRM93 5.2 -- * If the reserved word OTHERS is supplied, then the -- configuration specification applies to instances of the @@ -1386,9 +1385,8 @@ package body Sem_Specs is -- instantiation statement whose corresponding instantiated unit -- does not name a component. -- FIXME: error message are *really* cryptic. - for I in Natural loop + for I in Flist_First .. Flist_Last (List) loop El := Get_Nth_Element (List, I); - exit when El = Null_Iir; Inter := Sem_Scopes.Get_Interpretation (Get_Identifier (El)); if not Valid_Interpretation (Inter) then Error_Msg_Sem |