Towards GNU11
Jakub Jelinek
jakub@redhat.com
Wed Oct 15 21:30:00 GMT 2014
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
More information about the Gcc
mailing list