http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60073
Bug ID: 60073
Summary: [4.9 regression] 64-bit libffi.call/cls_double_va.c
FAILs on Solaris/SPARC
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libffi
Assignee: unassigned at gcc dot gnu.org
Reporter: ro at gcc dot gnu.org
CC: amodra at gcc dot gnu.org, ebotcazou at gcc dot gnu.org,
green at gcc dot gnu.org
Host: sparc*-sun-solaris2.*
Target: sparc*-sun-solaris2.*
Build: sparc*-sun-solaris2.*
Since ca. 20131121, the 64-bit libffi.call/cls_double_va.c test FAILs on
Solaris/SPARC:
FAIL: libffi.call/cls_double_va.c -O0 -W -Wall output pattern test, is 7.0
FAIL: libffi.call/cls_double_va.c -O2 output pattern test, is 7.0
FAIL: libffi.call/cls_double_va.c -O3 output pattern test, is 7.0
FAIL: libffi.call/cls_double_va.c -Os output pattern test, is 7.0
FAIL: libffi.call/cls_double_va.c -O2 -fomit-frame-pointer output pattern test,
is 7.0
E.g.
FAIL: libffi.call/cls_double_va.c -O0 -W -Wall output pattern test, is 7.0
res: 4
0.0
res: 4
, should match 7.0?
res: 4?
7.0?
res: 4
This is due to
2013-11-18 Alan Modra <[email protected]>
* src/powerpc/ppc_closure.S: Don't bl .Luint128.
* src/powerpc/ffitarget.h: Import from upstream.
* src/powerpc/ffi.c: Likewise.
* src/powerpc/linux64.S: Likewise.
* src/powerpc/linux64_closure.S: Likewise.
* doc/libffi.texi: Likewise.
* testsuite/libffi.call/cls_double_va.c: Likewise.
* testsuite/libffi.call/cls_longdouble_va.c: Likewise.
Reverting the cls_double.ca change lets the testcase pass. Strangely, the
cls_longdouble_va.c test still passes even with the patch, so this could
indicate
a bug in the libffi sparcv9 code.
Rainer