aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/lib-xref-alfa.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2011-08-30 15:41:24 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2011-08-30 15:41:24 +0200
commitc01817d2e03b80c93d4be08927d4573777c5e129 (patch)
tree1880ea83ac066801135cc69321359f40a3523cb9 /gcc/ada/lib-xref-alfa.adb
parent996c8821a235a2313d3574d0815044847f7b5c14 (diff)
downloadgcc-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.adb14
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);