This is the mail archive of the gcc-bugs@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]

Restoration of arg pointer in expand_builtin_setjmp_receiver


I have been looking into why throw/catch doesn't work on vax-dec-ultrix4.3.

The vax needs its arg pointer restored after a longjmp.  The arg pointer
is supposed to be restored by code generated by expand_builtin_setjmp_receiver.
However, for the restore to work, the arg pointer must be saved in the frame.
This is done by expand_function_end.  It checks arg_pointer_save_area
to see if the code to save the arg pointer should be emitted.  However,
when doing eh, expand_builtin_setjmp_receiver isn't called until AFTER
expand_function_end.  Thus, the save is never done.

Any suggestions on the best way to fix this?

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)


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