OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [va-arg-22.c] - Diff between revs 297 and 338

Only display areas with differences | Details | Blame | View Log

Rev 297 Rev 338
#include <stdarg.h>
#include <stdarg.h>
 
 
extern void abort (void);
extern void abort (void);
extern void exit (int);
extern void exit (int);
 
 
void bar (int n, int c)
void bar (int n, int c)
{
{
  static int lastn = -1, lastc = -1;
  static int lastn = -1, lastc = -1;
 
 
  if (lastn != n)
  if (lastn != n)
    {
    {
      if (lastc != lastn)
      if (lastc != lastn)
        abort ();
        abort ();
      lastc = 0;
      lastc = 0;
      lastn = n;
      lastn = n;
    }
    }
 
 
  if (c != (char) (lastc ^ (n << 3)))
  if (c != (char) (lastc ^ (n << 3)))
    abort ();
    abort ();
  lastc++;
  lastc++;
}
}
 
 
#define D(N) typedef struct { char x[N]; } A##N;
#define D(N) typedef struct { char x[N]; } A##N;
D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
D(8) D(9) D(10) D(11) D(12) D(13) D(14) D(15)
D(8) D(9) D(10) D(11) D(12) D(13) D(14) D(15)
D(16) D(31) D(32) D(35) D(72)
D(16) D(31) D(32) D(35) D(72)
#undef D
#undef D
 
 
void foo (int size, ...)
void foo (int size, ...)
{
{
#define D(N) A##N a##N;
#define D(N) A##N a##N;
D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
D(8) D(9) D(10) D(11) D(12) D(13) D(14) D(15)
D(8) D(9) D(10) D(11) D(12) D(13) D(14) D(15)
D(16) D(31) D(32) D(35) D(72)
D(16) D(31) D(32) D(35) D(72)
#undef D
#undef D
  va_list ap;
  va_list ap;
  int i;
  int i;
 
 
  if (size != 21)
  if (size != 21)
    abort ();
    abort ();
  va_start (ap, size);
  va_start (ap, size);
#define D(N)                                    \
#define D(N)                                    \
  a##N = va_arg (ap, typeof (a##N));            \
  a##N = va_arg (ap, typeof (a##N));            \
  for (i = 0; i < N; i++)                        \
  for (i = 0; i < N; i++)                        \
    bar (N, a##N.x[i]);
    bar (N, a##N.x[i]);
D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
D(8) D(9) D(10) D(11) D(12) D(13) D(14) D(15)
D(8) D(9) D(10) D(11) D(12) D(13) D(14) D(15)
D(16) D(31) D(32) D(35) D(72)
D(16) D(31) D(32) D(35) D(72)
#undef D
#undef D
  va_end (ap);
  va_end (ap);
}
}
 
 
int main (void)
int main (void)
{
{
#define D(N) A##N a##N;
#define D(N) A##N a##N;
D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
D(8) D(9) D(10) D(11) D(12) D(13) D(14) D(15)
D(8) D(9) D(10) D(11) D(12) D(13) D(14) D(15)
D(16) D(31) D(32) D(35) D(72)
D(16) D(31) D(32) D(35) D(72)
#undef D
#undef D
  int i;
  int i;
 
 
#define D(N)                                    \
#define D(N)                                    \
  for (i = 0; i < N; i++)                        \
  for (i = 0; i < N; i++)                        \
    a##N.x[i] = i ^ (N << 3);
    a##N.x[i] = i ^ (N << 3);
D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
D(8) D(9) D(10) D(11) D(12) D(13) D(14) D(15)
D(8) D(9) D(10) D(11) D(12) D(13) D(14) D(15)
D(16) D(31) D(32) D(35) D(72)
D(16) D(31) D(32) D(35) D(72)
#undef D
#undef D
 
 
  foo (21
  foo (21
#define D(N) , a##N
#define D(N) , a##N
D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
D(8) D(9) D(10) D(11) D(12) D(13) D(14) D(15)
D(8) D(9) D(10) D(11) D(12) D(13) D(14) D(15)
D(16) D(31) D(32) D(35) D(72)
D(16) D(31) D(32) D(35) D(72)
#undef D
#undef D
      );
      );
  exit (0);
  exit (0);
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.