On Wed, Oct 15, 2014 at 11:25:26PM +0200, Marek Polacek wrote: > On Wed, Oct 15, 2014 at 11:05:45PM +0200, Jakub Jelinek wrote: > > On Wed, Oct 15, 2014 at 09:28:09PM +0200, Uros Bizjak wrote: > > > i686-linux-gnu testsuite trivially regressed [1]: > > Thanks for the log Uros. > > > I have half of that already in patch form, will test and send either later > > tonight or tomorrow. > > Please don't force yourself into doing that, it's more up to me to fix > my fallout ;). Feel free to send me the partial patch and I will finish > it tomorrow mornings (reproducing is easy with --target_board=unix/-m32). > In any case, thanks.
If you want to finish it up, here it is (I think I have covered all the GNU11 related new FAILs, but haven't tested it). Where missing prototypes or return types looked like an omission, I've tried to tweak it, in various tests -std=gnu89 looked like better option. In several tests __builtin_ia32_crc32di was used, which is fine for 64-bit tests where it is a builtin, but not in 32-bit tests where it is not. Some of them looked like they test or just expect it to be parsed as implicitly prototyped function, so I've used there -std=gnu89 too. --- gcc/testsuite/gcc.dg/builtin-apply4.c.jj 2014-10-10 10:20:08.000000000 +0200 +++ gcc/testsuite/gcc.dg/builtin-apply4.c 2014-10-15 19:33:23.140595264 +0200 @@ -1,6 +1,6 @@ /* PR tree-optimization/20076 */ /* { dg-options "-O2 -Wmissing-noreturn -fgnu89-inline" } */ -/* { dg-options "-O2 -mno-mmx" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */ +/* { dg-additional-options "-mno-mmx" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */ /* { dg-do run } */ extern void abort (void); --- gcc/testsuite/gcc.dg/sync-2.c.jj 2014-09-25 15:02:31.000000000 +0200 +++ gcc/testsuite/gcc.dg/sync-2.c 2014-10-15 19:38:42.361989299 +0200 @@ -11,6 +11,7 @@ extern void abort (void); extern void *memcpy (void *, const void *, __SIZE_TYPE__); +extern int memcmp (const void *, const void *, __SIZE_TYPE__); static char AI[18]; static char init_qi[18] = { 3,5,7,9,0,0,0 ,0 ,-1,0,0,-1,0,0 ,-1,0,0,-1 }; --- gcc/testsuite/gcc.dg/pr32176.c.jj 2014-09-25 15:02:30.000000000 +0200 +++ gcc/testsuite/gcc.dg/pr32176.c 2014-10-15 19:37:48.439990744 +0200 @@ -2,7 +2,9 @@ /* { dg-do compile } */ /* { dg-options "-O2 -fprefetch-loop-arrays -w" } */ -/* { dg-options "-O2 -fprefetch-loop-arrays -march=i686 -msse" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */ +/* { dg-additional-options "-march=i686 -msse" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */ + +extern void _gfortran_abort (); void foo (void) { --- gcc/testsuite/gcc.dg/sync-3.c.jj 2014-09-25 15:02:24.000000000 +0200 +++ gcc/testsuite/gcc.dg/sync-3.c 2014-10-15 19:38:57.266714706 +0200 @@ -8,6 +8,7 @@ extern void abort (void); extern void *memcpy (void *, const void *, __SIZE_TYPE__); +extern int memcmp (const void *, const void *, __SIZE_TYPE__); static char AI[18] __attribute__((__aligned__ (4))); static char init_qi[18] = { 3,5,7,9,0,0,0 ,0 ,-1,0,0,-1,0,0 ,-1,0,0,-1 }; --- gcc/testsuite/gcc.dg/ia64-sync-1.c.jj 2014-09-25 15:02:25.000000000 +0200 +++ gcc/testsuite/gcc.dg/ia64-sync-1.c 2014-10-15 19:34:53.619177553 +0200 @@ -13,6 +13,7 @@ __extension__ typedef __SIZE_TYPE__ size extern void abort (void); extern void *memcpy (void *, const void *, size_t); +extern int memcmp (const void *, const void *, size_t); static int AI[12]; static int init_noret_si[12] = { 0, 0, 0, 1, 0, 0, 0 , 0 , -1, 0, 0, -1 }; --- gcc/testsuite/gcc.dg/ia64-sync-2.c.jj 2014-09-25 15:02:27.000000000 +0200 +++ gcc/testsuite/gcc.dg/ia64-sync-2.c 2014-10-15 19:35:28.854628785 +0200 @@ -13,6 +13,7 @@ __extension__ typedef __SIZE_TYPE__ size extern void abort (void); extern void *memcpy (void *, const void *, size_t); +extern int memcmp (const void *, const void *, size_t); static int AI[18]; static int init_si[18] = { 0,0,0,1,0,0, 0,0 ,-1,0,0,-1,0,0 ,-1,0,0,-1 }; --- gcc/testsuite/gcc.dg/ia64-sync-3.c.jj 2014-09-25 15:02:31.000000000 +0200 +++ gcc/testsuite/gcc.dg/ia64-sync-3.c 2014-10-15 19:35:41.882351595 +0200 @@ -10,6 +10,7 @@ __extension__ typedef __SIZE_TYPE__ size extern void abort (void); extern void *memcpy (void *, const void *, size_t); +extern int memcmp (const void *, const void *, size_t); static int AI[4]; static int init_si[4] = { -30,-30,-50,-50 }; --- gcc/testsuite/gcc.dg/20020122-2.c.jj 2014-09-25 15:02:30.000000000 +0200 +++ gcc/testsuite/gcc.dg/20020122-2.c 2014-10-15 19:32:21.202599849 +0200 @@ -3,9 +3,10 @@ /* { dg-do compile } */ /* { dg-options "-O2 -fprefetch-loop-arrays -w" } */ -/* { dg-options "-O2 -fprefetch-loop-arrays -march=athlon" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */ +/* { dg-additional-options "-march=athlon" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */ extern int access( char* ); +extern int strcmp(const char *s1, const char *s2); extern int a(); char* foocp(); --- gcc/testsuite/gcc.target/i386/memcpy-1.c.jj 2014-09-25 15:02:05.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/memcpy-1.c 2014-10-15 23:13:03.927991653 +0200 @@ -11,7 +11,7 @@ char a[2048]; char b[2048]; -t() +void t(void) { __builtin_memcpy (a,b,2048); } --- gcc/testsuite/gcc.target/i386/pr47564.c.jj 2014-09-25 15:02:05.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/pr47564.c 2014-10-15 23:20:06.411863048 +0200 @@ -1,6 +1,6 @@ /* PR target/47564 */ /* { dg-do compile } */ -/* { dg-options "-O2 -msse2" } */ +/* { dg-options "-O2 -msse2 -std=gnu89" } */ static inline unsigned long long foo (const unsigned char *p) --- gcc/testsuite/gcc.target/i386/980312-1.c.jj 2014-09-25 15:02:05.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/980312-1.c 2014-10-15 19:50:19.220953558 +0200 @@ -1,6 +1,6 @@ /* { dg-do link } */ /* { dg-require-effective-target ia32 } */ -/* { dg-options "-O2 -march=pentiumpro" } */ +/* { dg-options "-O2 -march=pentiumpro -fgnu89-inline" } */ extern __inline double __expm1 (double __x) @@ -19,6 +19,7 @@ tanh (double __x) { return __expm1 (__x) * __sgn1 (-__x); } +int main () { return tanh (3.45) != 0; --- gcc/testsuite/gcc.target/i386/loop-1.c.jj 2014-09-25 15:02:05.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/loop-1.c 2014-10-15 23:12:28.795651793 +0200 @@ -1,7 +1,7 @@ /* PR optimization/9888 */ /* { dg-do run } */ /* { dg-require-effective-target ia32 } */ -/* { dg-options "-mtune=k6 -O3" } */ +/* { dg-options "-mtune=k6 -O3 -std=gnu89" } */ /* Verify that GCC doesn't emit out of range 'loop' instructions. */ --- gcc/testsuite/gcc.target/i386/vectorize4.c.jj 2014-09-25 15:02:09.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/vectorize4.c 2014-10-15 23:22:53.634571793 +0200 @@ -5,7 +5,7 @@ extern double sqrt (double __x); -calc_freq (int *dest) +void calc_freq (int *dest) { float tmp_out[257]; int i; --- gcc/testsuite/gcc.target/i386/pr26826.c.jj 2014-09-25 15:02:09.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/pr26826.c 2014-10-15 23:15:07.304688392 +0200 @@ -2,6 +2,8 @@ /* { dg-require-effective-target ia32 } */ /* { dg-options "-O -fomit-frame-pointer -march=i586" } */ +int bar (int); + void foo(char* p, char c, int i) { char a[2], *q=a+1; --- gcc/testsuite/gcc.target/i386/intrinsics_3.c.jj 2014-09-25 15:02:05.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/intrinsics_3.c 2014-10-15 23:11:43.493477376 +0200 @@ -4,7 +4,7 @@ popcntintrin.h */ /* { dg-do compile } */ -/* { dg-options "-O2 -msse -mno-sse4.1 -mno-sse4.2 -mno-popcnt" } */ +/* { dg-options "-O2 -msse -mno-sse4.1 -mno-sse4.2 -mno-popcnt -std=gnu89" } */ #include <popcntintrin.h> --- gcc/testsuite/gcc.target/i386/20060125-2.c.jj 2014-09-25 15:02:09.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/20060125-2.c 2014-10-15 19:41:07.898259486 +0200 @@ -12,7 +12,7 @@ struct a }; __attribute__ ((noinline)) -__attribute__ ((regparm(1))) t(struct a a) +__attribute__ ((regparm(1))) void t(struct a a) { if (a.a!=1 || a.b!=1 || a.c!=1) abort(); --- gcc/testsuite/gcc.target/i386/pr37184.c.jj 2014-09-25 15:02:09.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/pr37184.c 2014-10-15 23:16:02.626635822 +0200 @@ -2,6 +2,8 @@ /* { dg-require-effective-target ilp32 } */ /* { dg-options "-O1" } */ +extern int mod_rhs (int); + static inline unsigned int rshift_u_s (unsigned int left, int right) { --- gcc/testsuite/gcc.target/i386/crc32-3.c.jj 2014-09-25 15:02:09.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/crc32-3.c 2014-10-15 23:10:09.432237063 +0200 @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target ia32 } */ -/* { dg-options "-O2 -mcrc32" } */ +/* { dg-options "-O2 -mcrc32 -std=gnu89" } */ /* { dg-final { scan-assembler "__builtin_ia32_crc32di" } } */ unsigned long long --- gcc/testsuite/gcc.target/i386/crc32-2.c.jj 2014-09-25 15:02:06.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/crc32-2.c 2014-10-15 23:09:57.919466840 +0200 @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -mcrc32" } */ +/* { dg-options "-O2 -mcrc32 -std=gnu89" } */ /* { dg-final { scan-assembler "crc32q\[^\\n\]*rax" { target { ! { ia32 } } } } } */ unsigned long long --- gcc/testsuite/gcc.target/i386/builtin-apply-mmx.c.jj 2014-09-25 15:02:09.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/builtin-apply-mmx.c 2014-10-15 19:54:38.446235352 +0200 @@ -10,7 +10,7 @@ /* This test case is adapted from gcc.dg/builtin-apply4.c. */ /* { dg-do run { xfail { ! *-*-darwin* } } } */ -/* { dg-options "-O2 -mmmx" } */ +/* { dg-options "-O2 -mmmx -fgnu89-inline" } */ /* { dg-require-effective-target ia32 } */ #include "mmx-check.h" --- gcc/testsuite/gcc.target/i386/avx512f-pr57233.c.jj 2014-09-25 15:02:09.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/avx512f-pr57233.c 2014-10-15 19:52:55.995107467 +0200 @@ -4,6 +4,8 @@ #include "avx512f-check.h" +int do_main (void); + static void avx512f_test (void) { --- gcc/testsuite/gcc.target/i386/stackalign/return-2.c.jj 2014-09-25 15:02:06.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/stackalign/return-2.c 2014-10-15 23:24:07.186118814 +0200 @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target ia32 } */ -/* { dg-options "-mpreferred-stack-boundary=2" } */ +/* { dg-options "-mpreferred-stack-boundary=2 -std=gnu89" } */ /* This compile only test is to detect an assertion failure in stack branch development. */ --- gcc/testsuite/gcc.target/i386/stackalign/asm-1.c.jj 2014-09-25 15:02:06.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/stackalign/asm-1.c 2014-10-15 23:23:30.789852605 +0200 @@ -4,4 +4,4 @@ /* This case is to detect a compile time regression introduced in stack branch development. */ -f(){asm("%0"::"r"(1.5F));}g(){asm("%0"::"r"(1.5));} +void f(){asm("%0"::"r"(1.5F));}void g(){asm("%0"::"r"(1.5));} --- gcc/testsuite/gcc.target/i386/pr40934.c.jj 2014-09-25 15:02:05.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/pr40934.c 2014-10-15 23:16:38.828952305 +0200 @@ -4,7 +4,7 @@ extern double host_frametime; extern float pitchvel; -V_DriftPitch (float delta, float move) +void V_DriftPitch (float delta, float move) { if (!delta) move = host_frametime; --- gcc/testsuite/gcc.target/i386/20060125-1.c.jj 2014-09-25 15:02:06.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/20060125-1.c 2014-10-15 19:40:44.138716105 +0200 @@ -12,7 +12,7 @@ struct a }; __attribute__ ((noinline)) -__attribute__ ((regparm(1))) t(struct a a) +__attribute__ ((regparm(1))) void t(struct a a) { if (a.a!=1 || a.b!=1 || a.c!=1) abort(); --- gcc/testsuite/gcc.target/i386/avx512f-typecast-1.c.jj 2014-09-25 15:02:06.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/avx512f-typecast-1.c 2014-10-15 19:53:57.513985828 +0200 @@ -4,6 +4,7 @@ #include "avx512f-check.h" +extern int memcmp (const void *, const void *, __SIZE_TYPE__); void avx512f_test (void) --- gcc/testsuite/gcc.target/i386/980313-1.c.jj 2014-09-25 15:02:09.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/980313-1.c 2014-10-15 19:50:39.006595165 +0200 @@ -1,6 +1,6 @@ /* { dg-do link } */ /* { dg-require-effective-target ia32 } */ -/* { dg-options "-O2 -march=pentiumpro" } */ +/* { dg-options "-O2 -march=pentiumpro -fgnu89-inline" } */ extern __inline double __expm1 (double __x) @@ -20,6 +20,7 @@ tanh (double __x) register double __exm1 = __expm1 (__x); return __exm1 / (__exm1 + 2.0) * __sgn1 (-__x); } +int main () { return tanh (3.45) != 0; --- gcc/testsuite/gcc.target/i386/990524-1.c.jj 2014-09-25 15:02:06.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/990524-1.c 2014-10-15 19:51:56.539189108 +0200 @@ -6,6 +6,7 @@ typedef struct t_anim_info { char *new_filename; long first_frame_nr; } t_anim_info; +void gimp_image_delete(int); static int p_frames_to_multilayer(t_anim_info *ainfo_ptr, long range_from, long range_to) --- gcc/testsuite/gcc.target/i386/sse-5.c.jj 2014-09-25 15:02:09.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/sse-5.c 2014-10-15 23:22:23.192196048 +0200 @@ -5,7 +5,7 @@ typedef double v2df __attribute__ ((vector_size (16))); v2df p; -q(v2df t) /* { dg-warning "SSE" "" } */ +void q(v2df t) /* { dg-warning "SSE" "" } */ { p=t; } --- gcc/testsuite/gcc.target/i386/pr44948-2a.c.jj 2014-09-25 15:02:09.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/pr44948-2a.c 2014-10-15 23:19:31.969540543 +0200 @@ -1,6 +1,6 @@ /* PR target/44948 */ /* { dg-do run } */ -/* { dg-options "-O -Wno-psabi -mno-sse -mtune=generic" } */ +/* { dg-options "-O -Wno-psabi -mno-sse -mtune=generic -std=gnu89" } */ /* { dg-require-effective-target ia32 } */ /* { dg-require-effective-target sse2_runtime } */ /* { dg-additional-sources pr44948-2b.c } */ --- gcc/testsuite/gcc.target/i386/pr50712.c.jj 2014-09-25 15:02:09.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/pr50712.c 2014-10-15 23:21:56.578696123 +0200 @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target ia32 } */ -/* { dg-options "-O2" } */ +/* { dg-options "-O2 -std=gnu89" } */ typedef __builtin_va_list __va_list; typedef __va_list __gnuc_va_list; Jakub