This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Ada] Fix infinite loop with signals and backtraces on x86/Solaris


This change makes sure the runtime doesn't enter an infinite loop when handling
signals on x86/Solaris, if the program has been compiled with backtraces turned
on (-bargs -E).

The following test must return when compiled with -gnatp -bargs -E:

with Ada.Text_IO;

procedure Segv is
   type Int_Ptr is access all Integer;
   function Ident return Int_Ptr is
   begin return null; end;
   Data : Int_Ptr := Ident;
begin
   Data.all := 0;
exception
   when others =>
      Ada.Text_IO.Put_Line ("SEGV Handler");
end;

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

2009-06-11  Eric Botcazou  <ebotcazou@adacore.com>

	* tracebak.c (i386 section): Define IS_BAD_PTR on Solaris.
	

Attachment: difs
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]