diff options
author | Thomas Quinot <quinot@adacore.com> | 2007-08-14 10:46:03 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2007-08-14 10:46:03 +0200 |
commit | 1d6f10a19473c4c174bcb8295163be080ae6f64e (patch) | |
tree | e043ad5b7ca9b739ced688a5040d0ff234515f08 /gcc/ada/sem_elab.adb | |
parent | f97ccb3a84b27374661fd1f9540efb360d976019 (diff) | |
download | gcc-1d6f10a19473c4c174bcb8295163be080ae6f64e.zip gcc-1d6f10a19473c4c174bcb8295163be080ae6f64e.tar.gz gcc-1d6f10a19473c4c174bcb8295163be080ae6f64e.tar.bz2 |
table.adb, [...] (Append): Reimplement in terms of Set_Item.
2007-08-14 Thomas Quinot <quinot@adacore.com>
* table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
of Set_Item.
(Set_Item): When the new item is an element of the currently allocated
table passed by reference, save a copy on the stack if we're going
to reallocate. Also, in Table.Set_Item, make sure we test the proper
variable to determine whether to call Set_Last.
* sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
symbols-vms.adb, symbols-processing-vms-alpha.adb,
symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
some occurrences of the pattern
T.Increment_Last;
T.Table (T.Last) := Value;
with a cleaner call to
T.Append (Value);
From-SVN: r127442
Diffstat (limited to 'gcc/ada/sem_elab.adb')
-rw-r--r-- | gcc/ada/sem_elab.adb | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/gcc/ada/sem_elab.adb b/gcc/ada/sem_elab.adb index bae6a9f..137ac4e 100644 --- a/gcc/ada/sem_elab.adb +++ b/gcc/ada/sem_elab.adb @@ -1906,14 +1906,13 @@ package body Sem_Elab is -- Delay this call if we are still delaying calls if Delaying_Elab_Checks then - Delay_Check.Increment_Last; - Delay_Check.Table (Delay_Check.Last) := + Delay_Check.Append ( (N => N, E => E, Orig_Ent => Orig_Ent, Curscop => Current_Scope, Outer_Scope => Outer_Scope, - From_Elab_Code => From_Elab_Code); + From_Elab_Code => From_Elab_Code)); return; -- Otherwise, call phase 2 continuation right now @@ -2031,8 +2030,7 @@ package body Sem_Elab is Outer_Level_Sloc := Loc; end if; - Elab_Visited.Increment_Last; - Elab_Visited.Table (Elab_Visited.Last) := E; + Elab_Visited.Append (E); -- If the call is to a function that renames a literal, no check -- is needed. @@ -2076,9 +2074,7 @@ package body Sem_Elab is else pragma Assert (Nkind (Sbody) = N_Subprogram_Body); - Elab_Call.Increment_Last; - Elab_Call.Table (Elab_Call.Last).Cloc := Loc; - Elab_Call.Table (Elab_Call.Last).Ent := E; + Elab_Call.Append ((Cloc => Loc, Ent => E)); if Debug_Flag_LL then Write_Str ("Elab_Call.Last = "); |