[Bug target/67770] New: i386: -fshrink-wrap can interact badly with trampolines
felix.von.s at posteo dot de
gcc-bugzilla@gcc.gnu.org
Tue Sep 29 19:53:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67770
Bug ID: 67770
Summary: i386: -fshrink-wrap can interact badly with
trampolines
Product: gcc
Version: 5.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: felix.von.s at posteo dot de
Target Milestone: ---
Created attachment 36419
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36419&action=edit
Miscompiled program
Compiling the attached program with -m32 -DCRASH=1 produces a crash on run
time. Without either switch, the program runs fine (the host is x86-64).
The reason for crashing can be revealed by inspecting the generated assembly:
the instruction which pushes the trampoline context on the stack is moved along
with the frame setup code from the very start of the function where the
trampoline expects it to be. The crucial optimisation seems to be
-fshrink-wrap; however, for some reason I was unable to trigger the bug without
enabling the full -O1 optimisation level, even by manually listing all the
-f... options enabled by -O1.
More information about the Gcc-bugs
mailing list