The following is a patch by Jakub that ought to fix gnu11 fallout on i686. Applying to trunk.
2014-10-16 Jakub Jelinek <ja...@redhat.com> Marek Polacek <pola...@redhat.com> * gcc.dg/20020122-2.c: Use dg-additional-options. Fix implicit declarations. * gcc.dg/pr32176.c: Likewise. * gcc.dg/builtin-apply4.c: Use dg-additional-options. * gcc.dg/ia64-sync-1.c: Fix implicit declarations. * gcc.dg/ia64-sync-2.c: Likewise. * gcc.dg/ia64-sync-3.c: Likewise. * gcc.dg/sync-2.c: Likewise. * gcc.dg/sync-3.c: Likewise. * gcc.target/i386/990524-1.c: Likewise. * gcc.target/i386/avx512f-pr57233.c: Likewise. * gcc.target/i386/avx512f-typecast-1.c: Likewise. * gcc.target/i386/pr26826.c: Likewise. * gcc.target/i386/pr37184.c: Likewise. * gcc.target/i386/20060125-1.c: Fix defaulting to int. * gcc.target/i386/20060125-2.c: Likewise. * gcc.target/i386/memcpy-1.c: Likewise. * gcc.target/i386/pr40934.c: Likewise. * gcc.target/i386/sse-5.c: Likewise. * gcc.target/i386/stackalign/asm-1.c: Likewise. * gcc.target/i386/vectorize4.c: Likewise. * gcc.target/i386/980312-1.c: Fix defaulting to int. Use -fgnu89-inline. * gcc.target/i386/980313-1.c: Likewise. * gcc.target/i386/builtin-apply-mmx.c: Use -fgnu89-inline. * gcc.target/i386/crc32-2.c: Use -std=gnu89. * gcc.target/i386/crc32-3.c: Likewise. * gcc.target/i386/intrinsics_3.c: Likewise. * gcc.target/i386/loop-1.c: Likewise. * gcc.target/i386/pr44948-2a.c: Likewise. * gcc.target/i386/pr47564.c: Likewise. * gcc.target/i386/pr50712.c: Likewise. * gcc.target/i386/stackalign/return-2.c: Likewise. diff --git gcc/testsuite/gcc.dg/20020122-2.c gcc/testsuite/gcc.dg/20020122-2.c index 2499221..684ea5c 100644 --- gcc/testsuite/gcc.dg/20020122-2.c +++ gcc/testsuite/gcc.dg/20020122-2.c @@ -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(); diff --git gcc/testsuite/gcc.dg/builtin-apply4.c gcc/testsuite/gcc.dg/builtin-apply4.c index c2cedfb..b548df3 100644 --- gcc/testsuite/gcc.dg/builtin-apply4.c +++ gcc/testsuite/gcc.dg/builtin-apply4.c @@ -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); diff --git gcc/testsuite/gcc.dg/ia64-sync-1.c gcc/testsuite/gcc.dg/ia64-sync-1.c index 2cfc144..ce83a84 100644 --- gcc/testsuite/gcc.dg/ia64-sync-1.c +++ gcc/testsuite/gcc.dg/ia64-sync-1.c @@ -13,6 +13,7 @@ __extension__ typedef __SIZE_TYPE__ size_t; 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 }; diff --git gcc/testsuite/gcc.dg/ia64-sync-2.c gcc/testsuite/gcc.dg/ia64-sync-2.c index e6f4cad..3dc1035 100644 --- gcc/testsuite/gcc.dg/ia64-sync-2.c +++ gcc/testsuite/gcc.dg/ia64-sync-2.c @@ -13,6 +13,7 @@ __extension__ typedef __SIZE_TYPE__ size_t; 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 }; diff --git gcc/testsuite/gcc.dg/ia64-sync-3.c gcc/testsuite/gcc.dg/ia64-sync-3.c index 621e902..ad27169 100644 --- gcc/testsuite/gcc.dg/ia64-sync-3.c +++ gcc/testsuite/gcc.dg/ia64-sync-3.c @@ -10,6 +10,7 @@ __extension__ typedef __SIZE_TYPE__ size_t; 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 }; diff --git gcc/testsuite/gcc.dg/pr32176.c gcc/testsuite/gcc.dg/pr32176.c index 3017c34..e619f2f 100644 --- gcc/testsuite/gcc.dg/pr32176.c +++ gcc/testsuite/gcc.dg/pr32176.c @@ -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) { diff --git gcc/testsuite/gcc.dg/sync-2.c gcc/testsuite/gcc.dg/sync-2.c index 78aa8cb..28c1d43 100644 --- gcc/testsuite/gcc.dg/sync-2.c +++ gcc/testsuite/gcc.dg/sync-2.c @@ -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 }; diff --git gcc/testsuite/gcc.dg/sync-3.c gcc/testsuite/gcc.dg/sync-3.c index 255faaa..2960287 100644 --- gcc/testsuite/gcc.dg/sync-3.c +++ gcc/testsuite/gcc.dg/sync-3.c @@ -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 }; diff --git gcc/testsuite/gcc.target/i386/20060125-1.c gcc/testsuite/gcc.target/i386/20060125-1.c index ed9dcce..73bb970 100644 --- gcc/testsuite/gcc.target/i386/20060125-1.c +++ gcc/testsuite/gcc.target/i386/20060125-1.c @@ -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(); diff --git gcc/testsuite/gcc.target/i386/20060125-2.c gcc/testsuite/gcc.target/i386/20060125-2.c index 1747a63..1205243 100644 --- gcc/testsuite/gcc.target/i386/20060125-2.c +++ gcc/testsuite/gcc.target/i386/20060125-2.c @@ -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(); diff --git gcc/testsuite/gcc.target/i386/980312-1.c gcc/testsuite/gcc.target/i386/980312-1.c index 3a125f2..90bb929 100644 --- gcc/testsuite/gcc.target/i386/980312-1.c +++ gcc/testsuite/gcc.target/i386/980312-1.c @@ -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; diff --git gcc/testsuite/gcc.target/i386/980313-1.c gcc/testsuite/gcc.target/i386/980313-1.c index 8698aa6..66920fc 100644 --- gcc/testsuite/gcc.target/i386/980313-1.c +++ gcc/testsuite/gcc.target/i386/980313-1.c @@ -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; diff --git gcc/testsuite/gcc.target/i386/990524-1.c gcc/testsuite/gcc.target/i386/990524-1.c index 295ffac..e94114a 100644 --- gcc/testsuite/gcc.target/i386/990524-1.c +++ gcc/testsuite/gcc.target/i386/990524-1.c @@ -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) diff --git gcc/testsuite/gcc.target/i386/avx512f-pr57233.c gcc/testsuite/gcc.target/i386/avx512f-pr57233.c index 2f1c23a..6c648ad 100644 --- gcc/testsuite/gcc.target/i386/avx512f-pr57233.c +++ gcc/testsuite/gcc.target/i386/avx512f-pr57233.c @@ -4,6 +4,8 @@ #include "avx512f-check.h" +int do_main (void); + static void avx512f_test (void) { diff --git gcc/testsuite/gcc.target/i386/avx512f-typecast-1.c gcc/testsuite/gcc.target/i386/avx512f-typecast-1.c index 60243d6..e69e9c0 100644 --- gcc/testsuite/gcc.target/i386/avx512f-typecast-1.c +++ gcc/testsuite/gcc.target/i386/avx512f-typecast-1.c @@ -4,6 +4,7 @@ #include "avx512f-check.h" +extern int memcmp (const void *, const void *, __SIZE_TYPE__); void avx512f_test (void) diff --git gcc/testsuite/gcc.target/i386/builtin-apply-mmx.c gcc/testsuite/gcc.target/i386/builtin-apply-mmx.c index badfe03..5a2f78d 100644 --- gcc/testsuite/gcc.target/i386/builtin-apply-mmx.c +++ gcc/testsuite/gcc.target/i386/builtin-apply-mmx.c @@ -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" diff --git gcc/testsuite/gcc.target/i386/crc32-2.c gcc/testsuite/gcc.target/i386/crc32-2.c index 678cfd5..0701723 100644 --- gcc/testsuite/gcc.target/i386/crc32-2.c +++ gcc/testsuite/gcc.target/i386/crc32-2.c @@ -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 diff --git gcc/testsuite/gcc.target/i386/crc32-3.c gcc/testsuite/gcc.target/i386/crc32-3.c index 7518a45..ac53b657 100644 --- gcc/testsuite/gcc.target/i386/crc32-3.c +++ gcc/testsuite/gcc.target/i386/crc32-3.c @@ -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 diff --git gcc/testsuite/gcc.target/i386/intrinsics_3.c gcc/testsuite/gcc.target/i386/intrinsics_3.c index e5ea8a9..1280992 100644 --- gcc/testsuite/gcc.target/i386/intrinsics_3.c +++ gcc/testsuite/gcc.target/i386/intrinsics_3.c @@ -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> diff --git gcc/testsuite/gcc.target/i386/loop-1.c gcc/testsuite/gcc.target/i386/loop-1.c index 1af62f2..e1a162f 100644 --- gcc/testsuite/gcc.target/i386/loop-1.c +++ gcc/testsuite/gcc.target/i386/loop-1.c @@ -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. */ diff --git gcc/testsuite/gcc.target/i386/memcpy-1.c gcc/testsuite/gcc.target/i386/memcpy-1.c index b716c5d..2a7595e 100644 --- gcc/testsuite/gcc.target/i386/memcpy-1.c +++ gcc/testsuite/gcc.target/i386/memcpy-1.c @@ -11,7 +11,7 @@ char a[2048]; char b[2048]; -t() +void t(void) { __builtin_memcpy (a,b,2048); } diff --git gcc/testsuite/gcc.target/i386/pr26826.c gcc/testsuite/gcc.target/i386/pr26826.c index 062e173..15ab7b8 100644 --- gcc/testsuite/gcc.target/i386/pr26826.c +++ gcc/testsuite/gcc.target/i386/pr26826.c @@ -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; diff --git gcc/testsuite/gcc.target/i386/pr37184.c gcc/testsuite/gcc.target/i386/pr37184.c index 14e11f7..48ebab5 100644 --- gcc/testsuite/gcc.target/i386/pr37184.c +++ gcc/testsuite/gcc.target/i386/pr37184.c @@ -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) { diff --git gcc/testsuite/gcc.target/i386/pr40934.c gcc/testsuite/gcc.target/i386/pr40934.c index 6511722..882c645 100644 --- gcc/testsuite/gcc.target/i386/pr40934.c +++ gcc/testsuite/gcc.target/i386/pr40934.c @@ -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; diff --git gcc/testsuite/gcc.target/i386/pr44948-2a.c gcc/testsuite/gcc.target/i386/pr44948-2a.c index d84d1a6..8d48b96 100644 --- gcc/testsuite/gcc.target/i386/pr44948-2a.c +++ gcc/testsuite/gcc.target/i386/pr44948-2a.c @@ -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 } */ diff --git gcc/testsuite/gcc.target/i386/pr47564.c gcc/testsuite/gcc.target/i386/pr47564.c index 5d3f25d..dc09bbe 100644 --- gcc/testsuite/gcc.target/i386/pr47564.c +++ gcc/testsuite/gcc.target/i386/pr47564.c @@ -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) diff --git gcc/testsuite/gcc.target/i386/pr50712.c gcc/testsuite/gcc.target/i386/pr50712.c index 90cc75d..26c00e1 100644 --- gcc/testsuite/gcc.target/i386/pr50712.c +++ gcc/testsuite/gcc.target/i386/pr50712.c @@ -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; diff --git gcc/testsuite/gcc.target/i386/sse-5.c gcc/testsuite/gcc.target/i386/sse-5.c index 8f5d9bc..33118b7 100644 --- gcc/testsuite/gcc.target/i386/sse-5.c +++ gcc/testsuite/gcc.target/i386/sse-5.c @@ -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; } diff --git gcc/testsuite/gcc.target/i386/stackalign/asm-1.c gcc/testsuite/gcc.target/i386/stackalign/asm-1.c index dfe3968..126a2b8a 100644 --- gcc/testsuite/gcc.target/i386/stackalign/asm-1.c +++ gcc/testsuite/gcc.target/i386/stackalign/asm-1.c @@ -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));} diff --git gcc/testsuite/gcc.target/i386/stackalign/return-2.c gcc/testsuite/gcc.target/i386/stackalign/return-2.c index d393913..51aaaca 100644 --- gcc/testsuite/gcc.target/i386/stackalign/return-2.c +++ gcc/testsuite/gcc.target/i386/stackalign/return-2.c @@ -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. */ diff --git gcc/testsuite/gcc.target/i386/vectorize4.c gcc/testsuite/gcc.target/i386/vectorize4.c index 557d0a2..8f1df52 100644 --- gcc/testsuite/gcc.target/i386/vectorize4.c +++ gcc/testsuite/gcc.target/i386/vectorize4.c @@ -5,7 +5,7 @@ extern double sqrt (double __x); -calc_freq (int *dest) +void calc_freq (int *dest) { float tmp_out[257]; int i; Marek