diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-30 15:41:24 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-30 15:41:24 +0200 |
commit | c01817d2e03b80c93d4be08927d4573777c5e129 (patch) | |
tree | 1880ea83ac066801135cc69321359f40a3523cb9 /gcc/ada/lib-xref-alfa.adb | |
parent | 996c8821a235a2313d3574d0815044847f7b5c14 (diff) | |
download | gcc-c01817d2e03b80c93d4be08927d4573777c5e129.zip gcc-c01817d2e03b80c93d4be08927d4573777c5e129.tar.gz gcc-c01817d2e03b80c93d4be08927d4573777c5e129.tar.bz2 |
[multiple changes]
2011-08-30 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Add_Internal_Interface_Entities): If serious errors have
been reported and a subprogram covering an interface primitive is not
found then skip generating the internal entity. Done to avoid crashing
the frontend.
(Check_Abstract_Overriding): Change text of error of wrong formal of
protected subprogram or entry. Done for consistency to emit exactly the
same error reported by Check_Synchronized_Overriding. In addition, the
error is restricted to protected types (bug found working on AI05-0090)
2011-08-30 Yannick Moy <moy@adacore.com>
* exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
expansion in Alfa mode.
* exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public.
* exp_light.adb, exp_light.ads: New package defining light expansion.
* expander.adb (Expand): Call light expansion in Alfa mode
* exp_ch6_light.adb, exp_ch6_light.ads: Light expansion of chapter 6
constructs.
* exp_ch7_light.adb, exp_ch7_light.ads: Light expansion of chapter 7
constructs.
* exp_attr_light.adb, exp_attr_light.ads: Light expansion of attributes
* gnat1drv.adb (Adjust_Global_Switches): Comment
2011-08-30 Yannick Moy <moy@adacore.com>
* lib-xref-alfa.adb: Minor refactoring.
2011-08-30 Yannick Moy <moy@adacore.com>
* exp_ch9.adb (Expand_Entry_Barrier): Do not perform expansion in Alfa
mode.
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform
expansion in Alfa mode.
* sem_ch9.adb (Analyze_Entry_Body): Do not perform expansion in Alfa
mode.
2011-08-30 Robert Dewar <dewar@adacore.com>
* debug_a.adb: Update comment.
From-SVN: r178304
Diffstat (limited to 'gcc/ada/lib-xref-alfa.adb')
-rw-r--r-- | gcc/ada/lib-xref-alfa.adb | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/gcc/ada/lib-xref-alfa.adb b/gcc/ada/lib-xref-alfa.adb index 91d2ea06..66c1613 100644 --- a/gcc/ada/lib-xref-alfa.adb +++ b/gcc/ada/lib-xref-alfa.adb @@ -158,7 +158,7 @@ package body ALFA is Table_Name => "Drefs"); -- Table of cross-references for reads and writes through explicit -- dereferences, that are output as reads/writes to the special variable - -- "HEAP". These references are added to the regular references when + -- "Heap". These references are added to the regular references when -- computing ALFA cross-references. ----------------------- @@ -543,7 +543,7 @@ package body ALFA is end loop; -- Add dereferences to the set of regular references, by creating a - -- special "HEAP" variable for these special references. + -- special "Heap" variable for these special references. Name_Len := Name_Of_Heap_Variable'Length; Name_Buffer (1 .. Name_Len) := Name_Of_Heap_Variable; @@ -559,8 +559,10 @@ package body ALFA is Set_Has_Fully_Qualified_Name (Heap); for J in Drefs.First .. Drefs.Last loop - Xrefs.Increment_Last; - Xrefs.Table (Xrefs.Last) := Drefs.Table (J); + Xrefs.Append (Drefs.Table (J)); + + -- Set entity at this point with newly created "Heap" variable + Xrefs.Table (Xrefs.Last).Ent := Heap; Nrefs := Nrefs + 1; @@ -1047,7 +1049,7 @@ package body ALFA is Ref_Scope := Enclosing_Subprogram_Or_Package (N); - -- Entity is filled later on with the special "HEAP" variable + -- Entity is filled later on with the special "Heap" variable Drefs.Table (Indx).Ent := Empty; @@ -1055,7 +1057,7 @@ package body ALFA is Drefs.Table (Indx).Loc := Ref; Drefs.Table (Indx).Typ := Typ; - -- It is as if the special "HEAP" was defined in every scope where it + -- It is as if the special "Heap" was defined in every scope where it -- is referenced. Drefs.Table (Indx).Eun := Get_Source_Unit (Ref); |