aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/sem_specs.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2017-11-08 05:45:55 +0100
committerTristan Gingold <tgingold@free.fr>2017-11-08 05:45:55 +0100
commit9e01b1290d44a275160a0d87454e35918fe0d2e5 (patch)
tree162a7dbc77d34b87fd8d09105b0c5e26ae4cf70b /src/vhdl/sem_specs.adb
parente663f3eaa705b80acdb7c97f52ac50b4beb76b7d (diff)
downloadghdl-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.adb18
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