[Bug target/83641] -fstack-clash-protection generates incorrect CFI on i386
fw at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Jan 1 13:48:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83641
Florian Weimer <fw at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #42995|0 |1
is obsolete| |
--- Comment #1 from Florian Weimer <fw at gcc dot gnu.org> ---
Created attachment 42999
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42999&action=edit
cfi.c
Reduced test case. Compile with -O2 -fstack-clash-protection.
f3:
.LFB0:
.cfi_startproc
pushl %esi
.cfi_def_cfa_offset 8
.cfi_offset 6, -8
pushl %ebx
.cfi_def_cfa_offset 12
.cfi_offset 3, -12
pushl %esi
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
popl %esi
.cfi_restore 6
.cfi_def_cfa_offset 12
subl $4, %esp
.cfi_def_cfa_offset 16
movl x0, %ebx
movl x1, %esi
It looks related to the probing for noreturn functions. The noreturn attribute
can even be removed as long as the infinite loop at the end is present (which I
added to suppress the warning).
More information about the Gcc-bugs
mailing list