Patchwork [Ada] Simplify Propagate_Exception

login
register
mail settings
Submitter Arnaud Charlet
Date Aug. 29, 2011, 12:48 p.m.
Message ID <20110829124843.GA26587@adacore.com>
Download mbox | patch
Permalink /patch/112036/
State New
Headers show

Comments

Arnaud Charlet - Aug. 29, 2011, 12:48 p.m.
Remove all its parameters as they were unused.
No functionnal changes.

Tested on x86_64-pc-linux-gnu, committed on trunk

2011-08-29  Tristan Gingold  <gingold@adacore.com>

	* a-exexpr.adb (Propagate_Exception): Remove all the parameters as
	they were unused.
	* a-exexpr-gcc.adb (Propagate_Exception): Ditto.
	* a-except-2005.adb (Propagate_Exception): Adjust spec.
	(Raise_Current_Excep): Adjust call.
	(Raise_From_Signal_Handler): Call now simply call Raise_Current_Excep.

Patch

Index: a-exexpr.adb
===================================================================
--- a-exexpr.adb	(revision 178214)
+++ a-exexpr.adb	(working copy)
@@ -32,28 +32,14 @@ 
 --  This is the default version, using the __builtin_setjmp/longjmp EH
 --  mechanism.
 
-with System.Storage_Elements;  use System.Storage_Elements;
-
 with Ada.Unchecked_Conversion;
 
-pragma Warnings (Off);
---  Since several constructs give warnings in 3.14a1, including unreferenced
---  variables and pragma Unreferenced itself.
-
 separate (Ada.Exceptions)
 package body Exception_Propagation is
 
    --  Common binding to __builtin_longjmp for sjlj variants.
 
-   --  The builtin expects a pointer type for the jmpbuf address argument, and
-   --  System.Address doesn't work because this is really an integer type.
-
-   type Jmpbuf_Address is access Character;
-
-   function To_Jmpbuf_Address is new
-     Ada.Unchecked_Conversion (System.Address, Jmpbuf_Address);
-
-   procedure builtin_longjmp (buffer : Jmpbuf_Address; Flag : Integer);
+   procedure builtin_longjmp (buffer : System.Address; Flag : Integer);
    pragma No_Return (builtin_longjmp);
    pragma Import (Intrinsic, builtin_longjmp, "__builtin_longjmp");
 
@@ -62,11 +48,7 @@ 
    -------------------------
 
    procedure Propagate_Exception
-     (E                   : Exception_Id;
-      From_Signal_Handler : Boolean)
    is
-      pragma Inspection_Point (E);
-
       Jumpbuf_Ptr : constant Address := Get_Jmpbuf_Address.all;
       Excep       : constant EOA := Get_Current_Excep.all;
    begin
@@ -108,7 +90,7 @@ 
             Exception_Traces.Notify_Handled_Exception;
          end if;
 
-         builtin_longjmp (To_Jmpbuf_Address (Jumpbuf_Ptr), 1);
+         builtin_longjmp (Jumpbuf_Ptr, 1);
 
       else
          Exception_Traces.Notify_Unhandled_Exception;
Index: a-exexpr-gcc.adb
===================================================================
--- a-exexpr-gcc.adb	(revision 178214)
+++ a-exexpr-gcc.adb	(working copy)
@@ -445,12 +445,7 @@ 
    --  handling the two phase scheme it implements.
 
    procedure Propagate_Exception
-     (E                   : Exception_Id;
-      From_Signal_Handler : Boolean)
    is
-      pragma Inspection_Point (E);
-      pragma Unreferenced (From_Signal_Handler);
-
       Excep         : constant EOA := Get_Current_Excep.all;
       GCC_Exception : GNAT_GCC_Exception_Access;
 
Index: a-except-2005.adb
===================================================================
--- a-except-2005.adb	(revision 178214)
+++ a-except-2005.adb	(working copy)
@@ -239,9 +239,7 @@ 
       -- Exception propagation routines --
       ------------------------------------
 
-      procedure Propagate_Exception
-        (E                   : Exception_Id;
-         From_Signal_Handler : Boolean);
+      procedure Propagate_Exception;
       pragma No_Return (Propagate_Exception);
       --  This procedure propagates the exception represented by the occurrence
       --  referenced by Current_Excep in the TSD for the current task.
@@ -268,8 +266,7 @@ 
    procedure Raise_Current_Excep (E : Exception_Id);
    pragma No_Return (Raise_Current_Excep);
    pragma Export (C, Raise_Current_Excep, "__gnat_raise_nodefer_with_msg");
-   --  This is a simple wrapper to Exception_Propagation.Propagate_Exception
-   --  setting the From_Signal_Handler argument to False.
+   --  This is a simple wrapper to Exception_Propagation.Propagate_Exception.
    --
    --  This external name for Raise_Current_Excep is historical, and probably
    --  should be changed but for now we keep it, because gdb and gigi know
@@ -815,8 +812,7 @@ 
    procedure Raise_Current_Excep (E : Exception_Id) is
    begin
       Debug_Raise_Exception (E => SSL.Exception_Data_Ptr (E));
-      Exception_Propagation.Propagate_Exception
-        (E => E, From_Signal_Handler => False);
+      Exception_Propagation.Propagate_Exception;
    end Raise_Current_Excep;
 
    ---------------------
@@ -923,9 +919,7 @@ 
          Abort_Defer.all;
       end if;
 
-      Debug_Raise_Exception (E => SSL.Exception_Data_Ptr (E));
-      Exception_Propagation.Propagate_Exception
-        (E => E, From_Signal_Handler => True);
+      Raise_Current_Excep (E);
    end Raise_From_Signal_Handler;
 
    -------------------------