[Bug c/15968] New: [3.5 Regression] gcc.c-torture/execute/va-arg-22.c fails on hppa64-hp-hpux11.11
danglin at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sat Jun 12 22:58:00 GMT 2004
FAIL: gcc.c-torture/execute/va-arg-22.c execution, -O0
FAIL: gcc.c-torture/execute/va-arg-22.c execution, -O1
FAIL: gcc.c-torture/execute/va-arg-22.c execution, -O2
FAIL: gcc.c-torture/execute/va-arg-22.c execution, -O3 -fomit-frame-pointer
FAIL: gcc.c-torture/execute/va-arg-22.c execution, -O3 -fomit-frame-pointer -
funroll-loops
FAIL: gcc.c-torture/execute/va-arg-22.c execution, -O3 -fomit-frame-pointer -
funroll-all-loops -finline-functions
FAIL: gcc.c-torture/execute/va-arg-22.c execution, -O3 -g
FAIL: gcc.c-torture/execute/va-arg-22.c execution, -Os
See < http://gcc.gnu.org/ml/gcc-testresults/2004-06/msg00467.html>.
I'm not sure whether this was intentional or not but va-arg-22.c passes
an empty struct D(0). If I change this typedef from
#define D(N) typedef struct { char x[N]; } A##N;
to
#define D(N) typedef struct { char x[N+1]; } A##N;
the test passes.
We pass empty structs by reference. I think va_arg
#define D(N) \
a##N = va_arg (ap, typeof (a##N)); \
for (i = 0; i < N; i++) \
bar (N, a##N.x[i]);
D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
...
in foo is broken for a0, when a0 is an empty struct.
--
Summary: [3.5 Regression] gcc.c-torture/execute/va-arg-22.c fails
on hppa64-hp-hpux11.11
Product: gcc
Version: 3.5.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: danglin at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org,jakub at redhat dot
com,jason at redhat dot com
GCC build triplet: hppa64-hp-hpux11.11
GCC host triplet: hppa64-hp-hpux11.11
GCC target triplet: hppa64-hp-hpux11.11
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15968
More information about the Gcc-bugs
mailing list