s-intman-posix.adb (Notify_Exception): Adjust signature, as handler for sigactions...
authorOlivier Hainque <hainque@adacore.com>
Tue, 15 Mar 2005 15:48:37 +0000 (16:48 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 15 Mar 2005 15:48:37 +0000 (16:48 +0100)
commit3f8abd98baf5945e43011ecb32025d8d2e82d93f
tree313419272b6493965898a2e40f850fa09f2d6163
parent7e98a4c668eac2b10f06ff207a24d2ca4e867128
s-intman-posix.adb (Notify_Exception): Adjust signature, as handler for sigactions with SA_SIGINFO set.

2005-03-08  Olivier Hainque  <hainque@adacore.com>

* s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
for sigactions with SA_SIGINFO set. Call
__gnat_adjust_context_for_raise before raising, to perform the
potentially required adjustments to the machine context for the GCC
unwinder.

* raise.h (__gnat_adjust_context_for_raise): New prototype.

* init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
Adjust PC by one in the provided machine context.
(__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
so that the handler is passed the context structure to adjust prior to
the raise.
(__gnat_error_handler) HPUX: Adjust the signature to match what an
SA_SIGINFO sigaction should look like. Call
__gnat_adjust_context_for_raise before actually raising.
(__gnat_adjust_context_for_raise): Default noop to help PC
adjustments before raise from signal handlers.
(__gnat_error_handler): Indirectly call a predicate function to
determine if a condition should be resignaled or not.
(__gnat_set_resignal_predicate): User interface to modify the predicate.
(__gnat_default_resignal_p): Default GNAT predicate.

From-SVN: r96482
gcc/ada/init.c
gcc/ada/raise.h
gcc/ada/s-intman-posix.adb