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] | |
Tested on i686-linux, committed on mainline.
When using pragma Suppress_Exception_Locations with the Zero FootPrint run
time, the source location was always passed to the last chance handler,
regardless of the aforementioned pragma.
There is a flag in gigi for avoiding the generation of these file names,
which is set when the -gnatdN switch is passed to the compiler. The fix
consists on setting this flag also when pragma Supress_Exception_Locations
has been detected by the front-end.
Test case checks that file names are not passed to the last chance handler
when pragma Supress_Exception_Locations is in effect.
The expected output when executing them is:
File name supressed
--
pragma restrictions (No_Exception_Handlers);
pragma Suppress_Exception_Locations;
with Last_Chance_Handler;
procedure main is
begin
raise Program_Error;
end main;
with System;
procedure Last_Chance_Handler (Msg : System.Address; Line : Integer);
pragma Export (C, Last_Chance_Handler, "__gnat_last_chance_handler");
pragma No_Return (Last_Chance_Handler);
with Ada.Text_IO;
procedure Last_Chance_Handler (Msg : System.Address; Line : Integer) is
Data : Character;
for Data'Address use Msg;
procedure C_Exit (Status : Integer);
pragma Import (C, C_Exit, "exit");
pragma No_Return (C_Exit);
begin
if Data = ASCII.NUL then
Ada.Text_IO.Put_Line ("File name supressed");
else
Ada.Text_IO.Put_Line ("File name not suppressed");
end if;
-- We cannot return from the last chance handler, so that we finish
-- execution here.
C_Exit (0);
end Last_Chance_Handler;
--
gnatmake -gnatp main.adb
main
2005-06-14 Jose Ruiz <ruiz@adacore.com>
* fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
can determine whether pragma Suppress_Exception_Locations is in effect.
* utils2.c (build_call_raise): Do not pass the file name to the
exception handler if pragma Suppress_Exception_Locations is in effect.
(build_allocator): Add and process arg IGNORE_INIT_TYPE.
Attachment:
difs.26
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |