diff options
author | Thomas Quinot <quinot@adacore.com> | 2007-06-06 12:18:34 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2007-06-06 12:18:34 +0200 |
commit | 6c5290ce34a20a2fdb1e94e1e18e7daac9fc2823 (patch) | |
tree | 34593359b8bd031d198beba60724284ea01a5300 /gcc/ada/a-exextr.adb | |
parent | 107cd232e104d0f53bc7924bff71251388668707 (diff) | |
download | gcc-6c5290ce34a20a2fdb1e94e1e18e7daac9fc2823.zip gcc-6c5290ce34a20a2fdb1e94e1e18e7daac9fc2823.tar.gz gcc-6c5290ce34a20a2fdb1e94e1e18e7daac9fc2823.tar.bz2 |
a-except.ads, [...]: (Rmsg_28): Fix description for E.4(18) check.
2007-04-20 Thomas Quinot <quinot@adacore.com>
Olivier Hainque <hainque@adacore.com>
Robert Dewar <dewar@adacore.com>
* a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
check.
(Raise_Current_Excep): Call Debug_Raise_Exception just before
propagation starts, to let debuggers know about the event in a reliable
fashion.
(Local_Raise): Moved to System.Exceptions
More convenient to have this as a separate unit
* s-except.adb, s-except.ads: New files.
* a-exextr.adb (Unhandled_Exception): Delete - replaced by
Debug_Unhandled_Exception in System.Exceptions where it belongs
together with a couple of other debug helpers.
(Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
the former Unhandled_Exception.
* exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
(Warn_No_Exception_Propagation): New procedure
(Warn_If_No_Propagation): Rewritten for new warning generation
(Expand_Exception_Handlers): New warning generation
(Expand_N_Raise_xxx_Error): Rewritten for new warnings
(Add_Exception_Label): Use Special_Exception_Package_Used for test
instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
(Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
even if restriction is set (makes life easier in Check_Returns)
(Expand_Local_Exception_Handlers): Follow renamed entity chain when
checking exception identities.
(Expand_Local_Exception_Handlers): Do not optimize when all others case
(Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
block for handler (used by Check_Returns)
(Expand_Local_Exception_Handlers): Local_Raise now takes an address
(Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
remove all exception handlers when optimizing local raise statements.
(Find_Local_Handler): Use Get_Renamed_Entity
(Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
marked analyzed after expanding exception handlers, do not generate
redundant cleanup actions, because they have been constructed already.
From-SVN: r125375
Diffstat (limited to 'gcc/ada/a-exextr.adb')
-rw-r--r-- | gcc/ada/a-exextr.adb | 35 |
1 files changed, 5 insertions, 30 deletions
diff --git a/gcc/ada/a-exextr.adb b/gcc/ada/a-exextr.adb index bb7e5ad..af6bec4 100644 --- a/gcc/ada/a-exextr.adb +++ b/gcc/ada/a-exextr.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2007, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -31,7 +31,7 @@ -- -- ------------------------------------------------------------------------------ -with Unchecked_Conversion; +with Ada.Unchecked_Conversion; pragma Warnings (Off); with Ada.Exceptions.Last_Chance_Handler; @@ -62,7 +62,7 @@ package body Exception_Traces is -- Users can replace the default version of this routine, -- Ada.Exceptions.Last_Chance_Handler. - function To_Action is new Unchecked_Conversion + function To_Action is new Ada.Unchecked_Conversion (Raise_Action, Exception_Action); ----------------------- @@ -75,22 +75,6 @@ package body Exception_Traces is -- latter case because Notify_Handled_Exception may be called for an -- actually unhandled occurrence in the Front-End-SJLJ case. - --------------------------------- - -- Debugger Interface Routines -- - --------------------------------- - - -- The routines here are null routines that normally have no effect. - -- They are provided for the debugger to place breakpoints on their - -- entry points to get control on an exception. - - procedure Unhandled_Exception; - pragma Export (C, Unhandled_Exception, "__gnat_unhandled_exception"); - -- Hook for GDB to support "break exception unhandled" - - -- For "break exception", GDB uses __gnat_raise_nodefer_with_msg, which - -- is not in this section because it functions as more than simply a - -- debugger interface. - -------------------------------- -- Import Run-Time C Routines -- -------------------------------- @@ -120,7 +104,7 @@ package body Exception_Traces is if not Excep.Id.Not_Handled_By_Others and then (Exception_Trace = Every_Raise - or else (Exception_Trace = Unhandled_Raise and then Is_Unhandled)) + or else (Exception_Trace = Unhandled_Raise and then Is_Unhandled)) then To_Stderr (Nline); @@ -173,18 +157,9 @@ package body Exception_Traces is Task_Termination_Handler.all (Excep.all); Notify_Exception (Excep, Is_Unhandled => True); - Unhandled_Exception; + Debug_Unhandled_Exception (SSL.Exception_Data_Ptr (Excep.Id)); end Notify_Unhandled_Exception; - ------------------------- - -- Unhandled_Exception -- - ------------------------- - - procedure Unhandled_Exception is - begin - null; - end Unhandled_Exception; - ----------------------------------- -- Unhandled_Exception_Terminate -- ----------------------------------- |