https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #23 from Eric Botcazou ---
> Where exactly is this documented? I can't find no references to
> __builtin_setjmp or __builtin_longjmp in
> https://gcc.gnu.org/onlinedocs/gcc-7.3.0/gcc.pdf or
>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #22 from Wilco ---
(In reply to Eric Botcazou from comment #21)
> > You can use __builtin_setjmp and __builtin_longjmp in the same function,
> > only if they use a different buffer. Otherwise it is invalid.
>
> Yes, that's invalid.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #21 from Eric Botcazou ---
> You can use __builtin_setjmp and __builtin_longjmp in the same function,
> only if they use a different buffer. Otherwise it is invalid.
Yes, that's invalid.
> CCing Eric for the other __builtin_setjmp
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
Jakub Jelinek changed:
What|Removed |Added
CC||ebotcazou at gcc dot gnu.org
---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #19 from Wilco ---
(In reply to sudi from comment #17)
> I looked up what other targets were doing and one thing found to be
> interesting was that a lot of them are defining the target hook
> TARGET_BUILTIN_SETJMP_FRAME_VALUE. In
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #18 from ramana.radhakrishnan at foss dot arm.com ---
On 07/03/2018 18:59, sudi at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
>
> --- Comment #17 from sudi at gcc dot gnu.org ---
> I looked up what
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #17 from sudi at gcc dot gnu.org ---
I looked up what other targets were doing and one thing found to be interesting
was that a lot of them are defining the target hook
TARGET_BUILTIN_SETJMP_FRAME_VALUE. In AArch64 case I am
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #16 from sudi at gcc dot gnu.org ---
So I think I would go with Jakub's suggestion of defining calls_builtin_setjmp
and use that in aarch64_layout_frame for cfun->machine->frame.emit_frame_chain.
I am still investigating Wilco's
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
sudi at gcc dot gnu.org changed:
What|Removed |Added
Status|NEW |ASSIGNED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #15 from Ramana Radhakrishnan ---
Author: ramana
Date: Mon Feb 26 09:25:21 2018
New Revision: 257984
URL: https://gcc.gnu.org/viewcvs?rev=257984=gcc=rev
Log:
[Patch AArch64] Turn on frame pointer / partial fix for PR84521
This
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #14 from Wilco ---
(In reply to Jakub Jelinek from comment #13)
> Even when you find another PR for __builtin_longjmp (clearly RA related),
> that doesn't mean that __builtin_{setjmp,longjmp} are totally broken and
> should not be
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #13 from Jakub Jelinek ---
Even when you find another PR for __builtin_longjmp (clearly RA related), that
doesn't mean that __builtin_{setjmp,longjmp} are totally broken and should not
be fixed on aarch64. As ruby (which for some
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #12 from Wilco ---
Note PR64242 is related (also frame pointer corruption by __builtin_longjmp).
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #11 from Wilco ---
(In reply to Ramana Radhakrishnan from comment #10)
> (In reply to Jakub Jelinek from comment #4)
> > Is the requirement just for functions that contain setjmp? If so, the
> > backend could just force frame
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #10 from Ramana Radhakrishnan ---
(In reply to Jakub Jelinek from comment #4)
> Is the requirement just for functions that contain setjmp? If so, the
> backend could just force frame pointers in cfun->calls_setjmp functions.
I
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #9 from Wilco ---
(In reply to Jakub Jelinek from comment #7)
> cfun->has_nonlocal_label instead of cfun->calls_setjmp would cover
> __builtin_setjmp.
Do non-local labels do the same odd thing? It seems to me if the mid-end
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #8 from Wilco ---
(In reply to Jakub Jelinek from comment #7)
> cfun->has_nonlocal_label instead of cfun->calls_setjmp would cover
> __builtin_setjmp.
>
> aarch64_frame_pointer_required would force frame_pointer_needed and thus be
>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #7 from Jakub Jelinek ---
cfun->has_nonlocal_label instead of cfun->calls_setjmp would cover
__builtin_setjmp.
aarch64_frame_pointer_required would force frame_pointer_needed and thus be
true in that case too. But sure, if it
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #6 from Wilco ---
(In reply to Jakub Jelinek from comment #5)
> (completely untested) would require frame pointers for all setjmp calls, not
> just __builtin_setjmp.
That's the correct approach indeed, however
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
Jakub Jelinek changed:
What|Removed |Added
CC||jakub at gcc dot gnu.org
Target
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #4 from Jakub Jelinek ---
Is the requirement just for functions that contain setjmp? If so, the backend
could just force frame pointers in cfun->calls_setjmp functions.
If not, even if the default is tweaked again to be
21 matches
Mail list logo