limits-blockid.c: Reduce testcase size to 10000 for targets where "int" can't hold...
authorRask Ingemann Lambertsen <rask@sygehus.dk>
Tue, 28 Aug 2007 21:01:37 +0000 (23:01 +0200)
committerRask Ingemann Lambertsen <rask@gcc.gnu.org>
Tue, 28 Aug 2007 21:01:37 +0000 (21:01 +0000)
* gcc.c-torture/compile/limits-blockid.c: Reduce testcase size to
10000 for targets where "int" can't hold at least 100000.
* gcc.c-torture/compile/limits-enumconst.c: Likewise.
* gcc.dg/fold-eqandshift-1.c (INT_BITS): New.
(test5)(test6): Use it.
* gcc.dg/pr30744-1.c (r): Use pointer sized integer.
* gcc.dg/tree-ssa/foldaddr-1.c (foo): Likewise.
* gcc.dg/tree-ssa/loadpre6.c (main): Likewise.
* gcc.dg/tls/opt-5.c (__gen_tempname): Avoid overflowing 16-bit int.
* gcc.dg/attr-alloc_size.c (test): Likewise.

From-SVN: r127870

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/limits-blockid.c
gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c
gcc/testsuite/gcc.dg/attr-alloc_size.c
gcc/testsuite/gcc.dg/fold-eqandshift-1.c
gcc/testsuite/gcc.dg/pr30744-1.c
gcc/testsuite/gcc.dg/tls/opt-5.c
gcc/testsuite/gcc.dg/tree-ssa/foldaddr-1.c
gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c

index 64225d1d71ccd3a8ae1134ea27850a867487e965..d9dc83e8b6fd8638d45664bbe12a3ab621a7e3d5 100644 (file)
@@ -1,3 +1,16 @@
+2007-08-28  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+       * gcc.c-torture/compile/limits-blockid.c: Reduce testcase size to
+       10000 for targets where "int" can't hold at least 100000.
+       * gcc.c-torture/compile/limits-enumconst.c: Likewise.
+       * gcc.dg/fold-eqandshift-1.c (INT_BITS): New.
+       (test5)(test6): Use it.
+       * gcc.dg/pr30744-1.c (r): Use pointer sized integer.
+       * gcc.dg/tree-ssa/foldaddr-1.c (foo): Likewise.
+       * gcc.dg/tree-ssa/loadpre6.c (main): Likewise.
+       * gcc.dg/tls/opt-5.c (__gen_tempname): Avoid overflowing 16-bit int.
+       * gcc.dg/attr-alloc_size.c (test): Likewise.
+
 2007-08-28  Paolo Carlini  <pcarlini@suse.de>
 
        PR c++/33209
index 718c8673c2e4b13718309785f38ae05d82b87727..545dfe4dcb74714a213b6a5179f1e18ac720b6bd 100644 (file)
@@ -14,5 +14,9 @@
 
 void q9_func(void)
 {
+#if __INT_MAX__ >= 100000
   LIM5(char t)
+#else
+  LIM4(char t)
+#endif
 }
index 80ac342cd2fd336622ccc691198b2c6002d9b0a9..975cafc833e79ddc7d7065c3920d8deb63a417f9 100644 (file)
@@ -14,5 +14,9 @@
 
 enum q21_enum
 {
+#if __INT_MAX__ >= 100000
   LIM5 (e)
+#else
+  LIM4 (e)
+#endif
 };
index e646e5e3f7f6e007bb072664716d920a385916e6..47d7c0050853fd377d588be96db232a5a2ecfc36 100644 (file)
@@ -23,13 +23,13 @@ test (void)
   p = malloc1 (6);
   strcpy (p, "Hello");
   strcpy (p, "Hello World"); /* { dg-warning "will always overflow" "strcpy" } */
-  p = malloc2 (424242, 6);
+  p = malloc2 (__INT_MAX__ >= 1700000 ? 424242 : __INT_MAX__ / 4, 6);
   strcpy (p, "World");
   strcpy (p, "Hello World"); /* { dg-warning "will always overflow" "strcpy" } */
   p = calloc1 (2, 5);
   strcpy (p, "World");
   strcpy (p, "Hello World"); /* { dg-warning "will always overflow" "strcpy" } */
