[multiple changes]

2013-10-15  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb, exp_ch11.adb, a-except-2005.adb, a-except-2005.ads:
	Minor reformatting.

2013-10-15  Eric Botcazou  <ebotcazou@adacore.com>

	* targparm.ads: Fix minor typo in comment.

2013-10-15  Ed Schonberg  <schonberg@adacore.com>

	* lib-xref.adb: handle full views that are derived from private
	types.
	* sem_util.adb (Build_Elaboration_Entity): Do nothing in ASIS
	mode: the elaboration entity is not in the source, and plays no
	role in semantic analysis.  Minor reformatting.

From-SVN: r203594
This commit is contained in:
Arnaud Charlet 2013-10-15 12:29:47 +02:00
parent b9ec846384
commit 99f9794783
8 changed files with 60 additions and 23 deletions

View File

@ -1,3 +1,20 @@
2013-10-15 Robert Dewar <dewar@adacore.com>
* sem_prag.adb, exp_ch11.adb, a-except-2005.adb, a-except-2005.ads:
Minor reformatting.
2013-10-15 Eric Botcazou <ebotcazou@adacore.com>
* targparm.ads: Fix minor typo in comment.
2013-10-15 Ed Schonberg <schonberg@adacore.com>
* lib-xref.adb: handle full views that are derived from private
types.
* sem_util.adb (Build_Elaboration_Entity): Do nothing in ASIS
mode: the elaboration entity is not in the source, and plays no
role in semantic analysis. Minor reformatting.
2013-10-15 Tristan Gingold <gingold@adacore.com>
* adaint.c (__gnat_get_executable_load_address): Remove AIX

View File

@ -865,8 +865,9 @@ package body Ada.Exceptions is
-- Get_Exception_Machine_Occurrence --
--------------------------------------
function Get_Exception_Machine_Occurrence (X : Exception_Occurrence)
return System.Address is
function Get_Exception_Machine_Occurrence
(X : Exception_Occurrence) return System.Address
is
begin
return X.Machine_Occurrence;
end Get_Exception_Machine_Occurrence;

View File

@ -333,10 +333,10 @@ private
-- this, and it would not work right, because of the Msg and Tracebacks
-- fields which have unused entries not copied by Save_Occurrence.
function Get_Exception_Machine_Occurrence (X : Exception_Occurrence)
return System.Address;
function Get_Exception_Machine_Occurrence
(X : Exception_Occurrence) return System.Address;
pragma Export (Ada, Get_Exception_Machine_Occurrence,
"__gnat_get_exception_machine_occurrence");
"__gnat_get_exception_machine_occurrence");
-- Get the machine occurrence corresponding to an exception occurrence.
-- It is Null_Address if there is no machine occurrence (in runtimes that
-- doesn't use GCC mechanism) or if it has been lost (Save_Occurrence

View File

@ -1030,7 +1030,7 @@ package body Exp_Ch11 is
if Present (Choice_Parameter (Handler))
and then (Exception_Mechanism /= Back_End_Exceptions
or else CodePeer_Mode)
or else CodePeer_Mode)
then
declare
Cparm : constant Entity_Id := Choice_Parameter (Handler);
@ -1039,9 +1039,8 @@ package body Exp_Ch11 is
Save : Node_Id;
begin
-- Note use of No_Location to hide this code from the
-- debugger, so single stepping doesn't jump back and
-- forth.
-- Note: No_Location used to hide code from the debugger,
-- so single stepping doesn't jump back and forth.
Save :=
Make_Procedure_Call_Statement (No_Location,
@ -1051,12 +1050,14 @@ package body Exp_Ch11 is
Parameter_Associations => New_List (
New_Occurrence_Of (Cparm, No_Location),
Make_Explicit_Dereference (No_Location,
Make_Function_Call (No_Location,
Name =>
Make_Explicit_Dereference (No_Location,
New_Occurrence_Of
(RTE (RE_Get_Current_Excep),
No_Location))))));
Prefix =>
Make_Function_Call (No_Location,
Name =>
Make_Explicit_Dereference (No_Location,
Prefix =>
New_Occurrence_Of
(RTE (RE_Get_Current_Excep),
No_Location))))));
Mark_Rewrite_Insertion (Save);
Prepend (Save, Statements (Handler));

View File

@ -1307,9 +1307,23 @@ package body Lib.Xref is
Right := '>';
end if;
-- If non-derived ptr, get directly designated type.
-- If the completion of a private type is itself a derived
-- type, we need the parent of the full view.
elsif Is_Private_Type (Tref)
and then Present (Full_View (Tref))
and then Etype (Full_View (Tref)) /= Full_View (Tref)
then
Tref := Etype (Full_View (Tref));
if Left /= '(' then
Left := '<';
Right := '>';
end if;
-- If non-derived pointer, get directly designated type.
-- If the type has a full view, all references are on the
-- partial view, that is seen first.
-- partial view that is seen first.
elsif Is_Access_Type (Tref) then
Tref := Directly_Designated_Type (Tref);

View File

@ -2366,8 +2366,7 @@ package body Sem_Prag is
elsif Contains (Inputs_Seen, Input_Id) then
Error_Msg_N ("duplicate input item", Input);
-- The input is legal, add it to the list of processed
-- inputs.
-- Input is legal, add it to the list of processed inputs
else
Add_Item (Input_Id, Inputs_Seen);
@ -2408,7 +2407,6 @@ package body Sem_Prag is
while Present (Elmt) loop
if Name_Seen then
Error_Msg_N ("only one item allowed in initialization", Elmt);
else
Name_Seen := True;
Analyze_Initialization_Item (Elmt);
@ -2424,7 +2422,6 @@ package body Sem_Prag is
Input := First (Expressions (Inputs));
while Present (Input) loop
Analyze_Input_Item (Input);
Next (Input);
end loop;
end if;

View File

@ -423,7 +423,7 @@ package body Sem_Util is
Decl := First
(Visible_Declarations
(Specification (Unit_Declaration_Node (Current_Scope))));
(Package_Specification (Current_Scope)));
while Present (Decl) loop
if Nkind (Decl) = N_Private_Extension_Declaration
and then Defining_Entity (Decl) = Typ
@ -1169,6 +1169,13 @@ package body Sem_Util is
return;
end if;
-- Ignore in ASIS mode, elaboration entity is not in source and plays
-- no role in analysis.
if ASIS_Mode then
return;
end if;
-- Construct name of elaboration entity as xxx_E, where xxx is the unit
-- name with dots replaced by double underscore. We have to manually
-- construct this name, since it will be elaborated in the outer scope,

View File

@ -402,7 +402,7 @@ package Targparm is
-- appropriate default in some cases, e.g. on embedded targets which do not
-- allow the possibility of multi-processors. The default can be overridden
-- using pragmas Enable/Disable_Atomic_Synchronization and also by use of
-- the debug flags gnat.d and gnatd.e.
-- the corresponding debug flags -gnatd.e and -gnatd.d.
Support_Aggregates_On_Target : Boolean := True;
-- In the general case, the use of aggregates may generate calls