target-supports.exp (check_effective_target_size32plus): Increase size to avoid false...
authorDJ Delorie <dj@redhat.com>
Fri, 29 Aug 2014 23:16:29 +0000 (19:16 -0400)
committerDJ Delorie <dj@gcc.gnu.org>
Fri, 29 Aug 2014 23:16:29 +0000 (19:16 -0400)
* lib/target-supports.exp (check_effective_target_size32plus):
Increase size to avoid false positives on 24-bit address spaces.
* gcc.c-torture/compile/limits-stringlit.c: Skip if msp430.
* gcc.dg/lto/pr54709_1.c: Fix memcpy prototype.
* gcc.dg/torture/pta-ptrarith-3.c: Use __SIZE_TYPE__ instead of "int".
* gcc.dg/torture/pr36373-10.c: Use __SIZE_TYPE__ if present.
* gcc.dg/torture/pr57864.c: Use __SIZE_TYPE__.
* gcc.dg/torture/pr26763-2.c: Use __SIZE_TYPE__ instead of "int".
* gcc.dg/tree-ssa/isolate-3.c: Use __SIZE_TYPE__ instead of "long unsigned int".
* gcc.dg/pr52549.c: Use __SIZE_TYPE__ if present.

From-SVN: r214746

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c
gcc/testsuite/gcc.dg/lto/pr54709_1.c
gcc/testsuite/gcc.dg/pr52549.c
gcc/testsuite/gcc.dg/torture/pr26763-2.c
gcc/testsuite/gcc.dg/torture/pr36373-10.c
gcc/testsuite/gcc.dg/torture/pr57864.c
gcc/testsuite/gcc.dg/torture/pta-ptrarith-3.c
gcc/testsuite/gcc.dg/tree-ssa/isolate-3.c
gcc/testsuite/lib/target-supports.exp

index 564b821f7c5e5e23959c3a99efc8e82b7bf83fa6..b2f1bb2fcdd7086bf48d396724b10925599643a4 100644 (file)
@@ -1,3 +1,16 @@
+2014-08-29  DJ Delorie  <dj@redhat.com>
+
+       * lib/target-supports.exp (check_effective_target_size32plus):
+       Increase size to avoid false positives on 24-bit address spaces.
+       * gcc.c-torture/compile/limits-stringlit.c: Skip if msp430.
+       * gcc.dg/lto/pr54709_1.c: Fix memcpy prototype.
+       * gcc.dg/torture/pta-ptrarith-3.c: Use __SIZE_TYPE__ instead of "int".
+       * gcc.dg/torture/pr36373-10.c: Use __SIZE_TYPE__ if present.
+       * gcc.dg/torture/pr57864.c: Use __SIZE_TYPE__.
+       * gcc.dg/torture/pr26763-2.c: Use __SIZE_TYPE__ instead of "int".
+       * gcc.dg/tree-ssa/isolate-3.c: Use __SIZE_TYPE__ instead of "long unsigned int".
+       * gcc.dg/pr52549.c: Use __SIZE_TYPE__ if present.
+
 2014-08-29  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/54002
index 41fa2f14022896e551033d5b0d1cec3749625e9c..4ad761235e15728de5717cbcd4e5d22e2db5147f 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-skip-if "Array too big" { avr-*-* picochip-*-* m32c-*-* pdp11-*-* } { "*" } { "" } } */ 
+/* { dg-skip-if "Array too big" { avr-*-* picochip-*-* m32c-*-* pdp11-*-* msp430-*-* } { "*" } { "" } } */ 
 
 #define STR2 "012345678901234567890123456789012345678901234567890123456789\
 0123456789012345678901234567890123456789"
