aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRask Ingemann Lambertsen <rask@sygehus.dk>2007-08-28 23:01:37 +0200
committerRask Ingemann Lambertsen <rask@gcc.gnu.org>2007-08-28 21:01:37 +0000
commitb69b6c681a0679ae9c1dd4e5237e68d34abbfb0e (patch)
treeacf0d1735a5e8d619fae81e36cb30d60ad9969bf /gcc
parentc2acde1ee12b2e11765fb43c861c71663768eba4 (diff)
downloadgcc-b69b6c681a0679ae9c1dd4e5237e68d34abbfb0e.zip
gcc-b69b6c681a0679ae9c1dd4e5237e68d34abbfb0e.tar.gz
gcc-b69b6c681a0679ae9c1dd4e5237e68d34abbfb0e.tar.bz2
limits-blockid.c: Reduce testcase size to 10000 for targets where "int" can't hold at least 100000.
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog13
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-blockid.c4
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c4
-rw-r--r--gcc/testsuite/gcc.dg/attr-alloc_size.c4
-rw-r--r--gcc/testsuite/gcc.dg/fold-eqandshift-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/pr30744-1.c9
-rw-r--r--gcc/testsuite/gcc.dg/tls/opt-5.c6
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/foldaddr-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c3
9 files changed, 47 insertions, 14 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 64225d1..d9dc83e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-blockid.c b/gcc/testsuite/gcc.c-torture/compile/limits-blockid.c
index 718c867..545dfe4 100644
--- a/gcc/testsuite/gcc.c-torture/compile/limits-blockid.c
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-blockid.c
@@ -14,5 +14,9 @@
void q9_func(void)
{
+#if __INT_MAX__ >= 100000
LIM5(char t)
+#else
+ LIM4(char t)
+#endif
}
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c b/gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c
index 80ac342..975cafc 100644
--- a/gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c
@@ -14,5 +14,9 @@
enum q21_enum
{
+#if __INT_MAX__ >= 100000
LIM5 (e)
+#else
+ LIM4 (e)
+#endif
};
diff --git a/gcc/testsuite/gcc.dg/attr-alloc_size.c b/gcc/testsuite/gcc.dg/attr-alloc_size.c
index e646e5e..47d7c00 100644
--- a/gcc/testsuite/gcc.dg/attr-alloc_size.c
+++ b/gcc/testsuite/gcc.dg/attr-alloc_size.c
@@ -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" } */
}
diff --git a/gcc/testsuite/gcc.dg/fold-eqandshift-1.c b/gcc/testsuite/gcc.dg/fold-eqandshift-1.c
index 34906ba..055f398 100644
--- a/gcc/testsuite/gcc.dg/fold-eqandshift-1.c
+++ b/gcc/testsuite/gcc.dg/fold-eqandshift-1.c
@@ -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();
}
diff --git a/gcc/testsuite/gcc.dg/pr30744-1.c b/gcc/testsuite/gcc.dg/pr30744-1.c
index f0734db..a35c552 100644
--- a/gcc/testsuite/gcc.dg/pr30744-1.c
+++ b/gcc/testsuite/gcc.dg/pr30744-1.c
@@ -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;
}
}
diff --git a/gcc/testsuite/gcc.dg/tls/opt-5.c b/gcc/testsuite/gcc.dg/tls/opt-5.c
index d8a686d..ee71cad 100644
--- a/gcc/testsuite/gcc.dg/tls/opt-5.c
+++ b/gcc/testsuite/gcc.dg/tls/opt-5.c
@@ -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"))
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/foldaddr-1.c b/gcc/testsuite/gcc.dg/tree-ssa/foldaddr-1.c
index 2c04027..a92498e 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/foldaddr-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/foldaddr-1.c
@@ -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
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c b/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c
index 28a71a8..725f86b 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c
@@ -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;
}