-  p = calloc2 (2, 424242, 5);
+  p = calloc2 (2, __INT_MAX__ >= 1700000 ? 424242 : __INT_MAX__ / 4, 5);
   strcpy (p, "World");
   strcpy (p, "Hello World"); /* { dg-warning "will always overflow" "strcpy" } */
 }
index 34906bad0205a23c14b4bc926de1aac67d769635..055f398af0bb697eea3c93c915c57c2a08540a87 100644 (file)
@@ -25,15 +25,25 @@ int test4(int d)
   return (d >> 3) & 4;
 }
 
+#if __INT_MAX__ == 32767
+#define INT_BITS 16
+#elif __INT_MAX__ == 2147483647
+#define INT_BITS 32
+#elif __INT_MAX__ == 9223372036854775807
+#define INT_BITS 64
+#else
+#error Please add support for your target here.
+#endif
+
 void test5(int e)
 {
-  if ((e >> 31) & 64)
+  if ((e >> (INT_BITS - 1)) & 64)
     foo();
 }
 
 void test6(unsigned int f)
 {
-  if ((f >> 31) & 64)
+  if ((f >> (INT_BITS - 1)) & 64)
     foo();
 }
 
index f0734db60f280e3e8a125de207e1b2b4059f5575..a35c5526aa1062a5640098ca5cf6b121de549d5b 100644 (file)
@@ -1,15 +1,16 @@
 /* { dg-do compile } */
 /* { dg-options "-O2" } */
+#include <stddef.h>
 
 typedef struct {
-  unsigned long unique;
+  ptrdiff_t unique;
 } G;
 
 void r(G* n)
 {
-  unsigned long p;
-  if (((G *) ((void *)((~(unsigned long)(p))))) != ((void *)0)) {
-    ((G *) ((void *)((~(unsigned long)(p)))))->unique = n->unique;
+  ptrdiff_t p;
+  if (((G *) ((void *)((~(ptrdiff_t)(p))))) != ((void *)0)) {
+    ((G *) ((void *)((~(ptrdiff_t)(p)))))->unique = n->unique;
   }
 }
 
index d8a686ddb462037366c09972a836caa7e8d0709d..ee71cad3c02bf257b29df4df906019679ab29128 100644 (file)
@@ -34,12 +34,12 @@ __gen_tempname (char *tmpl, int kind)
   char *XXXXXX;
   static uint64_t value;
   uint64_t random_time_bits;
-  unsigned int count;
+  unsigned long count;
   int fd = -1;
   int save_errno = __libc_errno;
   struct stat64 st;
-  unsigned int attempts_min = 62 * 62 * 62;
-  unsigned int attempts = attempts_min < 238328 ? 238328 : attempts_min;
+  unsigned long attempts_min = 62L * 62L * 62L;
+  unsigned long attempts = attempts_min < 238328 ? 238328 : attempts_min;
 
   len = strlen (tmpl);
   if (len < 6 || strcmp(&tmpl[len - 6], "XXXXXX"))
index 2c040278436bf31ea1f6d224d1ed8eec15727b01..a92498eb1f66bad755b5e51f82c267ae05ff623c 100644 (file)
@@ -1,11 +1,11 @@
 /* { dg-do compile } */
 /* { dg-options "-O1 -fdump-tree-original" } */
-
+#include <stddef.h>
 
 char *a;
 int foo(char *b)
 {
-        return a+5+(long)b == (long)b+a;
+        return a+5+(ptrdiff_t)b == (ptrdiff_t)b+a;
 }
 
 /* Folding should have determined that the two addresses were
index 28a71a8e63ffcee1186608fbca270a39a40fc96f..725f86b192f0bb457af2b8b4eed32b0698583e74 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */ 
 /* { dg-options "-O2 -fdump-tree-pre-stats" } */
+#include <stddef.h>
 
 union tree_node;
 typedef union tree_node *tree;
@@ -63,7 +64,7 @@ main (void)
   for (i = 0; i < 2; i++)
     {
       unexpanded_var_list = malloc (sizeof (struct tree_list));
-      unexpanded_var_list->list.value = (tree) (long unsigned) (i & 1);
+      unexpanded_var_list->list.value = (tree) (ptrdiff_t) (i & 1);
       unexpanded_var_list->common.chain = last;
       last = unexpanded_var_list;
     }