aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/a-except.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2011-08-29 16:25:19 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2011-08-29 16:25:19 +0200
commitd85fd922e12315cd65061ed85f7afb40fe7ff958 (patch)
tree1a7fbadf4793fca844818142d46165e676ff37cc /gcc/ada/a-except.adb
parentfd3d2680c8c025f29cb349a9af6292cf8bea50f5 (diff)
downloadgcc-d85fd922e12315cd65061ed85f7afb40fe7ff958.zip
gcc-d85fd922e12315cd65061ed85f7afb40fe7ff958.tar.gz
gcc-d85fd922e12315cd65061ed85f7afb40fe7ff958.tar.bz2
[multiple changes]
2011-08-29 Robert Dewar <dewar@adacore.com> * a-cdlili.ads, a-coinve.ads, a-coorma.adb, a-coorma.ads, s-tassta.adb, a-cborma.adb, a-cborma.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads, a-cborse.ads, a-cobove.adb, a-cobove.ads, a-cbhase.ads: Minor reformatting. 2011-08-29 Tristan Gingold <gingold@adacore.com> * exp_ch7.adb, exp_ch7.ads (Build_Exception_Handler): Move its spec to package spec. * exp_intr.adb (Expand_Unc_Deallocation): Use Build_Exception_Handler. * a-except.adb, a-except-2005.adb (Rcheck_22): Do not defer aborts while raising PE. From-SVN: r178245
Diffstat (limited to 'gcc/ada/a-except.adb')
-rw-r--r--gcc/ada/a-except.adb10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ada/a-except.adb b/gcc/ada/a-except.adb
index 333dca5..6805bf4 100644
--- a/gcc/ada/a-except.adb
+++ b/gcc/ada/a-except.adb
@@ -1083,8 +1083,16 @@ package body Ada.Exceptions is
end Rcheck_21;
procedure Rcheck_22 (File : System.Address; Line : Integer) is
+ E : constant Exception_Id := Program_Error_Def'Access;
begin
- Raise_Program_Error_Msg (File, Line, Rmsg_22'Address);
+ -- This is "finalize/adjust raised exception".
+ -- As this exception is only raised with aborts defered, it must
+ -- call Raise_Exception_No_Defer, contrary to all other Rcheck
+ -- subprograms (which defer aborts).
+ -- This is coherent with Raise_From_Controlled_Operation.
+
+ Exception_Data.Set_Exception_C_Msg (E, File, Line, 0, Rmsg_22'Address);
+ Raise_Current_Excep (E);
end Rcheck_22;
procedure Rcheck_23 (File : System.Address; Line : Integer) is