aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/libgnat/g-excact.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/libgnat/g-excact.adb')
-rw-r--r--gcc/ada/libgnat/g-excact.adb25
1 files changed, 21 insertions, 4 deletions
diff --git a/gcc/ada/libgnat/g-excact.adb b/gcc/ada/libgnat/g-excact.adb
index 39eb5a5..202d9e2 100644
--- a/gcc/ada/libgnat/g-excact.adb
+++ b/gcc/ada/libgnat/g-excact.adb
@@ -38,9 +38,19 @@ with System.Exception_Table; use System.Exception_Table;
package body GNAT.Exception_Actions is
Global_Action : Exception_Action;
- pragma Import (C, Global_Action, "__gnat_exception_actions_global_action");
+ pragma Import
+ (Ada, Global_Action, "__gnat_exception_actions_global_action");
+ pragma Atomic (Global_Action);
-- Imported from Ada.Exceptions. Any change in the external name needs to
- -- be coordinated with a-except.adb
+ -- be coordinated with a-exextr.adb.
+
+ Global_Unhandled_Action : Exception_Action;
+ pragma Import
+ (Ada, Global_Unhandled_Action,
+ "__gnat_exception_actions_global_unhandled_action");
+ pragma Atomic (Global_Unhandled_Action);
+ -- Imported from Ada.Exceptions. Any change in the external name needs to
+ -- be coordinated with a-exextr.adb.
Raise_Hook_Initialized : Boolean;
pragma Import
@@ -61,11 +71,18 @@ package body GNAT.Exception_Actions is
procedure Register_Global_Action (Action : Exception_Action) is
begin
- Lock_Task.all;
Global_Action := Action;
- Unlock_Task.all;
end Register_Global_Action;
+ --------------------------------------
+ -- Register_Global_Unhandled_Action --
+ --------------------------------------
+
+ procedure Register_Global_Unhandled_Action (Action : Exception_Action) is
+ begin
+ Global_Unhandled_Action := Action;
+ end Register_Global_Unhandled_Action;
+
------------------------
-- Register_Id_Action --
------------------------