[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