aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/translate/trans-helpers2.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2017-11-11 08:48:28 +0100
committerTristan Gingold <tgingold@free.fr>2017-11-11 08:48:28 +0100
commite8a21ffe5226aad4970bd1facd4a3464a4b436f1 (patch)
tree6dabc27375bc31dbd435d50a98dc223fa4145ac2 /src/vhdl/translate/trans-helpers2.adb
parent9a90393e30827308ec6cd834963f5359158115a0 (diff)
downloadghdl-e8a21ffe5226aad4970bd1facd4a3464a4b436f1.tar.gz
ghdl-e8a21ffe5226aad4970bd1facd4a3464a4b436f1.tar.bz2
ghdl-e8a21ffe5226aad4970bd1facd4a3464a4b436f1.zip
Rework list implementation, use iterator.
Diffstat (limited to 'src/vhdl/translate/trans-helpers2.adb')
-rw-r--r--src/vhdl/translate/trans-helpers2.adb11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/vhdl/translate/trans-helpers2.adb b/src/vhdl/translate/trans-helpers2.adb
index c1aab8e5f..d332711ac 100644
--- a/src/vhdl/translate/trans-helpers2.adb
+++ b/src/vhdl/translate/trans-helpers2.adb
@@ -211,19 +211,18 @@ package body Trans.Helpers2 is
procedure Register_Signal_List (List : Iir_List; Proc : O_Dnode)
is
+ It : List_Iterator;
El : Iir;
Sig : Mnode;
begin
- if List = Null_Iir_List then
- return;
- end if;
- for I in Natural loop
- El := Get_Nth_Element (List, I);
- exit when El = Null_Iir;
+ It := List_Iterate_Safe (List);
+ while Is_Valid (It) loop
+ El := Get_Element (It);
Open_Temp;
Sig := Chap6.Translate_Name (El, Mode_Signal);
Register_Signal (Sig, Get_Type (El), Proc);
Close_Temp;
+ Next (It);
end loop;
end Register_Signal_List;