index 59c137d6f9ec1d8b6b7b2325e74972ac945388ca..59f3dbf8a55ccedebc65e401abd79db6f8cb082e 100644 (file)
@@ -1,4 +1,4 @@
-void * memcpy (void *, void *, long);
+void * memcpy (void *, void *, __SIZE_TYPE__);
 void bar (void *p, void *q, unsigned s)
 {
   memcpy (p, q, s);
index 90936529d8d35cf3e950efc29900c1589555d6ea..4d0a3e00a5ab9fc5012139e50cd340e272174052 100644 (file)
@@ -1,6 +1,11 @@
 /* { dg-do compile } */
 
-#if __SIZEOF_POINTER__ == __SIZEOF_LONG__
+#ifdef __SIZE_TYPE__
+_mark (__SIZE_TYPE__ obj, int i, char *a)
+{
+  (char *)&(((long *)(obj)) [i]) - a;
+}
+#elif __SIZEOF_POINTER__ == __SIZEOF_LONG__
 _mark (long obj, int i, char *a)
 {
   (char *)&(((long *)(obj)) [i]) - a;
index d8155fb0831a5e56ddbeb63e504f4aecb7d6da0f..7e9dc39bc18a93d050324c0d256cf2878de586dc 100644 (file)
@@ -2,7 +2,7 @@
 
 extern void abort(void);
 
-int try (char *a, int d)
+int try (char *a, __SIZE_TYPE__ d)
 {
   return a + d > a;
 }
index ed701772828267dd33e98d6f727c862cb4333615..d18b4e8432ee2181456c963f46d594883de0a158 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do run } */
 
-#if (__SIZEOF_LONG_LONG__ == __SIZEOF_POINTER__)
+#ifdef __SIZE_TYPE__
+typedef __SIZE_TYPE__ uintptr_t;
+#elif (__SIZEOF_LONG_LONG__ == __SIZEOF_POINTER__)
 typedef unsigned long long uintptr_t;
 #elif (__SIZEOF_LONG__ == __SIZEOF_POINTER__)
 typedef unsigned long uintptr_t;
index 93962c20e3fdb9c190873c4b9f049eb107fca4df..fda1844fc3776b77967f06f562aeef9d44db2198 100644 (file)
@@ -15,12 +15,12 @@ static void fn1(union U *p1, int p2, _Bool p3)
     union U *e;
 
     if (p2 == 0)
-       a = ((union U*)((unsigned long)p1 & ~1))->val;
+       a = ((union U*)((__SIZE_TYPE__)p1 & ~1))->val;
 
     if (b) {
        e = p1;
     } else if (c) {
-       e = ((union U*)((unsigned long)p1 & ~1))->ptr;
+       e = ((union U*)((__SIZE_TYPE__)p1 & ~1))->ptr;
        d = e;
     } else {
        e = 0;
index 938fb296b405b43754f6f24cc9451b727267ecc5..4b18e1aa3ac18cd0b409f6c3ed92102c57b23825 100644 (file)
@@ -9,7 +9,7 @@ struct X {
   int *r;
 };
 int __attribute__((noinline))
-foo(int i, int j, int k, int off)
+foo(int i, int j, int k, __SIZE_TYPE__ off)
 {
   struct X x;
   int **p, *q;
index 9c2c5d55c2748a3d98a7ce37cb8c313adb37c9f9..1a10e334a452f49b78f90a8c9f97bc818a562817 100644 (file)
@@ -3,7 +3,7 @@
 /* { dg-skip-if "" keeps_null_pointer_checks } */
 
 
-typedef long unsigned int size_t;
+typedef __SIZE_TYPE__ size_t;
 extern void *memset (void *__s, int __c, size_t __n)
   __attribute__ ((__nothrow__, __leaf__)) __attribute__ ((__nonnull__ (1)));
 struct rtx_def;
index f96d78281b4565fba5d775f320a4aaeb907c85f4..92c30926897d6ccad2b16f4ec593bfce5caab0e0 100644 (file)
@@ -1809,11 +1809,12 @@ proc check_effective_target_ptr32plus { } {
 }
 
 # Return 1 if we support 32-bit or larger array and structure sizes
-# using default options, 0 otherwise.
+# using default options, 0 otherwise.  Avoid false positive on
+# targets with 20 or 24 bit address spaces.
 
 proc check_effective_target_size32plus { } {
     return [check_no_compiler_messages size32plus object {
-       char dummy[65537];
+       char dummy[16777217L];
     }]
 }