target-supports.exp (check_effective_target_int32plus): New.
authorDJ Delorie <dj@redhat.com>
Thu, 13 Apr 2006 23:14:25 +0000 (19:14 -0400)
committerDJ Delorie <dj@gcc.gnu.org>
Thu, 13 Apr 2006 23:14:25 +0000 (19:14 -0400)
* 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

60 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/20000804-1.c
gcc/testsuite/gcc.c-torture/compile/20001226-1.c
gcc/testsuite/gcc.c-torture/compile/20010327-1.c
gcc/testsuite/gcc.c-torture/compile/20020604-1.c
gcc/testsuite/gcc.c-torture/compile/20050303-1.c
gcc/testsuite/gcc.c-torture/compile/980506-1.c
gcc/testsuite/gcc.c-torture/execute/20020404-1.x
gcc/testsuite/gcc.c-torture/execute/20021024-1.x
gcc/testsuite/gcc.c-torture/execute/20040629-1.x [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/20040703-1.x [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/20040705-1.x [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/20040705-2.x [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/20040709-1.x [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/20040709-2.x [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/20040811-1.x [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/20050316-1.x [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/bitfld-4.x [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/pr19689.x [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/pr7284-1.x [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/shiftdi.x
gcc/testsuite/gcc.c-torture/execute/usmul.x [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/vrp-5.x [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/vrp-6.x [new file with mode: 0644]
gcc/testsuite/gcc.dg/20020312-2.c
gcc/testsuite/gcc.dg/20040622-2.c
gcc/testsuite/gcc.dg/20050321-1.c
gcc/testsuite/gcc.dg/20050321-2.c
gcc/testsuite/gcc.dg/asm-1.c
gcc/testsuite/gcc.dg/fold-mod-1.c
gcc/testsuite/gcc.dg/fold-overflow-1.c
gcc/testsuite/gcc.dg/format/bitfld-1.c
gcc/testsuite/gcc.dg/init-string-2.c
gcc/testsuite/gcc.dg/max-1.c
gcc/testsuite/gcc.dg/noncompile/920923-1.c
gcc/testsuite/gcc.dg/pch/struct-1.c
gcc/testsuite/gcc.dg/pr14796-2.c
gcc/testsuite/gcc.dg/pr17112-1.c
gcc/testsuite/gcc.dg/pr18241-1.c
gcc/testsuite/gcc.dg/pr18241-2.c
gcc/testsuite/gcc.dg/pr19340.c
gcc/testsuite/gcc.dg/pr23049.c
gcc/testsuite/gcc.dg/torture/pr26565.c
gcc/testsuite/gcc.dg/torture/pr26587.c
gcc/testsuite/gcc.dg/torture/pr26630.c
gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
gcc/testsuite/gcc.dg/tree-ssa/loop-2.c
gcc/testsuite/gcc.dg/tree-ssa/loop-4.c
gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c
gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
gcc/testsuite/gcc.dg/tree-ssa/pr24627.c
gcc/testsuite/gcc.dg/tree-ssa/pr26180.c
gcc/testsuite/gcc.dg/tree-ssa/vrp14.c
gcc/testsuite/gcc.dg/tree-ssa/vrp21.c
gcc/testsuite/gcc.dg/tree-ssa/vrp22.c
gcc/testsuite/lib/target-supports.exp

index 185b3662969cf847ea5f3abb85cbd9d7407d552e..6a5092d187d29eacdddfd01eb77e5a79ae248587 100644 (file)
@@ -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
index 1825cba14dae2432f22ba81a58102ba912500986..0decbc9e0b9e7c6c7874f5939fe6f47d123c0fdf 100644 (file)
@@ -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 ()
index 0e71b1445ee917d16f3dd81957df8fa2df349b48..9f1645af09933dcadb08c1e431fd942eadfa2049 100644 (file)
@@ -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.  */
 
index 10f7e39516f5db06ad87727cd959edde172ead98..189990ade3f5f760b081a7c338a1493f55778ed1 100644 (file)
@@ -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;
index ef24e1cf1397f005c949f19585fb340016b71666..61632f725f4829d6b51aa818a81d19e680b81da9 100644 (file)
@@ -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
index 5993a452153842c0ca11423983c45f8f78a93930..22154b30af5b0ae5a0dd4ef407f90e07f0f78698 100644 (file)
@@ -1,3 +1,6 @@
+/* { dg-require-effective-target int32plus } */
+/* { dg-require-effective-target size32plus } */
+
 void crc()
 {
     int  toread;
index 9bc2d8afc3e7f12ff23b4abb77a4dcab18d9dda4..6cccb1eae81beda6e945d0865d6c2742ad59e7f1 100644 (file)
@@ -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];
index 25ed5786b83ee1b0cd0a5d7d1bc2a3d95fb26014..e4fd61a44a0ad03cdb7decd02d31a90d34e3dcaf 100644 (file)
@@ -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
 
index 25ed5786b83ee1b0cd0a5d7d1bc2a3d95fb26014..121fcfecc2c22fd274926e06105d20e909831f99 100644 (file)
@@ -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 (file)
index 0000000..121fcfe
--- /dev/null
@@ -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 (file)
index 0000000..121fcfe
--- /dev/null
@@ -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 (file)
index 0000000..121fcfe
--- /dev/null
@@ -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 (file)
index 0000000..121fcfe
--- /dev/null
@@ -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 (file)
index 0000000..121fcfe
--- /dev/null
@@ -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 (file)
index 0000000..121fcfe
--- /dev/null
@@ -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 (file)
index 0000000..121fcfe
--- /dev/null
@@ -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 (file)
index 0000000..121fcfe
--- /dev/null
@@ -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 (file)
index 0000000..121fcfe
--- /dev/null
@@ -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 (file)
index 0000000..121fcfe
--- /dev/null
@@ -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 (file)
index 0000000..121fcfe
--- /dev/null
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+       return 1
+}
+
+return 0;
index 25ed5786b83ee1b0cd0a5d7d1bc2a3d95fb26014..121fcfecc2c22fd274926e06105d20e909831f99 100644 (file)
@@ -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 (file)
index 0000000..121fcfe
--- /dev/null
@@ -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 (file)
index 0000000..121fcfe
--- /dev/null
@@ -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 (file)
index 0000000..121fcfe
--- /dev/null
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { [check_effective_target_int16] } {
+       return 1
+}
+
+return 0;
index 211fd755ad8afd9c0e2d41cff6756ec2cd65c9d1..6acc1e6cbb51d21b31487528d411c4dd6c37178a 100644 (file)
@@ -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
index 32974018d54e2536515639b4ddcf97fab2fd6274..0be320fa4e240b6b4743448b97a6d3e36a9343d2 100644 (file)
@@ -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) {}
index 01c68cd5ed98e86f7a1466e83ad7a4b8c0c5af08..5455db443046153ccff564ecec174666e4d7427d 100644 (file)
@@ -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 {
index 06d87cc225bba6a0dc10d7d1ec28300ac6a24a29..7f7e1c09dffc67a6cadf17bab979ce3844d22642 100644 (file)
@@ -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;   \
index 3bf5c29c4cdca5d69029678e374c9b65cc22d686..fecac780f6958955553f42046f63b5f9f64112e3 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
 
 struct x {
   int selector;
index 4a26d0fc088458a4238b54f45a3258f592b93126..3f7696f17600a87895b3355fc11d6a8bc357c75d 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
 /* { dg-options "-fdump-tree-gimple" } */
 
 #define ABS(x) (x > 0 ? x : -x)
index 5e410b9bafb54bfafff3662e635c5c21f7782fc9..bed8aac9f9bf18bc6d82b5f8e3ef10db09f3686d 100644 (file)
@@ -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.  */
index 2cea5d220e5fe3df7e44356a5133d239d8d39e17..e828ad97cd5f31bbc5c9cc3b78605984db4b24b1 100644 (file)
@@ -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
index 828897b3ca9f840f5dff7aea7b38fd366997021a..9efd44b3d2f9423775e82256e8ac1816a917ef45 100644 (file)
@@ -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>
index 7f03edc590d4898edef314bd9a8c0a7343c9fcfd..02aaa46c3b52fc5b3f6dd51601bc40a928e84d67 100644 (file)
@@ -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);
 
index 4ff008467f5ab8ff695e01c514ad0d2d591d6136..8011f28cbb4f01a843f6a1316de44b54da8be091 100644 (file)
@@ -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 {
index d6c03e7b84df92fd6d355776013d6ce75a8f0191..698e88b285aab09cdbcc353ee83134deffa3292d 100644 (file)
@@ -1,3 +1,4 @@
+/* { dg-require-effective-target int32plus } */
 #include "struct-1.h"
 
 struct ChainSearchRecord {
index 195530b8d93101eb985cdc87a488a92fc5ba6d0d..2de5411a4907a3af06ebf70082d3b69da9633189 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-require-effective-target int32plus } */
 /* { dg-options "-fdump-tree-gimple" } */
 
 int f (int a) {
index 09c3758abed87385ab46ad6ab357e8f838d3d296..04d3a2e0e217f2d92a8024c7a334f4b5be7cef12 100644 (file)
@@ -1,5 +1,6 @@
 /* PR middle-end/17112 */
 /* { dg-do run } */
+/* { dg-require-effective-target int32plus } */
 /* { dg-options "-O2" } */
 
 extern void abort(void);
index 99c9e38e615a95d0a6ea78ba986e0054b5709729..f5134d317b2daa3af2600e15b490b53376043dde 100644 (file)
@@ -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);
index 502dc553eeb76d46d59a404005fd254838013e17..89221247ad07e1d59f0fb042f1c6b5aa692b3088 100644 (file)
@@ -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);
index 89c82f6bfe295bae3797534db4304ac07d22fca4..27cd8c8cc27f898602efbe34324890ad6ea4ae0a 100644 (file)
@@ -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);
 
index 0a71cecb21795f8236f204125713b693bb0021aa..e58cef8fe167ae062b692e08126b18e95252ac38 100644 (file)
@@ -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];
index 9b431407f44e5c68f6c4b21809c040292f007b65..d7620329fe422e8f7ff0c7e104fe6e415e453567 100644 (file)
@@ -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);
 
index fd3c690e77f4b2913556bf333f790ac84dbbb6c0..ad5d60f3a8d883986bc0936cf3ad781bdabb80b6 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target int32plus } */
 
 extern void abort(void);
 typedef unsigned int BF_word;
index 08cf5f655768cc66d76fa40395d0f8f9c53825f0..96bab36a0f70aa411743f0a1279f0f31e2696607 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-require-effective-target int32plus } */
 
 extern void abort(void);
 int main()
index 4b67c82312aa9469c9894eec70a3dc8219b32684..03c2ddd515d183cb2156f7e725091412182e4d6a 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O1 -fdump-tree-optimized" } */
+/* { dg-require-effective-target int32plus } */
 
 int bar (void);
 
index afb0d16c32c1fa6a1a5371d9dcccf8e2b9f708f4..8f319594f8405598f4806ceb045d0ccdad637469 100644 (file)
@@ -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.  */
index 89d956136bb287c23ddad2b39afb7f24dca26fa1..a6c8c8fd34a1ac4beaf1d931945311f7ace72d5d 100644 (file)
@@ -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.  */
index 33b82cbb7460136083d6659988722f10f8bb45ab..a3a9975c51d8614edfedcd73bc4c90b2fb227409 100644 (file)
@@ -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)
index 9cfa60d2d9967426552ceeef630c7d6a629d8868..9548bf217067acb77f92097f5278bb1b3dae1c02 100644 (file)
@@ -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)
index 0cb266f4cc49615fc16432deb807afb4a4791fe8..86424ab13691208d33926967d0573e41e84bfa57 100644 (file)
@@ -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)
index 4e60eae4d51f81a788a7ed2af49931f27a84864d..e2d6abced602d01d77e3895be4d00ca4fc1a372c 100644 (file)
@@ -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)
index ee661a0f3a99823a6c68513500496dd8ff6531fd..0287a25cc3826ee3489e83b1c2b6f56ffccb8d85 100644 (file)
@@ -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);
index b1dd6d54822f9f36a165465f104397a34c7e60ae..e515417076d09c8fa7b4509e3aca849a3886659f 100644 (file)
@@ -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;
index 011410cbb37f3c0d0407e7274ea009b119b32c89..c065eef84f44040e1ff299086fb580b2e4ab22f1 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O" } */
+/* { dg-require-effective-target int32plus } */
 
 extern void abort (void);
 typedef unsigned int u_int32;
index 730115b686b89295fc6ceadf64f3c8a947699680..13c302dea3a3b9ac6d5c6b69d56e31e8269d7251 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2" } */
+/* { dg-require-effective-target int32plus } */
 
 void abort(void);
 int bar(int x, int y)
index 833a73dcadc3d5ea55884031b1235d3fa6b12934..a65d8a16d705111adf3332aef6727f0d8ec38f7a 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2" } */
+/* { dg-require-effective-target int32plus } */
 
 struct tree_decl
 {
index 0e675d9114731443488711e40507499a5378367f..9a4e4e783c18fd9eb20dc816950017a34c9839e7 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O1 -ftree-vrp -fdump-tree-vrp1" } */
+/* { dg-require-effective-target int32plus } */
 
 extern void link_error ();
 
index 6120d07237716edad9ad5c4456bfa897e81b1d9d..cbd4dc529dd955e404534279e871244f66fca3e0 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O1 -ftree-vrp -fdump-tree-vrp1" } */
+/* { dg-require-effective-target int32plus } */
 
 extern void link_error ();
 
index 40f06982897a91cd0753ecbccaac8e4e2ec34e1b..abe4fb97687c4a06720f950f9e1f73ecd57fce23 100644 (file)
@@ -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.