diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-05-15 12:22:07 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-05-15 12:22:07 +0200 |
commit | 799d0e05c71f63b11ddb7d64f314c1281fe53cfb (patch) | |
tree | a5d47583428526feb383a0496917baf367d642b3 /gcc/ada/exp_ch7.adb | |
parent | 0c644c99db0e5a83b8106a25e8346c2ecc250297 (diff) | |
download | gcc-799d0e05c71f63b11ddb7d64f314c1281fe53cfb.zip gcc-799d0e05c71f63b11ddb7d64f314c1281fe53cfb.tar.gz gcc-799d0e05c71f63b11ddb7d64f314c1281fe53cfb.tar.bz2 |
[multiple changes]
2012-05-15 Robert Dewar <dewar@adacore.com>
* exp_ch7.adb, exp_ch11.adb, exp_ch11.ads: Minor reformatting.
2012-05-15 Thomas Quinot <quinot@adacore.com>
* sem_res.adb (Resolve): Enforce E.2.2(11/2) and E.2.2(12) for
'Unrestricted_Access and 'Unchecked_Access (not just 'Access):
even in those cases, a remote access type may only designate a
remote subprogram.
2012-05-15 Thomas Quinot <quinot@adacore.com>
* sem_util.adb, sem_util.ads, sem_cat.adb: Minor refactoring.
(Enclosing_Lib_Unit_Node): Rename to Enclosing_Comp_Unit_Node.
2012-05-15 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove obsolete
checks on nested inlined subprograms.
2012-05-15 Tristan Gingold <gingold@adacore.com>
* fe.h (Get_RT_Exception_Name): Declare.
2012-05-15 Tristan Gingold <gingold@adacore.com>
* raise-gcc.c (db_region_for): Use %p + cast to avoid warnings.
(get_region_description_for): Likewise.
(db_action_for): Likewise.
(get_call_site_action_for): Likewise.
(get_ttype_entry_for): Remove useless 'const'.
(PERSONALITY_FUNCTION): Add ATTRIBUTE_UNUSED on uw_exception_class.
2012-05-15 Tristan Gingold <gingold@adacore.com>
* a-exextr.adb (Unhandled_Exception_Terminate): Save occurrence
on the stack to avoid a dynamic memory allocation.
2012-05-15 Bob Duff <duff@adacore.com>
* exp_ch9.adb (Expand_N_Timed_Entry_Call): Move initialization of
E_Stats and D_Stats after Process_Statements_For_Controlled_Objects,
because those calls can destroy the Statements list.
From-SVN: r187518
Diffstat (limited to 'gcc/ada/exp_ch7.adb')
-rw-r--r-- | gcc/ada/exp_ch7.adb | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb index 3d3df50..6c42ad6 100644 --- a/gcc/ada/exp_ch7.adb +++ b/gcc/ada/exp_ch7.adb @@ -723,9 +723,10 @@ package body Exp_Ch7 is pragma Assert (Present (Data.Raised_Id)); if Exception_Extra_Info - or else (For_Library and then not Restricted_Profile) + or else (For_Library and not Restricted_Profile) then if Exception_Extra_Info then + -- Generate: -- Get_Current_Excep.all @@ -735,8 +736,9 @@ package body Exp_Ch7 is Name => Make_Explicit_Dereference (Data.Loc, Prefix => - New_Reference_To (RTE (RE_Get_Current_Excep), - Data.Loc))); + New_Reference_To + (RTE (RE_Get_Current_Excep), Data.Loc))); + else -- Generate: @@ -748,15 +750,17 @@ package body Exp_Ch7 is if For_Library and then not Restricted_Profile then Proc_To_Call := RTE (RE_Save_Library_Occurrence); Actuals := New_List (Except); + else Proc_To_Call := RTE (RE_Save_Occurrence); -- The dereference occurs only when Exception_Extra_Info is true, -- and therefore Except is not null. - Actuals := New_List ( - New_Reference_To (Data.E_Id, Data.Loc), - Make_Explicit_Dereference (Data.Loc, Except)); + Actuals := + New_List ( + New_Reference_To (Data.E_Id, Data.Loc), + Make_Explicit_Dereference (Data.Loc, Except)); end if; -- Generate: @@ -3054,6 +3058,7 @@ package body Exp_Ch7 is A_Expr := New_Reference_To (RTE (RE_Triggered_By_Abort), Loc); -- Generate: + -- Abort_Id : constant Boolean := <A_Expr>; Append_To (Decls, @@ -3073,6 +3078,7 @@ package body Exp_Ch7 is Data.E_Id := Make_Temporary (Loc, 'E'); -- Generate: + -- E_Id : Exception_Occurrence; E_Decl := @@ -3089,6 +3095,7 @@ package body Exp_Ch7 is end if; -- Generate: + -- Raised_Id : Boolean := False; Append_To (Decls, @@ -3134,6 +3141,7 @@ package body Exp_Ch7 is end if; -- Generate: + -- Raised_Id and then not Abort_Id -- <or> -- Raised_Id @@ -3149,6 +3157,7 @@ package body Exp_Ch7 is end if; -- Generate: + -- if Raised_Id and then not Abort_Id then -- Raise_From_Controlled_Operation (E_Id); -- <or> |