Commit a239aa95 by DJ Delorie Committed by DJ Delorie

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
parent 15b1c12a
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> 2006-04-13 Roger Sayle <roger@eyesopen.com>
* gcc.target/i386/20050113-1.c: Tweak testcase to reflect that casts * gcc.target/i386/20050113-1.c: Tweak testcase to reflect that casts
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
statement to force a 'long long' (64-bits) to go in a register. */ statement to force a 'long long' (64-bits) to go in a register. */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* h8300-*-* } } */ /* { dg-do assemble { xfail m6811-*-* m6812-*-* h8300-*-* } } */
/* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && ilp32 } { "-fpic" "-fPIC" } { "" } } */ /* { 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 */ /* Copyright (C) 2000, 2003 Free Software Foundation */
__complex__ long long f () __complex__ long long f ()
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
than 64K. */ than 64K. */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */ /* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
/* { dg-xfail-if "jump beyond 128K not supported" "xtensa-*-*" "-O0" "" } */ /* { dg-xfail-if "jump beyond 128K not supported" "xtensa-*-*" "-O0" "" } */
/* { dg-skip-if "" { m32c-*-* } { "*" } { "" } } */
/* This testcase exposed two branch shortening bugs on powerpc. */ /* This testcase exposed two branch shortening bugs on powerpc. */
......
/* { dg-skip-if "non-SI pointers" { m32c-*-* } { "*" } { "" } } */
/* This testcase tests whether GCC can produce static initialized data /* This testcase tests whether GCC can produce static initialized data
that references addresses of size 'unsigned long', even if that's not 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 the same as __SIZE_TYPE__. (See 20011114-1.c for the same test of
...@@ -5,5 +7,6 @@ ...@@ -5,5 +7,6 @@
Some rare environments might not have the required relocs to support Some rare environments might not have the required relocs to support
this; they should have this test disabled in the .x file. */ this; they should have this test disabled in the .x file. */
extern void _text; extern void _text;
static unsigned long x = (unsigned long) &_text - 0x10000000L - 1; static unsigned long x = (unsigned long) &_text - 0x10000000L - 1;
/* The array is too big. */ /* The array is too big. */
/* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" "-mn" } { "" } } */ /* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" "-mn" } { "" } } */
/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */ /* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */
/* { dg-skip-if "" { m32c-*-* } { } { } } */
/* PR c/6957 /* PR c/6957
This testcase ICEd at -O2 on IA-32, because This testcase ICEd at -O2 on IA-32, because
......
/* { dg-require-effective-target int32plus } */
/* { dg-require-effective-target size32plus } */
void crc() void crc()
{ {
int toread; int toread;
......
/* The arrays are too large for the xstormy16 - won't fit in 16 bits. */ /* 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-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" "-mn" } { "" } } */
/* { dg-do assemble { xfail xstormy16-*-* m6811-*-* m6812-*-* } } */ /* { dg-do assemble { xfail xstormy16-*-* m6811-*-* m6812-*-* } } */
/* { dg-require-effective-target size32plus } */
unsigned char TIFFFax2DMode[20][256]; unsigned char TIFFFax2DMode[20][256];
unsigned char TIFFFax2DNextState[20][256]; unsigned char TIFFFax2DNextState[20][256];
......
# 16-bit "int" load_lib target-supports.exp
if { [istarget "xstormy16-*"] } {
if { [check_effective_target_int16] } {
return 1 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 return 0
# 16-bit "int" load_lib target-supports.exp
if { [istarget "xstormy16-*"] } {
if { [check_effective_target_int16] } {
return 1 return 1
} }
return 0 return 0;
load_lib target-supports.exp
if { [check_effective_target_int16] } {
return 1
}
return 0;
load_lib target-supports.exp
if { [check_effective_target_int16] } {
return 1
}
return 0;
load_lib target-supports.exp
if { [check_effective_target_int16] } {
return 1
}
return 0;
load_lib target-supports.exp
if { [check_effective_target_int16] } {
return 1
}
return 0;
load_lib target-supports.exp
if { [check_effective_target_int16] } {
return 1
}
return 0;
load_lib target-supports.exp
if { [check_effective_target_int16] } {
return 1
}
return 0;
load_lib target-supports.exp
if { [check_effective_target_int16] } {
return 1
}
return 0;
load_lib target-supports.exp
if { [check_effective_target_int16] } {
return 1
}
return 0;
load_lib target-supports.exp
if { [check_effective_target_int16] } {
return 1
}
return 0;
load_lib target-supports.exp
if { [check_effective_target_int16] } {
return 1
}
return 0;
load_lib target-supports.exp
if { [check_effective_target_int16] } {
return 1
}
return 0;
# 16-bit "int" load_lib target-supports.exp
if { [istarget "xstormy16-*"] } {
if { [check_effective_target_int16] } {
return 1 return 1
} }
return 0 return 0;
load_lib target-supports.exp
if { [check_effective_target_int16] } {
return 1
}
return 0;
load_lib target-supports.exp
if { [check_effective_target_int16] } {
return 1
}
return 0;
load_lib target-supports.exp
if { [check_effective_target_int16] } {
return 1
}
return 0;
...@@ -70,6 +70,8 @@ extern void abort (void); ...@@ -70,6 +70,8 @@ extern void abort (void);
# define PIC_REG "r12" # define PIC_REG "r12"
#elif defined(__x86_64__) #elif defined(__x86_64__)
/* No pic register. */ /* No pic register. */
#elif defined(__m32c__)
/* No pic register. */
#else #else
# error "Modify the test for your target." # error "Modify the test for your target."
#endif #endif
......
/* { dg-do link } */ /* { dg-do link } */
/* { dg-require-effective-target ptr32plus } */
/* This validates codegen for [r1+32760] on Darwin. */ /* 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) __attribute__((noinline));
void f(char x[32688], double *y, double *z) {} void f(char x[32688], double *y, double *z) {}
......
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -fmodulo-sched" } */ /* { dg-options "-O2 -fmodulo-sched" } */
/* malloc doesn't take a long. */
/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
extern void * malloc (long); extern void * malloc (long);
struct s { struct s {
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
/* { dg-do link { target fpic } } */ /* { dg-do link { target fpic } } */
/* { dg-options "-g1 -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-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) \ #define A(n) \
case n##1: return n##1 * 131 + 63; \ case n##1: return n##1 * 131 + 63; \
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target int32plus } */
struct x { struct x {
int selector; int selector;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target int32plus } */
/* { dg-options "-fdump-tree-gimple" } */ /* { dg-options "-fdump-tree-gimple" } */
#define ABS(x) (x > 0 ? x : -x) #define ABS(x) (x > 0 ? x : -x)
......
/* { dg-compile } */ /* { dg-compile } */
/* { dg-skip-if "consts are shorts, not longs" { "m32c-*-*" } { "*" } { "" } } */
/* { dg-options "-O -ftrapping-math" } */ /* { dg-options "-O -ftrapping-math" } */
/* There should be exactly 2 +Inf in the assembly file. */ /* There should be exactly 2 +Inf in the assembly file. */
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
/* Origin: Joseph Myers <joseph@codesourcery.com> */ /* Origin: Joseph Myers <joseph@codesourcery.com> */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-std=gnu99 -Wformat" } */ /* { dg-options "-std=gnu99 -Wformat" } */
/* { dg-require-effective-target int32plus } */
#include "format.h" #include "format.h"
...@@ -28,8 +29,12 @@ foo (void) ...@@ -28,8 +29,12 @@ foo (void)
printf ("%d%u", x.s15, x.s15); printf ("%d%u", x.s15, x.s15);
printf ("%d%u", x.u16, x.u16); printf ("%d%u", x.u16, x.u16);
printf ("%d%u", x.s16, x.s16); 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.u31, x.u31);
printf ("%d%u", x.s31, x.s31); printf ("%d%u", x.s31, x.s31);
#endif
#if __LONG_MAX__ > 2147483647 && __INT_MAX__ >= 2147483647 #if __LONG_MAX__ > 2147483647 && __INT_MAX__ >= 2147483647
/* If long is wider than 32 bits, the 32-bit bit-fields are int or /* 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 unsigned int or promote to those types. Otherwise, long is 32
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
relevant circumstances can be obtained portably; may still fail if relevant circumstances can be obtained portably; may still fail if
char, short and int do not all have distinct precisions. */ char, short and int do not all have distinct precisions. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target int32plus } */
/* { dg-options "-std=c99 -pedantic-errors -fshort-enums -fshort-wchar" } */ /* { dg-options "-std=c99 -pedantic-errors -fshort-enums -fshort-wchar" } */
#include <limits.h> #include <limits.h>
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
/* Test case reduced by Andrew Pinski <pinskia@physics.uc.edu> */ /* Test case reduced by Andrew Pinski <pinskia@physics.uc.edu> */
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O1 -fno-tree-lrs" } */ /* { dg-options "-O1 -fno-tree-lrs" } */
/* m32c has varying sized pointers */
/* { dg-skip-if "" { "m32c-*-*" } { "*" } { "-mcpu=m32c" "-mcpu=m32cm" } } */
extern void abort (void); extern void abort (void);
......
...@@ -115,7 +115,7 @@ init_mem() ...@@ -115,7 +115,7 @@ init_mem()
"mem_hash != (prec_t)0", 370, "b.c"), "mem_hash != (prec_t)0", 370, "b.c"),
0))); 0)));
flush_hash(mem_hash, 32); 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 { struct tm {
......
/* { dg-require-effective-target int32plus } */
#include "struct-1.h" #include "struct-1.h"
struct ChainSearchRecord { struct ChainSearchRecord {
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target int32plus } */
/* { dg-options "-fdump-tree-gimple" } */ /* { dg-options "-fdump-tree-gimple" } */
int f (int a) { int f (int a) {
......
/* PR middle-end/17112 */ /* PR middle-end/17112 */
/* { dg-do run } */ /* { dg-do run } */
/* { dg-require-effective-target int32plus } */
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
extern void abort(void); extern void abort(void);
......
/* { dg-do run } */ /* { dg-do run } */
/* memset doesn't take unsigned long */
/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
/* { dg-options "-std=gnu99 -Wall -Wextra -O1" } */ /* { dg-options "-std=gnu99 -Wall -Wextra -O1" } */
extern void *memset (void*, int, unsigned long); extern void *memset (void*, int, unsigned long);
......
/* { dg-do run } */ /* { dg-do run } */
/* memset doesn't take unsigned long */
/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
/* { dg-options "-std=gnu99 -Wall -Wextra -O1" } */ /* { dg-options "-std=gnu99 -Wall -Wextra -O1" } */
extern void *memset (void*, int, unsigned long); extern void *memset (void*, int, unsigned long);
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fschedule-insns2 -fsched2-use-traces" } */ /* { 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); extern double f (double x);
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
the above expression. */ the above expression. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-effective-target int32plus } */
/* { dg-options "-O3 -ftree-vectorize" } */ /* { dg-options "-O3 -ftree-vectorize" } */
static unsigned short int crc_table[256]; static unsigned short int crc_table[256];
......
/* { dg-do run } */ /* { dg-do run } */
/* m32c is already packed. */
/* { dg-skip-if "" { "m32c-*-*" } { "*" } { "" } } */
void *memcpy(void *dest, const void *src, __SIZE_TYPE__ n); void *memcpy(void *dest, const void *src, __SIZE_TYPE__ n);
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-require-effective-target int32plus } */
extern void abort(void); extern void abort(void);
typedef unsigned int BF_word; typedef unsigned int BF_word;
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-require-effective-target int32plus } */
extern void abort(void); extern void abort(void);
int main() int main()
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-optimized" } */ /* { dg-options "-O1 -fdump-tree-optimized" } */
/* { dg-require-effective-target int32plus } */
int bar (void); int bar (void);
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-optimized" } */ /* { dg-options "-O1 -fdump-tree-optimized" } */
/* { dg-require-effective-target size32plus } */
/* Size of this structure should be sufficiently weird so that no memory /* Size of this structure should be sufficiently weird so that no memory
addressing mode applies. */ addressing mode applies. */
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-optimized" } */ /* { dg-options "-O1 -fdump-tree-optimized" } */
/* { dg-require-effective-target size32plus } */
/* Size of this structure should be sufficiently weird so that no memory /* Size of this structure should be sufficiently weird so that no memory
addressing mode applies. */ addressing mode applies. */
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */ /* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
/* { dg-require-effective-target size32plus } */
double u[1782225]; double u[1782225];
int foo(int N, int *res) int foo(int N, int *res)
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */ /* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
/* { dg-require-effective-target size32plus } */
double u[1782225]; double u[1782225];
int foo(int N, int *res) int foo(int N, int *res)
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */ /* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
/* { dg-require-effective-target size32plus } */
double u[1782225]; double u[1782225];
int foo(int N, int *res) int foo(int N, int *res)
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */ /* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
/* { dg-require-effective-target size32plus } */
double u[1782225]; double u[1782225];
int foo(int N, int *res) int foo(int N, int *res)
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-vrp1" } */ /* { dg-options "-O2 -fdump-tree-vrp1" } */
/* { dg-require-effective-target int32plus } */
void fn_call (int); void fn_call (int);
int h(int, int); int h(int, int);
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-alias-vops" } */ /* { dg-options "-O2 -fdump-tree-alias-vops" } */
/* malloc doesn't take a long */
/* { dg-xfail-if "" { "m32c-*-*" } { "*" } { "" } } */
struct a struct a
{ {
int length; int length;
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O" } */ /* { dg-options "-O" } */
/* { dg-require-effective-target int32plus } */
extern void abort (void); extern void abort (void);
typedef unsigned int u_int32; typedef unsigned int u_int32;
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
/* { dg-require-effective-target int32plus } */
void abort(void); void abort(void);
int bar(int x, int y) int bar(int x, int y)
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
/* { dg-require-effective-target int32plus } */
struct tree_decl struct tree_decl
{ {
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -ftree-vrp -fdump-tree-vrp1" } */ /* { dg-options "-O1 -ftree-vrp -fdump-tree-vrp1" } */
/* { dg-require-effective-target int32plus } */
extern void link_error (); extern void link_error ();
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O1 -ftree-vrp -fdump-tree-vrp1" } */ /* { dg-options "-O1 -ftree-vrp -fdump-tree-vrp1" } */
/* { dg-require-effective-target int32plus } */
extern void link_error (); extern void link_error ();
......
...@@ -300,6 +300,7 @@ proc check_profiling_available { test_what } { ...@@ -300,6 +300,7 @@ proc check_profiling_available { test_what } {
|| [istarget xscale*-*-elf] || [istarget xscale*-*-elf]
|| [istarget cris-*-*] || [istarget cris-*-*]
|| [istarget h8300-*-*] || [istarget h8300-*-*]
|| [istarget m32c-*-elf]
|| [istarget m68k-*-elf] || [istarget m68k-*-elf]
|| [istarget mips*-*-elf] || [istarget mips*-*-elf]
|| [istarget xtensa-*-elf] || [istarget xtensa-*-elf]
...@@ -926,6 +927,42 @@ proc check_effective_target_ilp32 { } { ...@@ -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 # Return 1 if we're generating 64-bit code using default options, 0
# otherwise. # otherwise.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment