aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/prj-ext.ads
diff options
context:
space:
mode:
authorEmmanuel Briot <briot@adacore.com>2011-08-03 10:01:51 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2011-08-03 12:01:51 +0200
commitab29a348ebe1345e469cede91ea4b2ef7c72e1fe (patch)
treef598a1cc49cea68a1f0ccdfe4a7e31f9cbdd9664 /gcc/ada/prj-ext.ads
parent9466892f26037f47b9406de56f8ec0f0ed8588a5 (diff)
downloadgcc-ab29a348ebe1345e469cede91ea4b2ef7c72e1fe.zip
gcc-ab29a348ebe1345e469cede91ea4b2ef7c72e1fe.tar.gz
gcc-ab29a348ebe1345e469cede91ea4b2ef7c72e1fe.tar.bz2
[multiple changes]
2011-08-03 Yannick Moy <moy@adacore.com> * alfa.ads Update format of ALFA section in ALI file in order to add a mapping from bodies to specs when both are present (ALFA_Scope_Record): add components for spec file/scope * get_alfa.adb (Get_ALFA): read the new file/scope for spec when present * lib-xref-alfa.adb (Collect_ALFA): after all scopes have been collected, fill in the spec information when relevant * put_alfa.adb (Put_ALFA): write the new file/scope for spec when present. 2011-08-03 Eric Botcazou <ebotcazou@adacore.com> * inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing code unit to decide whether to add internally generated subprograms. 2011-08-03 Javier Miranda <miranda@adacore.com> * sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram. * exp_ch9.adb (Build_Simple_Entry_Call): Handle actuals that must be handled by copy in VM targets. 2011-08-03 Emmanuel Briot <briot@adacore.com> * make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): now shares code with Makeutl.Get_Switches. * prj-tree.adb: Update comment. From-SVN: r177257
Diffstat (limited to 'gcc/ada/prj-ext.ads')
-rw-r--r--gcc/ada/prj-ext.ads25
1 files changed, 20 insertions, 5 deletions
diff --git a/gcc/ada/prj-ext.ads b/gcc/ada/prj-ext.ads
index 4ea4608..75b0ed2 100644
--- a/gcc/ada/prj-ext.ads
+++ b/gcc/ada/prj-ext.ads
@@ -54,11 +54,25 @@ package Prj.Ext is
procedure Free (Self : in out External_References);
-- Free memory used by Self
+ type External_Source is
+ (From_Command_Line,
+ From_Environment,
+ From_External_Attribute);
+ -- Where was the value of an external reference defined ?
+ -- They are prioritized in that order, so that a user can always use the
+ -- command line to override a value coming from his environment, or an
+ -- environment variable to override a value defined in an aggregate project
+ -- through the "for External()..." attribute.
+
procedure Add
(Self : External_References;
External_Name : String;
- Value : String);
- -- Add an external reference (or modify an existing one)
+ Value : String;
+ Source : External_Source := External_Source'First);
+ -- Add an external reference (or modify an existing one).
+ -- No overriding is done if the Source's priority is less than the one
+ -- used to previously set the value of the variable. The default for Source
+ -- is such that overriding always occurs.
function Value_Of
(Self : External_References;
@@ -88,9 +102,10 @@ private
type Name_To_Name;
type Name_To_Name_Ptr is access all Name_To_Name;
type Name_To_Name is record
- Key : Name_Id;
- Value : Name_Id;
- Next : Name_To_Name_Ptr;
+ Key : Name_Id;
+ Value : Name_Id;
+ Source : External_Source;
+ Next : Name_To_Name_Ptr;
end record;
procedure Set_Next (E : Name_To_Name_Ptr; Next : Name_To_Name_Ptr);