Commit 295ef2bb by Richard Henderson Committed by Richard Henderson

comperr.adb (Abort_In_Progress): New.

        * comperr.adb (Abort_In_Progress): New.
        (Compiler_Abort): Use it to prevent recursion.

From-SVN: r46082
parent 1f1b0541
2001-10-08 Richard Henderson <rth@redhat.com>
* comperr.adb (Abort_In_Progress): New.
(Compiler_Abort): Use it to prevent recursion.
2001-10-08 Robert Dewar <dewar@gnat.com> 2001-10-08 Robert Dewar <dewar@gnat.com>
* atree.adb: Set Error_Posted in Error node, helps error recovery. * atree.adb: Set Error_Posted in Error node, helps error recovery.
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- $Revision: 1.57 $ -- $Revision: 1.1 $
-- -- -- --
-- Copyright (C) 1992-2001 Free Software Foundation, Inc. -- -- Copyright (C) 1992-2001 Free Software Foundation, Inc. --
-- -- -- --
...@@ -51,6 +51,14 @@ with System.Soft_Links; use System.Soft_Links; ...@@ -51,6 +51,14 @@ with System.Soft_Links; use System.Soft_Links;
package body Comperr is package body Comperr is
----------------
-- Local Data --
----------------
Abort_In_Progress : Boolean := False;
-- Used to prevent runaway recursion if something segfaults
-- while processing a previous abort.
----------------------- -----------------------
-- Local Subprograms -- -- Local Subprograms --
----------------------- -----------------------
...@@ -82,6 +90,14 @@ package body Comperr is ...@@ -82,6 +90,14 @@ package body Comperr is
-- Start of processing for Compiler_Abort -- Start of processing for Compiler_Abort
begin begin
-- Prevent recursion through Compiler_Abort, e.g. via SIGSEGV.
if Abort_In_Progress then
Exit_Program (E_Abort);
end if;
Abort_In_Progress := True;
-- If errors have already occured, then we guess that the abort may -- If errors have already occured, then we guess that the abort may
-- well be caused by previous errors, and we don't make too much fuss -- well be caused by previous errors, and we don't make too much fuss
-- about it, since we want to let the programmer fix the errors first. -- about it, since we want to let the programmer fix the errors first.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment