https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112729
Bug ID: 112729
Summary: gcc.target/i386/apx-interrupt-1.c etc. FAIL
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: testsuite
Assignee: unassigned at gcc dot gnu.org
Reporter: ro at gcc dot gnu.org
CC: wwwhhhyyy333 at gmail dot com, zewei.mo at intel dot com
Target Milestone: ---
Target: i386-pc-solaris2.11, x86_64-unknown-freebsd12.4
Several of the gcc.target/i386/apx-*.c tests FAIL on different targets:
* On Darwin/x86 they are skipped because the assembler doesn't support the cfi
directives.
* On Solaris/x86 with the native assembler, part of the failures is for the
same reason: lack of cfi support. Instead of hardcoding more and more
targets,
I have a patch that introduces a new cfi effective-target keyword for the
testsuite to handle that properly instead.
* However, on Solaris/x86 with gas (which does support the cfi directives),
there are still quite a number of failures. I'm attaching the assembler
output for comparison.
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 130, -136 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 131, -128 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 132, -120 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 133, -112 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 134, -104 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 135, -96 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 136, -88 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 137, -80 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 138, -72 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 139, -64 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 140, -56 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 141, -48 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 142, -40 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 143, -32 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 144, -24 1
FAIL: gcc.target/i386/apx-interrupt-1.c scan-assembler-times
\\\\t\\\\.cfi_offset 145, -16 1
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times
.cfi_def_cfa_offset 16 2
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times
.cfi_def_cfa_offset 32 2
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times
.cfi_def_cfa_offset 48 2
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times
.cfi_def_cfa_offset 56 2
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times
.cfi_def_cfa_offset 8(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times .cfi_offset 12,
-40(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times .cfi_offset 13,
-32(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times .cfi_offset 14,
-24(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times .cfi_offset 15,
-16(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times .cfi_offset 6,
-48(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times .cfi_restore
6(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times pop2[\\\\t
]*[^\\n\\r]*%r12[^\\n\\r]*%rbp[^\\n\\r]*(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times pop2[\\\\t
]*[^\\n\\r]*%r14[^\\n\\r]*%r13[^\\n\\r]*(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times
popq[^\\n\\r]*%r15(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times push2[\\\\t
]*[^\\n\\r]*%r13[^\\n\\r]*%r14[^\\n\\r]*(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times push2[\\\\t
]*[^\\n\\r]*%rbp[^\\n\\r]*%r12[^\\n\\r]*(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2-1.c scan-assembler-times
pushq[^\\n\\r]*%r15(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
.cfi_def_cfa_offset 16 2
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
.cfi_def_cfa_offset 32 2
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
.cfi_def_cfa_offset 48 2
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
.cfi_def_cfa_offset 56 2
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
.cfi_def_cfa_offset 8(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
.cfi_offset 12, -40(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
.cfi_offset 13, -32(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
.cfi_offset 14, -24(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
.cfi_offset 15, -16(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
.cfi_offset 6, -48(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
.cfi_restore 6(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
pop2[\\\\t ]*[^\\n\\r]*%r12[^\\n\\r]*%rbp[^\\n\\r]*(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
pop2[\\\\t ]*[^\\n\\r]*%r14[^\\n\\r]*%r13[^\\n\\r]*(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
popq[^\\n\\r]*%r15(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
push2[\\\\t ]*[^\\n\\r]*%r13[^\\n\\r]*%r14[^\\n\\r]*(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
push2[\\\\t ]*[^\\n\\r]*%rbp[^\\n\\r]*%r12[^\\n\\r]*(?:\\n|[ \\\\t]+#) 1
FAIL: gcc.target/i386/apx-push2pop2_force_drap-1.c scan-assembler-times
pushq[^\\n\\r]*%r15(?:\\n|[ \\\\t]+#) 1
* I strongly suspect that the FreeBSD 12.4/x86_64 failures are the same,
although
that's difficult to tell from the gcc-testresults mails.
It seems something is amiss here: maybe the tests are Linux-specific in some
way. In that case, the tests should be adjusted accordingly.