Restoration of arg pointer in expand_builtin_setjmp_receiver

John David Anglin dave@hiauly1.hia.nrc.ca
Thu Aug 23 13:03:00 GMT 2001


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)



More information about the Gcc-bugs mailing list