From: Geoffrey Keating Date: Fri, 12 Apr 2002 20:41:58 +0000 (+0000) Subject: 20020412-1.c: New file, renamed from gcc.c-torture/execute/20020307-2.c. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=869b8e4d4058477240bbfc139ac2c3798c455880;p=gcc.git 20020412-1.c: New file, renamed from gcc.c-torture/execute/20020307-2.c. * gcc.c-torture/execute/20020412-1.c: New file, renamed from gcc.c-torture/execute/20020307-2.c. From-SVN: r52241 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fdf1c38bd49..c428908e68d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2002-04-12 Geoffrey Keating + + * gcc.c-torture/execute/20020412-1.c: New file, renamed from + gcc.c-torture/execute/20020307-2.c. + 2002-04-12 Richard Sandiford * g++.dg/ext/attrib5.C, diff --git a/gcc/testsuite/gcc.c-torture/execute/20020307-2.c b/gcc/testsuite/gcc.c-torture/execute/20020307-2.c deleted file mode 100644 index df0efe008ad..00000000000 --- a/gcc/testsuite/gcc.c-torture/execute/20020307-2.c +++ /dev/null @@ -1,56 +0,0 @@ -/* PR c/3711 - This testcase ICEd on IA-32 at -O0 and was miscompiled otherwise, - because std_expand_builtin_va_arg didn't handle variable size types. */ - -#include - -extern void abort (void); -extern void exit (int); - -void bar (int c) -{ - static int d = '0'; - - if (c != d++) - abort (); - if (c < '0' || c > '9') - abort (); -} - -void foo (int size, ...) -{ - struct - { - char x[size]; - } d; - va_list ap; - int i; - - va_start (ap, size); - d = va_arg (ap, typeof (d)); - for (i = 0; i < size; i++) - bar (d.x[i]); - d = va_arg (ap, typeof (d)); - for (i = 0; i < size; i++) - bar (d.x[i]); - va_end (ap); -} - -int main (void) -{ - int z = 5; - struct { char a[z]; } x, y; - - x.a[0] = '0'; - x.a[1] = '1'; - x.a[2] = '2'; - x.a[3] = '3'; - x.a[4] = '4'; - y.a[0] = '5'; - y.a[1] = '6'; - y.a[2] = '7'; - y.a[3] = '8'; - y.a[4] = '9'; - foo (z, x, y); - exit (0); -} diff --git a/gcc/testsuite/gcc.c-torture/execute/20020412-1.c b/gcc/testsuite/gcc.c-torture/execute/20020412-1.c new file mode 100644 index 00000000000..df0efe008ad --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20020412-1.c @@ -0,0 +1,56 @@ +/* PR c/3711 + This testcase ICEd on IA-32 at -O0 and was miscompiled otherwise, + because std_expand_builtin_va_arg didn't handle variable size types. */ + +#include + +extern void abort (void); +extern void exit (int); + +void bar (int c) +{ + static int d = '0'; + + if (c != d++) + abort (); + if (c < '0' || c > '9') + abort (); +} + +void foo (int size, ...) +{ + struct + { + char x[size]; + } d; + va_list ap; + int i; + + va_start (ap, size); + d = va_arg (ap, typeof (d)); + for (i = 0; i < size; i++) + bar (d.x[i]); + d = va_arg (ap, typeof (d)); + for (i = 0; i < size; i++) + bar (d.x[i]); + va_end (ap); +} + +int main (void) +{ + int z = 5; + struct { char a[z]; } x, y; + + x.a[0] = '0'; + x.a[1] = '1'; + x.a[2] = '2'; + x.a[3] = '3'; + x.a[4] = '4'; + y.a[0] = '5'; + y.a[1] = '6'; + y.a[2] = '7'; + y.a[3] = '8'; + y.a[4] = '9'; + foo (z, x, y); + exit (0); +}