[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:
parent
b9ec846384
commit
99f9794783
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue