aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2006-04-13 19:14:25 -0400
committerDJ Delorie <dj@gcc.gnu.org>2006-04-13 19:14:25 -0400
commita239aa95dc5271ebabed7a98e026b69bc16d9b85 (patch)
tree4a48fb4c9348744e18dd2a7856cee814333b6cb6 /gcc
parent15b1c12a01b2099bc5f997133dccce5e51673fe3 (diff)
downloadgcc-a239aa95dc5271ebabed7a98e026b69bc16d9b85.zip
gcc-a239aa95dc5271ebabed7a98e026b69bc16d9b85.tar.gz
gcc-a239aa95dc5271ebabed7a98e026b69bc16d9b85.tar.bz2
target-supports.exp (check_effective_target_int32plus): New.
* lib/target-supports.exp (check_effective_target_int32plus): New. (check_effective_target_ptr32plus): New. (check_effective_target_size32plus): New. (check_effective_target_int16): New. (check_profiling_available): Add m32c to the list of unsupported targets. * gcc.c-torture/compile/20000804-1.c: Skip m32c also. * gcc.c-torture/compile/20001226-1.c: Skip m32c due to small memory size. * gcc.c-torture/compile/20010327-1.c: Skip m32c due to non-SI pointers. * gcc.c-torture/compile/20020604-1.c: Skip m32c due to small size_t. * gcc.c-torture/compile/20050303-1.c: Require >=32 bit integers and size_t. * gcc.c-torture/compile/980506-1.c: Require >=32 bit size_t. * gcc.c-torture/execute/20020404-1.x: Check for any 16 bit target, not just xstormy16. Skip m32c due to weird pointer size. * gcc.c-torture/execute/20021024-1.x: Check for any 16 bit target, not just xstormy16. * gcc.c-torture/execute/shiftdi.x: Check for any 16 bit target, not just xstormy16. * gcc.dg/20020312-2.c: Add m32c support. * gcc.dg/20040622-2.c: Require >=32 bit pointers. * gcc.dg/20050321-1.c: XFail m32c due to incorrect malloc prototype in test. * gcc.dg/20050321-2.c: Require >=32 bit integers. * gcc.dg/asm-1.c: Skip if int and short are the same size. * gcc.dg/fold-mod-1.c: Require >=32 bit integers. * gcc.dg/fold-overflow-1.c: Skip m32c due to small const types in asm. * gcc.dg/format/bitfld-1.c: Require >=32 bit integers due to printf formats * gcc.dg/init-string-2.c: Require >=32 bit integers. * gcc.dg/max-1.c: Skip m32c in r8c or m16c mode due to small pointers. * gcc.dg/noncompile/920923-1.c: Skip small-int message for int16 hosts. * gcc.dg/pch/struct-1.c: Require >= 32 bit integers. * gcc.dg/pr14796-2.c: Require >=32 bit integers. * gcc.dg/pr17112-1.c: Require >=32 bit integers. * gcc.dg/pr18241-1.c: XFail m32c due to incorrect memset prototype in test. * gcc.dg/pr18241-2.c: XFail m32c due to incorrect memset prototype in test. * gcc.dg/pr19340.c: Skip m32c due to lack of scheduling. * gcc.dg/pr23049.c: Require >=32 bit integers. * gcc.dg/torture/pr26565.c: Skip m32c as everything is already packed. * gcc.dg/torture/pr26587.c: Require >=32 bit integers. * gcc.dg/torture/pr26630.c: Require >=32 bit integers. * gcc.dg/tree-ssa/loop-10.c: Require >=32 bit integers. * gcc.dg/tree-ssa/loop-2.c: Require >=32 bit size_t. * gcc.dg/tree-ssa/loop-4.c: Require >=32 bit size_t. * gcc.dg/tree-ssa/ltrans-1.c: Require >=32 bit size_t. * gcc.dg/tree-ssa/ltrans-2.c: Require >=32 bit size_t. * gcc.dg/tree-ssa/ltrans-3.c: Require >=32 bit size_t. * gcc.dg/tree-ssa/ltrans-4.c: Require >=32 bit size_t. * gcc.dg/tree-ssa/pr14341.c: Require >=32 bit integers. * gcc.dg/tree-ssa/pr23382.c: XFail m32c due to incorrect malloc prototype in test. * gcc.dg/tree-ssa/pr24627.c: Require >=32 bit integers. * gcc.dg/tree-ssa/pr26180.c: Require >=32 bit integers. * gcc.dg/tree-ssa/vrp14.c: Require >=32 bit integers. * gcc.dg/tree-ssa/vrp21.c: Require >=32 bit integers. * gcc.dg/tree-ssa/vrp22.c: Require >=32 bit integers. * gcc.c-torture/execute/20040629-1.x: New. Require >16 bit integers. * gcc.c-torture/execute/20040703-1.x: Likewise. * gcc.c-torture/execute/20040705-1.x: Likewise. * gcc.c-torture/execute/20040705-2.x: Likewise. * gcc.c-torture/execute/20040709-1.x: Likewise. * gcc.c-torture/execute/20040709-2.x: Likewise. * gcc.c-torture/execute/20040811-1.x: Likewise. * gcc.c-torture/execute/20050316-1.x: Likewise. * gcc.c-torture/execute/bitfld-4.x: Likewise. * gcc.c-torture/execute/pr19689.x: Likewise. * gcc.c-torture/execute/pr7284-1.x: Likewise. * gcc.c-torture/execute/usmul.x: Likewise. * gcc.c-torture/execute/vrp-5.x: Likewise. * gcc.c-torture/execute/vrp-6.x: Likewise. * gcc.dg/debug/20041023-1.s: Likewise. From-SVN: r112934
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog80
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20000804-1.c1
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20001226-1.c1
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20010327-1.c3
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20020604-1.c1
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20050303-1.c3
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/980506-1.c1
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20020404-1.x12
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20021024-1.x8
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040629-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040703-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040705-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040705-2.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040709-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040709-2.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20040811-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20050316-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/bitfld-4.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr19689.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr7284-1.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/shiftdi.x8
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/usmul.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/vrp-5.x7
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/vrp-6.x7
-rw-r--r--gcc/testsuite/gcc.dg/20020312-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/20040622-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/20050321-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/20050321-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/asm-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/fold-mod-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/fold-overflow-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/format/bitfld-1.c5
-rw-r--r--gcc/testsuite/gcc.dg/init-string-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/max-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/920923-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/pch/struct-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr14796-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr17112-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr18241-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr18241-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr19340.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr23049.c1
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr26565.c2
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr26587.c1
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr26630.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loop-10.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loop-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loop-4.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr14341.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr23382.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr24627.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr26180.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/vrp14.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/vrp21.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/vrp22.c1
-rw-r--r--gcc/testsuite/lib/target-supports.exp37
60 files changed, 289 insertions, 12 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 185b366..6a5092d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,83 @@
+2006-04-13 DJ Delorie <dj@redhat.com>
+
+ * lib/target-supports.exp (check_effective_target_int32plus): New.
+ (check_effective_target_ptr32plus): New.
+ (check_effective_target_size32plus): New.
+ (check_effective_target_int16): New.
+ (check_profiling_available): Add m32c to the list of unsupported targets.
+
+ * gcc.c-torture/compile/20000804-1.c: Skip m32c also.
+ * gcc.c-torture/compile/20001226-1.c: Skip m32c due to small
+ memory size.
+ * gcc.c-torture/compile/20010327-1.c: Skip m32c due to non-SI
+ pointers.
+ * gcc.c-torture/compile/20020604-1.c: Skip m32c due to small
+ size_t.
+ * gcc.c-torture/compile/20050303-1.c: Require >=32 bit integers
+ and size_t.
+ * gcc.c-torture/compile/980506-1.c: Require >=32 bit size_t.
+ * gcc.c-torture/execute/20020404-1.x: Check for any 16 bit target,
+ not just xstormy16. Skip m32c due to weird pointer size.
+ * gcc.c-torture/execute/20021024-1.x: Check for any 16 bit target,
+ not just xstormy16.
+ * gcc.c-torture/execute/shiftdi.x: Check for any 16 bit target,
+ not just xstormy16.
+ * gcc.dg/20020312-2.c: Add m32c support.
+ * gcc.dg/20040622-2.c: Require >=32 bit pointers.
+ * gcc.dg/20050321-1.c: XFail m32c due to incorrect malloc prototype
+ in test.
+ * gcc.dg/20050321-2.c: Require >=32 bit integers.
+ * gcc.dg/asm-1.c: Skip if int and short are the same size.
+ * gcc.dg/fold-mod-1.c: Require >=32 bit integers.
+ * gcc.dg/fold-overflow-1.c: Skip m32c due to small const types in asm.
+ * gcc.dg/format/bitfld-1.c: Require >=32 bit integers due to printf formats
+ * gcc.dg/init-string-2.c: Require >=32 bit integers.
+ * gcc.dg/max-1.c: Skip m32c in r8c or m16c mode due to small pointers.
+ * gcc.dg/noncompile/920923-1.c: Skip small-int message for int16 hosts.
+ * gcc.dg/pch/struct-1.c: Require >= 32 bit integers.
+ * gcc.dg/pr14796-2.c: Require >=32 bit integers.
+ * gcc.dg/pr17112-1.c: Require >=32 bit integers.
+ * gcc.dg/pr18241-1.c: XFail m32c due to incorrect memset prototype
+ in test.
+ * gcc.dg/pr18241-2.c: XFail m32c due to incorrect memset prototype
+ in test.
+ * gcc.dg/pr19340.c: Skip m32c due to lack of scheduling.
+ * gcc.dg/pr23049.c: Require >=32 bit integers.
+ * gcc.dg/torture/pr26565.c: Skip m32c as everything is already packed.
+ * gcc.dg/torture/pr26587.c: Require >=32 bit integers.
+ * gcc.dg/torture/pr26630.c: Require >=32 bit integers.
+ * gcc.dg/tree-ssa/loop-10.c: Require >=32 bit integers.
+ * gcc.dg/tree-ssa/loop-2.c: Require >=32 bit size_t.
+ * gcc.dg/tree-ssa/loop-4.c: Require >=32 bit size_t.
+ * gcc.dg/tree-ssa/ltrans-1.c: Require >=32 bit size_t.
+ * gcc.dg/tree-ssa/ltrans-2.c: Require >=32 bit size_t.
+ * gcc.dg/tree-ssa/ltrans-3.c: Require >=32 bit size_t.
+ * gcc.dg/tree-ssa/ltrans-4.c: Require >=32 bit size_t.
+ * gcc.dg/tree-ssa/pr14341.c: Require >=32 bit integers.
+ * gcc.dg/tree-ssa/pr23382.c: XFail m32c due to incorrect malloc
+ prototype in test.
+ * gcc.dg/tree-ssa/pr24627.c: Require >=32 bit integers.
+ * gcc.dg/tree-ssa/pr26180.c: Require >=32 bit integers.
+ * gcc.dg/tree-ssa/vrp14.c: Require >=32 bit integers.
+ * gcc.dg/tree-ssa/vrp21.c: Require >=32 bit integers.
+ * gcc.dg/tree-ssa/vrp22.c: Require >=32 bit integers.
+
+ * gcc.c-torture/execute/20040629-1.x: New. Require >16 bit integers.
+ * gcc.c-torture/execute/20040703-1.x: Likewise.
+ * gcc.c-torture/execute/20040705-1.x: Likewise.
+ * gcc.c-torture/execute/20040705-2.x: Likewise.
+ * gcc.c-torture/execute/20040709-1.x: Likewise.
+ * gcc.c-torture/execute/20040709-2.x: Likewise.
+ * gcc.c-torture/execute/20040811-1.x: Likewise.
+ * gcc.c-torture/execute/20050316-1.x: Likewise.
+ * gcc.c-torture/execute/bitfld-4.x: Likewise.
+ * gcc.c-torture/execute/pr19689.x: Likewise.
+ * gcc.c-torture/execute/pr7284-1.x: Likewise.
+ * gcc.c-torture/execute/usmul.x: Likewise.
+ * gcc.c-torture/execute/vrp-5.x: Likewise.
+ * gcc.c-torture/execute/vrp-6.x: Likewise.
+ * gcc.dg/debug/20041023-1.s: Likewise.
+
2006-04-13 Roger Sayle <roger@eyesopen.com>
* gcc.target/i386/20050113-1.c: Tweak testcase to reflect that casts
diff --git a/gcc/testsuite/gcc.c-torture/compile/20000804-1.c b/gcc/testsuite/gcc.c-torture/compile/20000804-1.c
index 1825cba..0decbc9 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20000804-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20000804-1.c
@@ -2,6 +2,7 @@
statement to force a 'long long' (64-bits) to go in a register. */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* h8300-*-* } } */
/* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && ilp32 } { "-fpic" "-fPIC" } { "" } } */
+/* { dg-skip-if "No 64-bit registers" { m32c-*-* } { "*" } { "" } } */
/* Copyright (C) 2000, 2003 Free Software Foundation */
__complex__ long long f ()
diff --git a/gcc/testsuite/gcc.c-torture/compile/20001226-1.c b/gcc/testsuite/gcc.c-torture/compile/20001226-1.c
index 0e71b14..9f1645a 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20001226-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20001226-1.c
@@ -2,6 +2,7 @@
than 64K. */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
/* { dg-xfail-if "jump beyond 128K not supported" "xtensa-*-*" "-O0" "" } */
+/* { dg-skip-if "" { m32c-*-* } { "*" } { "" } } */
/* This testcase exposed two branch shortening bugs on powerpc. */
diff --git a/gcc/testsuite/gcc.c-torture/compile/20010327-1.c b/gcc/testsuite/gcc.c-torture/compile/20010327-1.c
index 10f7e39..189990a 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20010327-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20010327-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "non-SI pointers" { m32c-*-* } { "*" } { "" } } */
+
/* This testcase tests whether GCC can produce static initialized data
that references addresses of size 'unsigned long', even if that's not
the same as __SIZE_TYPE__. (See 20011114-1.c for the same test of
@@ -5,5 +7,6 @@
Some rare environments might not have the required relocs to support
this; they should have this test disabled in the .x file. */
+
extern void _text;
static unsigned long x = (unsigned long) &_text - 0x10000000L - 1;
diff --git a/gcc/testsuite/gcc.c-torture/compile/20020604-1.c b/gcc/testsuite/gcc.c-torture/compile/20020604-1.c
index ef24e1c..61632f7 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20020604-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20020604-1.c
@@ -1,6 +1,7 @@
/* The array is too big. */
/* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" "-mn" } { "" } } */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
+/* { dg-skip-if "" { m32c-*-* } { } { } } */
/* PR c/6957
This testcase ICEd at -O2 on IA-32, because
diff --git a/gcc/testsuite/gcc.c-torture/compile/20050303-1.c b/gcc/testsuite/gcc.c-torture/compile/20050303-1.c
index 5993a45..22154b3 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20050303-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20050303-1.c
@@ -1,3 +1,6 @@
+/* { dg-require-effective-target int32plus } */
+/* { dg-require-effective-target size32plus } */
+
void crc()
{
int toread;
diff --git a/gcc/testsuite/gcc.c-torture/compile/980506-1.c b/gcc/testsuite/gcc.c-torture/compile/980506-1.c
index 9bc2d8a..6cccb1e 100644
--- a/gcc/testsuite/gcc.c-torture/compile/980506-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/980506-1.c
@@ -1,6 +1,7 @@
/* The arrays are too large for the xstormy16 - won't fit in 16 bits. */
/* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" "-mn" } { "" } } */
/* { dg-do assemble { xfail xstormy16-*-* m6811-*-* m6812-*-* } } */
+/* { dg-require-effective-target size32plus } */
unsigned char TIFFFax2DMode[20][256];
unsigned char TIFFFax2DNextState[20][256];
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020404-1.x b/gcc/testsuite/gcc.c-torture/execute/20020404-1.x
index 25ed578..e4fd61a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020404-1.x
+++ b/gcc/testsuite/gcc.c-torture/execute/20020404-1.x
@@ -1,7 +1,15 @@
-# 16-bit "int"
-if { [istarget "xstormy16-*"] } {
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
return 1
}
+# m32c pointers can be 24 bits in a 32 bit variable, so the test
+# patterns may get truncated.
+if { [istarget "m32c-*-*"] } {
+ return 1
+}
+
+
return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20021024-1.x b/gcc/testsuite/gcc.c-torture/execute/20021024-1.x
index 25ed578..121fcfe 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20021024-1.x
+++ b/gcc/testsuite/gcc.c-torture/execute/20021024-1.x
@@ -1,7 +1,7 @@
-# 16-bit "int"
-if { [istarget "xstormy16-*"] } {
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
return 1
}
-return 0
-
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040629-1.x b/gcc/testsuite/gcc.c-torture/execute/20040629-1.x
new file mode 100644
index 0000000..121fcfe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040629-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040703-1.x b/gcc/testsuite/gcc.c-torture/execute/20040703-1.x
new file mode 100644
index 0000000..121fcfe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040703-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040705-1.x b/gcc/testsuite/gcc.c-torture/execute/20040705-1.x
new file mode 100644
index 0000000..121fcfe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040705-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040705-2.x b/gcc/testsuite/gcc.c-torture/execute/20040705-2.x
new file mode 100644
index 0000000..121fcfe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040705-2.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040709-1.x b/gcc/testsuite/gcc.c-torture/execute/20040709-1.x
new file mode 100644
index 0000000..121fcfe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040709-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040709-2.x b/gcc/testsuite/gcc.c-torture/execute/20040709-2.x
new file mode 100644
index 0000000..121fcfe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040709-2.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040811-1.x b/gcc/testsuite/gcc.c-torture/execute/20040811-1.x
new file mode 100644
index 0000000..121fcfe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20040811-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050316-1.x b/gcc/testsuite/gcc.c-torture/execute/20050316-1.x
new file mode 100644
index 0000000..121fcfe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20050316-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/bitfld-4.x b/gcc/testsuite/gcc.c-torture/execute/bitfld-4.x
new file mode 100644
index 0000000..121fcfe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/bitfld-4.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr19689.x b/gcc/testsuite/gcc.c-torture/execute/pr19689.x
new file mode 100644
index 0000000..121fcfe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr19689.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr7284-1.x b/gcc/testsuite/gcc.c-torture/execute/pr7284-1.x
new file mode 100644
index 0000000..121fcfe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr7284-1.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/shiftdi.x b/gcc/testsuite/gcc.c-torture/execute/shiftdi.x
index 25ed578..121fcfe 100644
--- a/gcc/testsuite/gcc.c-torture/execute/shiftdi.x
+++ b/gcc/testsuite/gcc.c-torture/execute/shiftdi.x
@@ -1,7 +1,7 @@
-# 16-bit "int"
-if { [istarget "xstormy16-*"] } {
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
return 1
}
-return 0
-
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/usmul.x b/gcc/testsuite/gcc.c-torture/execute/usmul.x
new file mode 100644
index 0000000..121fcfe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/usmul.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/vrp-5.x b/gcc/testsuite/gcc.c-torture/execute/vrp-5.x
new file mode 100644
index 0000000..121fcfe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/vrp-5.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/vrp-6.x b/gcc/testsuite/gcc.c-torture/execute/vrp-6.x
new file mode 100644
index 0000000..121fcfe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/vrp-6.x
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+ return 1
+}
+
+return 0;
diff --git a/gcc/testsuite/gcc.dg/20020312-2.c b/gcc/testsuite/gcc.dg/20020312-2.c
index 211fd75..6acc1e6 100644
--- a/gcc/testsuite/gcc.dg/20020312-2.c
+++ b/gcc/testsuite/gcc.dg/20020312-2.c
@@ -70,6 +70,8 @@ extern void abort (void);
# define PIC_REG "r12"
#elif defined(__x86_64__)
/* No pic register. */
+#elif defined(__m32c__)
+/* No pic register. */
#else
# error "Modify the test for your target."
#endif
diff --git a/gcc/testsuite/gcc.dg/20040622-2.c b/gcc/testsuite/gcc.dg/20040622-2.c
index 3297401..0be320f 100644
--- a/gcc/testsuite/gcc.dg/20040622-2.c
+++ b/gcc/testsuite/gcc.dg/20040622-2.c
@@ -1,4 +1,5 @@
/* { dg-do link } */
+/* { dg-require-effective-target ptr32plus } */
/* This validates codegen for [r1+32760] on Darwin. */
void f(char x[32688], double *y, double *z) __attribute__((noinline));
void f(char x[32688], double *y, double *z) {}
diff --git a/gcc/testsuite/gcc.dg/20050321-1.c b/gcc/testsuite/gcc.dg/20050321-1.c
index 01c68cd..5455db4 100644
--- a/gcc/testsuite/gcc.dg/20050321-1.c
+++ b/gcc/testsuite/gcc.dg/20050321-1.c
@@ -3,6 +3,8 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fmodulo-sched" } */
+/* malloc doesn't take a long. */
+/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
extern void * malloc (long);
struct s {
diff --git a/gcc/testsuite/gcc.dg/20050321-2.c b/gcc/testsuite/gcc.dg/20050321-2.c
index 06d87cc..7f7e1c0 100644
--- a/gcc/testsuite/gcc.dg/20050321-2.c
+++ b/gcc/testsuite/gcc.dg/20050321-2.c
@@ -6,6 +6,7 @@
/* { dg-do link { target fpic } } */
/* { dg-options "-g1 -fpic" } */
/* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
+/* { dg-require-effective-target int32plus } */
#define A(n) \
case n##1: return n##1 * 131 + 63; \
diff --git a/gcc/testsuite/gcc.dg/asm-1.c b/gcc/testsuite/gcc.dg/asm-1.c
index 3bf5c29..fecac78 100644
--- a/gcc/testsuite/gcc.dg/asm-1.c
+++ b/gcc/testsuite/gcc.dg/asm-1.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
struct x {
int selector;
diff --git a/gcc/testsuite/gcc.dg/fold-mod-1.c b/gcc/testsuite/gcc.dg/fold-mod-1.c
index 4a26d0f..3f7696f 100644
--- a/gcc/testsuite/gcc.dg/fold-mod-1.c
+++ b/gcc/testsuite/gcc.dg/fold-mod-1.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-fdump-tree-gimple" } */
#define ABS(x) (x > 0 ? x : -x)
diff --git a/gcc/testsuite/gcc.dg/fold-overflow-1.c b/gcc/testsuite/gcc.dg/fold-overflow-1.c
index 5e410b9..bed8aac 100644
--- a/gcc/testsuite/gcc.dg/fold-overflow-1.c
+++ b/gcc/testsuite/gcc.dg/fold-overflow-1.c
@@ -1,4 +1,5 @@
/* { dg-compile } */
+/* { dg-skip-if "consts are shorts, not longs" { "m32c-*-*" } { "*" } { "" } } */
/* { dg-options "-O -ftrapping-math" } */
/* There should be exactly 2 +Inf in the assembly file. */
diff --git a/gcc/testsuite/gcc.dg/format/bitfld-1.c b/gcc/testsuite/gcc.dg/format/bitfld-1.c
index 2cea5d2..e828ad9 100644
--- a/gcc/testsuite/gcc.dg/format/bitfld-1.c
+++ b/gcc/testsuite/gcc.dg/format/bitfld-1.c
@@ -2,6 +2,7 @@
/* Origin: Joseph Myers <joseph@codesourcery.com> */
/* { dg-do compile } */
/* { dg-options "-std=gnu99 -Wformat" } */
+/* { dg-require-effective-target int32plus } */
#include "format.h"
@@ -28,8 +29,12 @@ foo (void)
printf ("%d%u", x.s15, x.s15);
printf ("%d%u", x.u16, x.u16);
printf ("%d%u", x.s16, x.s16);
+#if __INT_MAX__ > 32767
+ /* If integers are 16 bits, there doesn't seem to be a way of
+ printing these without getting an error. */
printf ("%d%u", x.u31, x.u31);
printf ("%d%u", x.s31, x.s31);
+#endif
#if __LONG_MAX__ > 2147483647 && __INT_MAX__ >= 2147483647
/* If long is wider than 32 bits, the 32-bit bit-fields are int or
unsigned int or promote to those types. Otherwise, long is 32
diff --git a/gcc/testsuite/gcc.dg/init-string-2.c b/gcc/testsuite/gcc.dg/init-string-2.c
index 828897b..9efd44b 100644
--- a/gcc/testsuite/gcc.dg/init-string-2.c
+++ b/gcc/testsuite/gcc.dg/init-string-2.c
@@ -5,6 +5,7 @@
relevant circumstances can be obtained portably; may still fail if
char, short and int do not all have distinct precisions. */
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-std=c99 -pedantic-errors -fshort-enums -fshort-wchar" } */
#include <limits.h>
diff --git a/gcc/testsuite/gcc.dg/max-1.c b/gcc/testsuite/gcc.dg/max-1.c
index 7f03edc..02aaa46 100644
--- a/gcc/testsuite/gcc.dg/max-1.c
+++ b/gcc/testsuite/gcc.dg/max-1.c
@@ -2,6 +2,8 @@
/* Test case reduced by Andrew Pinski <pinskia@physics.uc.edu> */
/* { dg-do run } */
/* { dg-options "-O1 -fno-tree-lrs" } */
+/* m32c has varying sized pointers */
+/* { dg-skip-if "" { "m32c-*-*" } { "*" } { "-mcpu=m32c" "-mcpu=m32cm" } } */
extern void abort (void);
diff --git a/gcc/testsuite/gcc.dg/noncompile/920923-1.c b/gcc/testsuite/gcc.dg/noncompile/920923-1.c
index 4ff0084..8011f28 100644
--- a/gcc/testsuite/gcc.dg/noncompile/920923-1.c
+++ b/gcc/testsuite/gcc.dg/noncompile/920923-1.c
@@ -115,7 +115,7 @@ init_mem()
"mem_hash != (prec_t)0", 370, "b.c"),
0)));
flush_hash(mem_hash, 32);
- build_ptables(mem_base, 1024*(1<<13)); /* { dg-bogus "integer overflow" "int smaller than 32 bits" } */
+ build_ptables(mem_base, 1024*(1<<13)); /* { dg-bogus "integer overflow" "int smaller than 32 bits" { xfail int16 } } */
}
struct tm {
diff --git a/gcc/testsuite/gcc.dg/pch/struct-1.c b/gcc/testsuite/gcc.dg/pch/struct-1.c
index d6c03e7..698e88b 100644
--- a/gcc/testsuite/gcc.dg/pch/struct-1.c
+++ b/gcc/testsuite/gcc.dg/pch/struct-1.c
@@ -1,3 +1,4 @@
+/* { dg-require-effective-target int32plus } */
#include "struct-1.h"
struct ChainSearchRecord {
diff --git a/gcc/testsuite/gcc.dg/pr14796-2.c b/gcc/testsuite/gcc.dg/pr14796-2.c
index 195530b..2de5411 100644
--- a/gcc/testsuite/gcc.dg/pr14796-2.c
+++ b/gcc/testsuite/gcc.dg/pr14796-2.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-fdump-tree-gimple" } */
int f (int a) {
diff --git a/gcc/testsuite/gcc.dg/pr17112-1.c b/gcc/testsuite/gcc.dg/pr17112-1.c
index 09c3758..04d3a2e 100644
--- a/gcc/testsuite/gcc.dg/pr17112-1.c
+++ b/gcc/testsuite/gcc.dg/pr17112-1.c
@@ -1,5 +1,6 @@
/* PR middle-end/17112 */
/* { dg-do run } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-O2" } */
extern void abort(void);
diff --git a/gcc/testsuite/gcc.dg/pr18241-1.c b/gcc/testsuite/gcc.dg/pr18241-1.c
index 99c9e38..f5134d3 100644
--- a/gcc/testsuite/gcc.dg/pr18241-1.c
+++ b/gcc/testsuite/gcc.dg/pr18241-1.c
@@ -1,4 +1,6 @@
/* { dg-do run } */
+/* memset doesn't take unsigned long */
+/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
/* { dg-options "-std=gnu99 -Wall -Wextra -O1" } */
extern void *memset (void*, int, unsigned long);
diff --git a/gcc/testsuite/gcc.dg/pr18241-2.c b/gcc/testsuite/gcc.dg/pr18241-2.c
index 502dc55..8922124 100644
--- a/gcc/testsuite/gcc.dg/pr18241-2.c
+++ b/gcc/testsuite/gcc.dg/pr18241-2.c
@@ -1,4 +1,6 @@
/* { dg-do run } */
+/* memset doesn't take unsigned long */
+/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
/* { dg-options "-std=gnu99 -Wall -Wextra -O1" } */
extern void *memset (void*, int, unsigned long);
diff --git a/gcc/testsuite/gcc.dg/pr19340.c b/gcc/testsuite/gcc.dg/pr19340.c
index 89c82f6..27cd8c8 100644
--- a/gcc/testsuite/gcc.dg/pr19340.c
+++ b/gcc/testsuite/gcc.dg/pr19340.c
@@ -1,6 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fschedule-insns2 -fsched2-use-traces" } */
-/* { dg-skip-if "No scheduling" { mmix-*-* cris-*-* m68k-*-* } { "*" } { "" } } */
+/* { dg-skip-if "No scheduling" { mmix-*-* cris-*-* m68k-*-* m32c-*-* } { "*" } { "" } } */
extern double f (double x);
diff --git a/gcc/testsuite/gcc.dg/pr23049.c b/gcc/testsuite/gcc.dg/pr23049.c
index 0a71cec..e58cef8 100644
--- a/gcc/testsuite/gcc.dg/pr23049.c
+++ b/gcc/testsuite/gcc.dg/pr23049.c
@@ -7,6 +7,7 @@
the above expression. */
/* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
/* { dg-options "-O3 -ftree-vectorize" } */
static unsigned short int crc_table[256];
diff --git a/gcc/testsuite/gcc.dg/torture/pr26565.c b/gcc/testsuite/gcc.dg/torture/pr26565.c
index 9b43140..d762032 100644
--- a/gcc/testsuite/gcc.dg/torture/pr26565.c
+++ b/gcc/testsuite/gcc.dg/torture/pr26565.c
@@ -1,4 +1,6 @@
/* { dg-do run } */
+/* m32c is already packed. */
+/* { dg-skip-if "" { "m32c-*-*" } { "*" } { "" } } */
void *memcpy(void *dest, const void *src, __SIZE_TYPE__ n);
diff --git a/gcc/testsuite/gcc.dg/torture/pr26587.c b/gcc/testsuite/gcc.dg/torture/pr26587.c
index fd3c690..ad5d60f 100644
--- a/gcc/testsuite/gcc.dg/torture/pr26587.c
+++ b/gcc/testsuite/gcc.dg/torture/pr26587.c
@@ -1,4 +1,5 @@
/* { dg-do run } */
+/* { dg-require-effective-target int32plus } */
extern void abort(void);
typedef unsigned int BF_word;
diff --git a/gcc/testsuite/gcc.dg/torture/pr26630.c b/gcc/testsuite/gcc.dg/torture/pr26630.c
index 08cf5f6..96bab36 100644
--- a/gcc/testsuite/gcc.dg/torture/pr26630.c
+++ b/gcc/testsuite/gcc.dg/torture/pr26630.c
@@ -1,4 +1,5 @@
/* { dg-do run } */
+/* { dg-require-effective-target int32plus } */
extern void abort(void);
int main()
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
index 4b67c82..03c2ddd 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-optimized" } */
+/* { dg-require-effective-target int32plus } */
int bar (void);
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c
index afb0d16..8f31959 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c
@@ -2,6 +2,7 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-optimized" } */
+/* { dg-require-effective-target size32plus } */
/* Size of this structure should be sufficiently weird so that no memory
addressing mode applies. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c
index 89d9561..a6c8c8f 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c
@@ -2,6 +2,7 @@
/* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-optimized" } */
+/* { dg-require-effective-target size32plus } */
/* Size of this structure should be sufficiently weird so that no memory
addressing mode applies. */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
index 33b82cb..a3a9975 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
+/* { dg-require-effective-target size32plus } */
double u[1782225];
int foo(int N, int *res)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c
index 9cfa60d..9548bf2 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
+/* { dg-require-effective-target size32plus } */
double u[1782225];
int foo(int N, int *res)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
index 0cb266f..86424ab 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
+/* { dg-require-effective-target size32plus } */
double u[1782225];
int foo(int N, int *res)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
index 4e60eae..e2d6abc 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
+/* { dg-require-effective-target size32plus } */
double u[1782225];
int foo(int N, int *res)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c b/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
index ee661a0..0287a25 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-vrp1" } */
+/* { dg-require-effective-target int32plus } */
void fn_call (int);
int h(int, int);
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c b/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
index b1dd6d5..e515417 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
@@ -1,5 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-alias-vops" } */
+/* malloc doesn't take a long */
+/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
struct a
{
int length;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c b/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c
index 011410c..c065eef 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O" } */
+/* { dg-require-effective-target int32plus } */
extern void abort (void);
typedef unsigned int u_int32;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c b/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c
index 730115b..13c302d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O2" } */
+/* { dg-require-effective-target int32plus } */
void abort(void);
int bar(int x, int y)
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c
index 833a73d..a65d8a1 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O2" } */
+/* { dg-require-effective-target int32plus } */
struct tree_decl
{
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c
index 0e675d9..9a4e4e7 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O1 -ftree-vrp -fdump-tree-vrp1" } */
+/* { dg-require-effective-target int32plus } */
extern void link_error ();
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp22.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp22.c
index 6120d07..cbd4dc5 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/vrp22.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp22.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O1 -ftree-vrp -fdump-tree-vrp1" } */
+/* { dg-require-effective-target int32plus } */
extern void link_error ();
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 40f0698..abe4fb9 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -300,6 +300,7 @@ proc check_profiling_available { test_what } {
|| [istarget xscale*-*-elf]
|| [istarget cris-*-*]
|| [istarget h8300-*-*]
+ || [istarget m32c-*-elf]
|| [istarget m68k-*-elf]
|| [istarget mips*-*-elf]
|| [istarget xtensa-*-elf]
@@ -926,6 +927,42 @@ proc check_effective_target_ilp32 { } {
}]
}
+# Return 1 if we're generating 32-bit or larger integers using default
+# options, 0 otherwise.
+
+proc check_effective_target_int32plus { } {
+ return [check_no_compiler_messages int32plus object {
+ int dummy[sizeof (int) >= 4 ? 1 : -1];
+ }]
+}
+
+# Return 1 if we're generating 32-bit or larger pointers using default
+# options, 0 otherwise.
+
+proc check_effective_target_ptr32plus { } {
+ return [check_no_compiler_messages ptr32plus object {
+ int dummy[sizeof (void *) >= 4 ? 1 : -1];
+ }]
+}
+
+# Return 1 if we support 32-bit or larger array and structure sizes
+# using default options, 0 otherwise.
+
+proc check_effective_target_size32plus { } {
+ return [check_no_compiler_messages size32plus object {
+ char dummy[65537];
+ }]
+}
+
+# Returns 1 if we're generating 16-bit or smaller integers with the
+# default options, 0 otherwise.
+
+proc check_effective_target_int16 { } {
+ return [check_no_compiler_messages int16 object {
+ int dummy[sizeof (int) < 4 ? 1 : -1];
+ }]
+}
+
# Return 1 if we're generating 64-bit code using default options, 0
# otherwise.