[PATCH] testsuite fixes for x86_64-pc-mingw32

Ozkan Sezer sezeroz@gmail.com
Mon Aug 31 17:12:00 GMT 2009


Hello:  The following patch fixes several tests under
gcc.dg for x86_64-pc-mingw32.  The patch is for the trunk,
but it can be applied to the 4.4 branch, too, except for
c90-const-expr-2, -6 and -9.  OK?
[ I don't have svn write access.]

2009-08-31  Ozkan Sezer  <sezeroz@gmail.com>

	* gcc.dg/large-size-array-2.c: Fix for x86_64-pc-mingw32.
	* gcc.dg/large-size-array-4.c: Likewise.
	* gcc.dg/c90-const-expr-2.c: Likewise.
	* gcc.dg/c90-const-expr-6.c: Likewise.
	* gcc.dg/c90-const-expr-9.c: Likewise.
	* gcc.dg/c90-const-expr-10.c: Likewise.
	* gcc.dg/c99-const-expr-2.c: Likewise.
	* gcc.dg/torture/pr39074.c: Likewise.
	* gcc.dg/tree-ssa/pr33920.c: Likewise.
	* gcc.dg/vect/O1-pr33854.c: Likewise.
	* gcc.dg/vect/pr33833.c: Likewise.
	* gcc.dg/vect/pr33846.c: Likewise.

diff -urNp gcc45-svn/gcc/testsuite/gcc.dg/large-size-array-2.c
W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/large-size-array-2.c
--- gcc45-svn/gcc/testsuite/gcc.dg/large-size-array-2.c	2008-04-26
22:14:46.000000000 +0300
+++ W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/large-size-array-2.c	2009-08-20
19:16:30.000000000 +0300
@@ -4,4 +4,4 @@
 static char * name[] = {
     [0x80000000]  = "bar"
   };
-/* { dg-error "too large" "" { target { { ! lp64 } || x86_64-*-mingw*
} }  6 } */
+/* { dg-error "too large" "" { target { { ! lp64 } && { ! llp64 } } }  6 } */
diff -urNp gcc45-svn/gcc/testsuite/gcc.dg/large-size-array-4.c
W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/large-size-array-4.c
--- gcc45-svn/gcc/testsuite/gcc.dg/large-size-array-4.c	2008-04-26
22:14:46.000000000 +0300
+++ W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/large-size-array-4.c	2009-08-20
19:16:40.000000000 +0300
@@ -4,4 +4,4 @@
 static char * name[] = {
     [0x80000000]  = "bar"
   };
-/* { dg-error "too large" "" { target { { ! lp64 } || x86_64-*-mingw*
} }  6 } */
+/* { dg-error "too large" "" { target { { ! lp64 } && { ! llp64 } } }  6 } */
diff -urNp gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-10.c
W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-10.c
--- gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-10.c	2009-03-29
21:13:43.000000000 +0300
+++ W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-10.c	2009-08-20
15:13:14.000000000 +0300
@@ -5,24 +5,26 @@
 /* { dg-do compile } */
 /* { dg-options "-std=iso9899:1990 -pedantic-errors" } */

-void *p = (__SIZE_TYPE__)(void *)0; /* { dg-error "without a cast" } */
-struct s { void *a; } q = { (__SIZE_TYPE__)(void *)0 }; /* { dg-error
"without a cast" } */
+__extension__ typedef __SIZE_TYPE__ size_t;
+
+void *p = (size_t)(void *)0; /* { dg-error "without a cast" } */
+struct s { void *a; } q = { (size_t)(void *)0 }; /* { dg-error
"without a cast" } */
 void *
 f (void)
 {
   void *r;
-  r = (__SIZE_TYPE__)(void *)0; /* { dg-error "without a cast" } */
-  return (__SIZE_TYPE__)(void *)0; /* { dg-error "without a cast" } */
+  r = (size_t)(void *)0; /* { dg-error "without a cast" } */
+  return (size_t)(void *)0; /* { dg-error "without a cast" } */
 }
 void g (void *); /* { dg-message "but argument is of type" } */
 void
 h (void)
 {
-  g ((__SIZE_TYPE__)(void *)0); /* { dg-error "without a cast" } */
+  g ((size_t)(void *)0); /* { dg-error "without a cast" } */
 }
 void g2 (int, void *); /* { dg-message "but argument is of type" } */
 void
 h2 (void)
 {
-  g2 (0, (__SIZE_TYPE__)(void *)0); /* { dg-error "without a cast" } */
+  g2 (0, (size_t)(void *)0); /* { dg-error "without a cast" } */
 }
diff -urNp gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-2.c
W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-2.c
--- gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-2.c	2009-03-29
21:13:43.000000000 +0300
+++ W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-2.c	2009-08-20
15:12:08.000000000 +0300
@@ -14,8 +14,10 @@ int *a;
 int b;
 long *c;

-#if defined(_LP64) || defined(_WIN64)
+#if defined(_LP64)
 #define ZERO 0L
+#elif defined(_WIN64)
+#define ZERO 0LL
 #else
 #define ZERO 0
 #endif
diff -urNp gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-6.c
W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-6.c
--- gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-6.c	2009-03-29
21:13:43.000000000 +0300
+++ W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-6.c	2009-08-20
15:11:20.000000000 +0300
@@ -4,11 +4,13 @@
 /* { dg-do compile } */
 /* { dg-options "-std=iso9899:1990 -pedantic-errors" } */

+__extension__ typedef __PTRDIFF_TYPE__ ptrdiff_t;
+
 /* PR 29116.  */
 int n = 0, p[n * 0 + 1]; /* { dg-error "variabl|can't be evaluated" } */

 /* PR 31871.  */
-extern int c[1 + ((__PTRDIFF_TYPE__) (void *) 0)]; /* { dg-error
"variab|can't be evaluated" } */
+extern int c[1 + ((ptrdiff_t) (void *) 0)]; /* { dg-error
"variab|can't be evaluated" } */

 /* Implicit conversions from floating-point constants are not OK,
    although explicit ones are.  */
@@ -32,7 +34,7 @@ struct s {
 };

 enum e {
-  E = (1 + ((__PTRDIFF_TYPE__) (void *) 0)), /* { dg-error "constant" } */
+  E = (1 + ((ptrdiff_t) (void *) 0)), /* { dg-error "constant" } */
   E2 = 0
 };

@@ -44,7 +46,7 @@ enum f {
 void
 f (int a)
 {
-  int v[1 + ((__PTRDIFF_TYPE__) (void *) 0)]; /* { dg-error
"variab|can't be evaluated" } */
+  int v[1 + ((ptrdiff_t) (void *) 0)]; /* { dg-error "variab|can't be
evaluated" } */
   switch (a)
     {
     case (n * 0 + 1): /* { dg-error "constant" } */
diff -urNp gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-9.c
W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-9.c
--- gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-9.c	2009-03-29
21:13:43.000000000 +0300
+++ W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/c90-const-expr-9.c	2009-08-20
15:07:52.000000000 +0300
@@ -14,7 +14,9 @@ struct t {
   int b[2];
 };

-#define old_offsetof(TYPE, MEMBER) ((__SIZE_TYPE__) &((TYPE *)0)->MEMBER)
+__extension__ typedef __SIZE_TYPE__ size_t;
+
+#define old_offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)

 enum e {
   E1 = old_offsetof (struct s, a), /* { dg-error "constant" } */
diff -urNp gcc45-svn/gcc/testsuite/gcc.dg/c99-const-expr-2.c
W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/c99-const-expr-2.c
--- gcc45-svn/gcc/testsuite/gcc.dg/c99-const-expr-2.c	2009-03-29
21:13:43.000000000 +0300
+++ W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/c99-const-expr-2.c	2009-08-20
15:04:53.000000000 +0300
@@ -14,8 +14,10 @@ int *a;
 int b;
 long *c;

-#if defined(_LP64) || defined(_WIN64)
+#if defined(_LP64)
 #define ZERO 0L
+#elif defined(_WIN64)
+#define ZERO 0LL
 #else
 #define ZERO 0
 #endif
diff -urNp gcc45-svn/gcc/testsuite/gcc.dg/torture/pr39074.c
W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/torture/pr39074.c
--- gcc45-svn/gcc/testsuite/gcc.dg/torture/pr39074.c	2009-04-03
13:24:28.000000000 +0300
+++ W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/torture/pr39074.c	2009-08-20
16:48:57.000000000 +0300
@@ -2,9 +2,11 @@
 /* { dg-options "-fdump-tree-alias" } */
 /* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */

+typedef __PTRDIFF_TYPE__ intptr_t;
+
 int i;
 void __attribute__((noinline))
-foo(long b, long q)
+foo(long b, intptr_t q)
 {
   int *y;
   int **a = &y, **x;
diff -urNp gcc45-svn/gcc/testsuite/gcc.dg/tree-ssa/pr33920.c
W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/tree-ssa/pr33920.c
--- gcc45-svn/gcc/testsuite/gcc.dg/tree-ssa/pr33920.c	2009-02-05
13:59:20.000000000 +0200
+++ W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/tree-ssa/pr33920.c	2009-08-20
20:36:28.000000000 +0300
@@ -2,6 +2,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O3" } */

+typedef __PTRDIFF_TYPE__ intptr_t;
 typedef union lispunion *object;
 struct character
 {
@@ -22,14 +23,14 @@ void init_code ()
   object V659;
   object _x, _y;
   object V643;
-  long V648;
+  intptr_t V648;
   unsigned char V653;
   object V651;
   object V654;
   object V658;

 T1240:
-if (V648 >= (long)V651) /* { dg-warning "cast from pointer to integer
of different size" "" { target { ! int32plus } } } */
+if (V648 >= (intptr_t)V651) /* { dg-warning "cast from pointer to
integer of different size" "" { target { ! int32plus } } } */
     goto T1243;
   V653 = ((char *) V654->v.v_self)[V648];
   V659 = (object) V654 + V653;
@@ -41,7 +42,7 @@ T1261:
     goto T1249;
   goto T1224;
 T1249:
- V648 = (long) V648 + 1;
+  V648 = (intptr_t) V648 + 1;
   goto T1240;
 T1243:
   V643 = (object) & Cnil_body;
diff -urNp gcc45-svn/gcc/testsuite/gcc.dg/vect/O1-pr33854.c
W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/vect/O1-pr33854.c
--- gcc45-svn/gcc/testsuite/gcc.dg/vect/O1-pr33854.c	2007-10-22
15:05:36.000000000 +0300
+++ W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/vect/O1-pr33854.c	2009-08-20
17:30:51.000000000 +0300
@@ -1,7 +1,7 @@
 /* Testcase by Martin Michlmayr <tbm@cyrius.com> */
 /* { dg-do compile } */

-extern void *malloc (long unsigned int __size);
+extern void *malloc (__SIZE_TYPE__ __size);
 typedef struct VMatrix_ VMatrix;
 struct VMatrix_
 {
diff -urNp gcc45-svn/gcc/testsuite/gcc.dg/vect/pr33833.c
W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/vect/pr33833.c
--- gcc45-svn/gcc/testsuite/gcc.dg/vect/pr33833.c	2007-10-25
19:41:45.000000000 +0300
+++ W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/vect/pr33833.c	2009-08-20
17:28:25.000000000 +0300
@@ -14,7 +14,9 @@ struct rq
   struct prio_array *active, arrays[2];
 } per_cpu__runqueues;

-void sched_init (unsigned long __ptr)
+typedef unsigned __PTRDIFF_TYPE__ uintptr_t;
+
+void sched_init (uintptr_t __ptr)
 {
   int j, k;
   struct prio_array *array;
diff -urNp gcc45-svn/gcc/testsuite/gcc.dg/vect/pr33846.c
W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/vect/pr33846.c
--- gcc45-svn/gcc/testsuite/gcc.dg/vect/pr33846.c	2007-10-23
23:15:04.000000000 +0300
+++ W64-4.5-150959-src/gcc45-svn/gcc/testsuite/gcc.dg/vect/pr33846.c	2009-08-20
17:28:19.000000000 +0300
@@ -7,7 +7,9 @@ int clamp_val (int i)
   return ~i >> 31;
 }

-void _mix_some_samples (long buf, int *mix_buffer, int mix_size)
+typedef __PTRDIFF_TYPE__ intptr_t;
+
+void _mix_some_samples (intptr_t buf, int *mix_buffer, int mix_size)
 {
   int i;
   signed int *p = mix_buffer;



More information about the Gcc-patches mailing list