2005-03-08 Olivier Hainque <hainque@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Mar 2005 15:48:37 +0000 (15:48 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Mar 2005 15:48:37 +0000 (15:48 +0000)
commit0bdb34453261c8807cae4044be2ba7a2344663c0
tree313419272b6493965898a2e40f850fa09f2d6163
parentd1a942e47088eb7fd10091a7aeb366d852e7d406
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96482 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ada/init.c
gcc/ada/raise.h
gcc/ada/s-intman-posix.adb