[Bug target/93492] Broken code with -fpatchable-function-entry and -fcf-protection=full
ro at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Jun 14 15:38:33 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93492
Rainer Orth <ro at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ro at gcc dot gnu.org
Resolution|FIXED |---
Status|RESOLVED |REOPENED
--- Comment #20 from Rainer Orth <ro at gcc dot gnu.org> ---
Several of the new testcases FAIL in various configurations:
* On i386-pc-solaris2.11 with the native assembler (both 32 and 64-bit):
+FAIL: gcc.target/i386/pr93492-2.c scan-assembler
\\t.cfi_startproc\\n\\tendbr(32|64)\\n.*.LPFE1:\\n\\tnop\\n\\tret\\n
+FAIL: gcc.target/i386/pr93492-3.c scan-assembler
\\t.cfi_startproc\\n\\tendbr(32|64)\\n.*.LPFE1:\\n\\tnop\\n1:\\tcall\\t__fentry__\\n\\tret\\n
+FAIL: gcc.target/i386/pr93492-4.c scan-assembler
\\t.cfi_startproc\\n.*.LPFE1:\\n\\tnop\\n\\tret\\n
+FAIL: gcc.target/i386/pr93492-5.c scan-assembler
\\t.cfi_startproc\\n.*.LPFE1:\\n\\tnop\\n1:\\tcall\\t__fentry__\\n\\tret\\n
Please note that while /bin/as *does* accept .cfi_* directives, gcc doesn't
emit them because there are bugs in as' support.
* On i386-pc-solaris2.11 with gas (both 32 and 64-bit):
+FAIL: gcc.target/i386/pr93492-3.c scan-assembler
\\t.cfi_startproc\\n\\tendbr(32|64)\\n.*.LPFE1:\\n\\tnop\\n1:\\tcall\\t__fentry__\\n\\tret\\n
+FAIL: gcc.target/i386/pr93492-5.c scan-assembler
\\t.cfi_startproc\\n.*.LPFE1:\\n\\tnop\\n1:\\tcall\\t__fentry__\\n\\tret\\n
E.g. the 32-bit pr93492-3.s has
.cfi_startproc
.data
.align 4
.LP0:
.long 0
.text
endbr32
.section __patchable_function_entries,"aw",@progbits
.align 4
.long .LPFE1
.text
.LPFE1:
nop
movl $.LP0,%edx
1: call __fentry__
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl %esp, %ebp
.cfi_def_cfa_register 5
popl %ebp
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
* On x86_64-apple-darwin11.4.2 (both 32 and 64-bit):
FAIL: gcc.target/i386/pr93492-1.c check-function-bodies f10_endbr
FAIL: gcc.target/i386/pr93492-1.c check-function-bodies f10_none
FAIL: gcc.target/i386/pr93492-1.c check-function-bodies f11_endbr
FAIL: gcc.target/i386/pr93492-1.c check-function-bodies f11_none
FAIL: gcc.target/i386/pr93492-1.c check-function-bodies f21_endbr
FAIL: gcc.target/i386/pr93492-1.c check-function-bodies f21_none
FAIL: gcc.target/i386/pr93492-2.c scan-assembler
\\t.cfi_startproc\\n\\tendbr(32|64)\\n.*.LPFE1:\\n\\tnop\\n\\tret\\n
FAIL: gcc.target/i386/pr93492-4.c scan-assembler
\\t.cfi_startproc\\n.*.LPFE1:\\n\\tnop\\n\\tret\\n
More information about the Gcc-bugs
mailing list