https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112917
Bug ID: 112917
Summary: Most strub execution tests FAIL on SPARC
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: ro at gcc dot gnu.org
CC: aoliva at gcc dot gnu.org, ebotcazou at gcc dot gnu.org
Target Milestone: ---
Target: sparc-sun-solaris2.11
Most of the new strub execution tests FAIL on Solaris/SPARC (both 32 and
64-bit):
FAIL: c-c++-common/strub-defer-O1.c -std=gnu++14 execution test
FAIL: c-c++-common/strub-defer-O1.c -std=gnu++17 execution test
FAIL: c-c++-common/strub-defer-O1.c -std=gnu++20 execution test
FAIL: c-c++-common/strub-defer-O1.c -std=gnu++98 execution test
32-bit
FAIL: c-c++-common/strub-defer-O2.c -std=gnu++14 execution test
FAIL: c-c++-common/strub-defer-O2.c -std=gnu++17 execution test
FAIL: c-c++-common/strub-defer-O2.c -std=gnu++20 execution test
FAIL: c-c++-common/strub-defer-O2.c -std=gnu++98 execution test
32 and 64-bit
FAIL: c-c++-common/strub-defer-O3.c -std=gnu++14 execution test
FAIL: c-c++-common/strub-defer-O3.c -std=gnu++17 execution test
FAIL: c-c++-common/strub-defer-O3.c -std=gnu++20 execution test
FAIL: c-c++-common/strub-defer-O3.c -std=gnu++98 execution test
FAIL: c-c++-common/strub-defer-Os.c -std=gnu++14 execution test
FAIL: c-c++-common/strub-defer-Os.c -std=gnu++17 execution test
FAIL: c-c++-common/strub-defer-Os.c -std=gnu++20 execution test
FAIL: c-c++-common/strub-defer-Os.c -std=gnu++98 execution test
64-bit
FAIL: c-c++-common/torture/strub-run1.c -O1 execution test
FAIL: c-c++-common/torture/strub-run1.c -O2 execution test
FAIL: c-c++-common/torture/strub-run1.c -O2 -flto execution test
FAIL: c-c++-common/torture/strub-run1.c -O2 -flto -flto-partition=none
execution test
FAIL: c-c++-common/torture/strub-run1.c -Os execution test
FAIL: c-c++-common/torture/strub-run3.c -O0 execution test
FAIL: c-c++-common/torture/strub-run3.c -O1 execution test
FAIL: c-c++-common/torture/strub-run3.c -O2 execution test
FAIL: c-c++-common/torture/strub-run3.c -O2 -flto execution test
FAIL: c-c++-common/torture/strub-run3.c -O2 -flto -flto-partition=none
execution test
FAIL: c-c++-common/torture/strub-run3.c -Os execution test
FAIL: c-c++-common/torture/strub-run4.c -O0 execution test
FAIL: c-c++-common/torture/strub-run4.c -O1 execution test
FAIL: c-c++-common/torture/strub-run4.c -O2 execution test
FAIL: c-c++-common/torture/strub-run4.c -O2 -flto execution test
FAIL: c-c++-common/torture/strub-run4.c -O2 -flto -flto-partition=none
execution test
FAIL: c-c++-common/torture/strub-run4.c -Os execution test
FAIL: c-c++-common/torture/strub-run4c.c -O0 execution test
FAIL: c-c++-common/torture/strub-run4c.c -O1 execution test
FAIL: c-c++-common/torture/strub-run4c.c -O2 execution test
FAIL: c-c++-common/torture/strub-run4c.c -O2 -flto execution test
FAIL: c-c++-common/torture/strub-run4c.c -O2 -flto -flto-partition=none
execution test
FAIL: c-c++-common/torture/strub-run4c.c -Os execution test
FAIL: c-c++-common/torture/strub-run4d.c -O0 execution test
FAIL: c-c++-common/torture/strub-run4d.c -O1 execution test
FAIL: c-c++-common/torture/strub-run4d.c -O2 execution test
FAIL: c-c++-common/torture/strub-run4d.c -O2 -flto execution test
FAIL: c-c++-common/torture/strub-run4d.c -O2 -flto -flto-partition=none
execution test
FAIL: c-c++-common/torture/strub-run4d.c -Os execution test
FAIL: c-c++-common/torture/strub-run4i.c -O0 execution test
FAIL: c-c++-common/torture/strub-run4i.c -O1 execution test
FAIL: c-c++-common/torture/strub-run4i.c -O2 execution test
FAIL: c-c++-common/torture/strub-run4i.c -O2 -flto execution test
FAIL: c-c++-common/torture/strub-run4i.c -O2 -flto -flto-partition=none
execution test
FAIL: c-c++-common/torture/strub-run4i.c -Os execution test
32 and 64-bit
I've run two of the tests under gdb:
Starting program:
/var/gcc/regression/master/11.4-gcc-gas/build/gcc/testsuite/gcc/strub-defer-O1.exe
[...]
Thread 2 received signal SIGABRT, Aborted.
[Switching to Thread 1 (LWP 1)]
0xfec394ec in __lwp_sigqueue () from /lib/libc.so.1
(gdb) bt
#0 0xfec394ec in __lwp_sigqueue () from /lib/libc.so.1
#1 0xfeb770e8 in raise () from /lib/libc.so.1
#2 0xfeb485c0 in abort () from /lib/libc.so.1
#3 0x00010e5c in deferred_at_calls (.strub.watermark_ptr=<optimized out>)
at
/vol/gcc/src/hg/master/local/gcc/testsuite/c-c++-common/strub-defer-O3.c:83
#4 0x00010f60 in main ()
at
/vol/gcc/src/hg/master/local/gcc/testsuite/c-c++-common/strub-defer-O3.c:106
Starting program:
/var/gcc/regression/master/11.4-gcc-gas/build/gcc/testsuite/gcc/strub-run1.exe
[...]
Thread 2 received signal SIGABRT, Aborted.
[Switching to Thread 1 (LWP 1)]
0xfec394ec in __lwp_sigqueue () from /lib/libc.so.1
(gdb) bt
#0 0xfec394ec in __lwp_sigqueue () from /lib/libc.so.1
#1 0xfeb770e8 in raise () from /lib/libc.so.1
#2 0xfeb485c0 in abort () from /lib/libc.so.1
#3 0x00010f80 in main ()
at
/vol/gcc/src/hg/master/local/gcc/testsuite/c-c++-common/torture/strub-run1.c:92
The documentation is incomplete AFAICT: while invoke.texi describes the
-fstrub=
options, it barely tell what this is all about. Seems to me like
implementation
detail without a high-level overview.