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 unwinding failures on tru64


Manually tested on alpha-tru64.
Tested on i686-linux, committed on mainline.

The unwinding routine exc_virtual_unwind was being invoked on
contexts for which the address pointed to by the PC field was
not contained in a function that had been registered with the
unwinding machinery, thus resulting in unwinding failures.
The fix is to first check that the PC points to an address in
a registered function and then invoke the unwinding routine.

2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>

	* s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
	fetch a code-range descriptor associated with the machine state. On
	failure set the machine state's PC to 0; on success, pass the
	descriptor to exc_virtual_unwind.

	* init.c (Tru64 section): New function __gnat_set_code_loc.

Attachment: difs.2
Description: Text document


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