From a239aa95dc5271ebabed7a98e026b69bc16d9b85 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Thu, 13 Apr 2006 19:14:25 -0400 Subject: [PATCH] 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 --- gcc/testsuite/ChangeLog | 80 +++++++++++++++++++ .../gcc.c-torture/compile/20000804-1.c | 1 + .../gcc.c-torture/compile/20001226-1.c | 1 + .../gcc.c-torture/compile/20010327-1.c | 3 + .../gcc.c-torture/compile/20020604-1.c | 1 + .../gcc.c-torture/compile/20050303-1.c | 3 + .../gcc.c-torture/compile/980506-1.c | 1 + .../gcc.c-torture/execute/20020404-1.x | 12 ++- .../gcc.c-torture/execute/20021024-1.x | 8 +- .../gcc.c-torture/execute/20040629-1.x | 7 ++ .../gcc.c-torture/execute/20040703-1.x | 7 ++ .../gcc.c-torture/execute/20040705-1.x | 7 ++ .../gcc.c-torture/execute/20040705-2.x | 7 ++ .../gcc.c-torture/execute/20040709-1.x | 7 ++ .../gcc.c-torture/execute/20040709-2.x | 7 ++ .../gcc.c-torture/execute/20040811-1.x | 7 ++ .../gcc.c-torture/execute/20050316-1.x | 7 ++ .../gcc.c-torture/execute/bitfld-4.x | 7 ++ gcc/testsuite/gcc.c-torture/execute/pr19689.x | 7 ++ .../gcc.c-torture/execute/pr7284-1.x | 7 ++ gcc/testsuite/gcc.c-torture/execute/shiftdi.x | 8 +- gcc/testsuite/gcc.c-torture/execute/usmul.x | 7 ++ gcc/testsuite/gcc.c-torture/execute/vrp-5.x | 7 ++ gcc/testsuite/gcc.c-torture/execute/vrp-6.x | 7 ++ gcc/testsuite/gcc.dg/20020312-2.c | 2 + gcc/testsuite/gcc.dg/20040622-2.c | 1 + gcc/testsuite/gcc.dg/20050321-1.c | 2 + gcc/testsuite/gcc.dg/20050321-2.c | 1 + gcc/testsuite/gcc.dg/asm-1.c | 1 + gcc/testsuite/gcc.dg/fold-mod-1.c | 1 + gcc/testsuite/gcc.dg/fold-overflow-1.c | 1 + gcc/testsuite/gcc.dg/format/bitfld-1.c | 5 ++ gcc/testsuite/gcc.dg/init-string-2.c | 1 + gcc/testsuite/gcc.dg/max-1.c | 2 + gcc/testsuite/gcc.dg/noncompile/920923-1.c | 2 +- gcc/testsuite/gcc.dg/pch/struct-1.c | 1 + gcc/testsuite/gcc.dg/pr14796-2.c | 1 + gcc/testsuite/gcc.dg/pr17112-1.c | 1 + gcc/testsuite/gcc.dg/pr18241-1.c | 2 + gcc/testsuite/gcc.dg/pr18241-2.c | 2 + gcc/testsuite/gcc.dg/pr19340.c | 2 +- gcc/testsuite/gcc.dg/pr23049.c | 1 + gcc/testsuite/gcc.dg/torture/pr26565.c | 2 + gcc/testsuite/gcc.dg/torture/pr26587.c | 1 + gcc/testsuite/gcc.dg/torture/pr26630.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/loop-10.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/loop-2.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/loop-4.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/pr14341.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/pr23382.c | 2 + gcc/testsuite/gcc.dg/tree-ssa/pr24627.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/pr26180.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/vrp14.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/vrp21.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/vrp22.c | 1 + gcc/testsuite/lib/target-supports.exp | 37 +++++++++ 60 files changed, 289 insertions(+), 12 deletions(-) create mode 100644 gcc/testsuite/gcc.c-torture/execute/20040629-1.x create mode 100644 gcc/testsuite/gcc.c-torture/execute/20040703-1.x create mode 100644 gcc/testsuite/gcc.c-torture/execute/20040705-1.x create mode 100644 gcc/testsuite/gcc.c-torture/execute/20040705-2.x create mode 100644 gcc/testsuite/gcc.c-torture/execute/20040709-1.x create mode 100644 gcc/testsuite/gcc.c-torture/execute/20040709-2.x create mode 100644 gcc/testsuite/gcc.c-torture/execute/20040811-1.x create mode 100644 gcc/testsuite/gcc.c-torture/execute/20050316-1.x create mode 100644 gcc/testsuite/gcc.c-torture/execute/bitfld-4.x create mode 100644 gcc/testsuite/gcc.c-torture/execute/pr19689.x create mode 100644 gcc/testsuite/gcc.c-torture/execute/pr7284-1.x create mode 100644 gcc/testsuite/gcc.c-torture/execute/usmul.x create mode 100644 gcc/testsuite/gcc.c-torture/execute/vrp-5.x create mode 100644 gcc/testsuite/gcc.c-torture/execute/vrp-6.x diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 185b3662969..6a5092d187d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,83 @@ +2006-04-13 DJ Delorie + + * 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 * 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 1825cba14da..0decbc9e0b9 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 0e71b1445ee..9f1645af099 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 10f7e39516f..189990ade3f 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 ef24e1cf139..61632f725f4 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 5993a452153..22154b30af5 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 9bc2d8afc3e..6cccb1eae81 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 25ed5786b83..e4fd61a44a0 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 25ed5786b83..121fcfecc2c 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 00000000000..121fcfecc2c --- /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 00000000000..121fcfecc2c --- /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 00000000000..121fcfecc2c --- /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 00000000000..121fcfecc2c --- /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 00000000000..121fcfecc2c --- /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 00000000000..121fcfecc2c --- /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 00000000000..121fcfecc2c --- /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 00000000000..121fcfecc2c --- /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 00000000000..121fcfecc2c --- /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 00000000000..121fcfecc2c --- /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 00000000000..121fcfecc2c --- /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 25ed5786b83..121fcfecc2c 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 00000000000..121fcfecc2c --- /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 00000000000..121fcfecc2c --- /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 00000000000..121fcfecc2c --- /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 211fd755ad8..6acc1e6cbb5 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 32974018d54..0be320fa4e2 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 01c68cd5ed9..5455db44304 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 06d87cc225b..7f7e1c09dff 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 3bf5c29c4cd..fecac780f69 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 4a26d0fc088..3f7696f1760 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 5e410b9bafb..bed8aac9f9b 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 2cea5d220e5..e828ad97cd5 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 */ /* { 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 828897b3ca9..9efd44b3d2f 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 diff --git a/gcc/testsuite/gcc.dg/max-1.c b/gcc/testsuite/gcc.dg/max-1.c index 7f03edc590d..02aaa46c3b5 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 */ /* { 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 4ff008467f5..8011f28cbb4 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 d6c03e7b84d..698e88b285a 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 195530b8d93..2de5411a490 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 09c3758abed..04d3a2e0e21 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 99c9e38e615..f5134d317b2 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 502dc553eeb..89221247ad0 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 89c82f6bfe2..27cd8c8cc27 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 0a71cecb217..e58cef8fe16 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 9b431407f44..d7620329fe4 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 fd3c690e77f..ad5d60f3a8d 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 08cf5f65576..96bab36a0f7 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 4b67c82312a..03c2ddd515d 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 afb0d16c32c..8f319594f84 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 89d956136bb..a6c8c8fd34a 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 33b82cbb746..a3a9975c51d 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 9cfa60d2d99..9548bf21706 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 0cb266f4cc4..86424ab1369 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 4e60eae4d51..e2d6abced60 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 ee661a0f3a9..0287a25cc38 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 b1dd6d54822..e515417076d 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 011410cbb37..c065eef84f4 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 730115b686b..13c302dea3a 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 833a73dcadc..a65d8a16d70 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 0e675d91147..9a4e4e783c1 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 6120d072377..cbd4dc529dd 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 40f06982897..abe4fb97687 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. -- 2.30.2