diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20001226-1.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20010226-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20010327-1.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20020604-1.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20050122-2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/980506-1.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/nested-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr27889.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr35869.c | 47 |
10 files changed, 61 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/20001226-1.c b/gcc/testsuite/gcc.c-torture/compile/20001226-1.c index ddea0aa0bdf..cfcf546e157 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 } */ /* { dg-xfail-if "function larger than 64K" { m6811-*-* } { "*" } { "" } } */ +/* { dg-skip-if "too much code for avr" { "avr-*-*" } { "*" } { "" } } */ /* { dg-xfail-if "jump beyond 128K not supported" { xtensa-*-* } { "-O0" } { "" } } */ /* { dg-skip-if "" { m32c-*-* } { "*" } { "" } } */ diff --git a/gcc/testsuite/gcc.c-torture/compile/20010226-1.c b/gcc/testsuite/gcc.c-torture/compile/20010226-1.c index c06be53dc52..f25b48390d5 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20010226-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/20010226-1.c @@ -1,3 +1,5 @@ +/* { dg-require-effective-target trampolines } */ + void f1 (void *); void f3 (void *, void (*)(void *)); void f2 (void *); diff --git a/gcc/testsuite/gcc.c-torture/compile/20010327-1.c b/gcc/testsuite/gcc.c-torture/compile/20010327-1.c index 189990ade3f..59639e6ed96 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20010327-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/20010327-1.c @@ -1,4 +1,5 @@ /* { dg-skip-if "non-SI pointers" { m32c-*-* } { "*" } { "" } } */ +/* { dg-skip-if "HI mode pointer for avr" { "avr-*-*" } { "*" } { "" } } */ /* This testcase tests whether GCC can produce static initialized data that references addresses of size 'unsigned long', even if that's not diff --git a/gcc/testsuite/gcc.c-torture/compile/20020604-1.c b/gcc/testsuite/gcc.c-torture/compile/20020604-1.c index 539b9f5b27f..17b9b2165ba 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20020604-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/20020604-1.c @@ -1,5 +1,6 @@ /* { dg-do assemble } */ /* { dg-xfail-if "The array is too big" { "m6811-*-* m6812-*-*" } { "*" } { "" } } */ +/* { dg-skip-if "The array is too big" { "avr-*-*" } { "*" } { "" } } */ /* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" "-mn" } { "" } } */ /* { dg-skip-if "" { m32c-*-* } { } { } } */ diff --git a/gcc/testsuite/gcc.c-torture/compile/20050122-2.c b/gcc/testsuite/gcc.c-torture/compile/20050122-2.c index d73f6243ddd..1e297be8cb6 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20050122-2.c +++ b/gcc/testsuite/gcc.c-torture/compile/20050122-2.c @@ -1,4 +1,6 @@ /* Related to PR 19484. */ +/* { dg-require-effective-target trampolines } */ + extern void foo (void) __attribute__((noreturn)); int n; diff --git a/gcc/testsuite/gcc.c-torture/compile/980506-1.c b/gcc/testsuite/gcc.c-torture/compile/980506-1.c index 619e18d05e4..5c22e7e508f 100644 --- a/gcc/testsuite/gcc.c-torture/compile/980506-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/980506-1.c @@ -2,6 +2,7 @@ /* { dg-do assemble } */ /* { dg-require-effective-target size32plus } */ /* { dg-xfail-if "The array too big" { m6811-*-* m6812-*-* } { "*" } { "" } } /* +/* { dg-skip-if "Array too big" { "avr-*-*" } { "*" } { "" } } */ /* { dg-xfail-if "The array too big" { h8300-*-* } { "-mno-h" "-mn" } { "" } } */ unsigned char TIFFFax2DMode[20][256]; diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c b/gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c index 22dc19b3c6e..5b52c83b061 100644 --- a/gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c +++ b/gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "Array too big" { "avr-*-*" } { "*" } { "" } } */ + #define STR2 "012345678901234567890123456789012345678901234567890123456789\ 0123456789012345678901234567890123456789" #define STR3 STR2 STR2 STR2 STR2 STR2 STR2 STR2 STR2 STR2 STR2 diff --git a/gcc/testsuite/gcc.c-torture/compile/nested-1.c b/gcc/testsuite/gcc.c-torture/compile/nested-1.c index b6aa79d77aa..135538a8524 100644 --- a/gcc/testsuite/gcc.c-torture/compile/nested-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/nested-1.c @@ -1,3 +1,5 @@ +/* { dg-require-effective-target trampolines } */ + typedef __SIZE_TYPE__ size_t; extern int printf (const char *, ...); extern void *memset (void *, int, size_t); diff --git a/gcc/testsuite/gcc.c-torture/compile/pr27889.c b/gcc/testsuite/gcc.c-torture/compile/pr27889.c index ca50fce707d..4e76caa5663 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr27889.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr27889.c @@ -1,3 +1,5 @@ +/* { dg-require-effective-target trampolines } */ + void h(void (*)(void)); _Complex int g (void) { diff --git a/gcc/testsuite/gcc.c-torture/compile/pr35869.c b/gcc/testsuite/gcc.c-torture/compile/pr35869.c new file mode 100644 index 00000000000..e83c0e86bed --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr35869.c @@ -0,0 +1,47 @@ +struct texture_stage_op +{ + unsigned int carg1, carg2, carg0; + unsigned int aarg1, aarg2, aarg0; + unsigned int dst; +}; + +static const char *debug_register(unsigned int reg) { + switch(reg) { + case 0x8921: return "GL_REG_0_ATI"; + case 0x8923: return "GL_REG_2_ATI"; + case 0x0: return "GL_ZERO"; + case 0x1: return "GL_ONE"; + default: return "Unknown register\n"; + } +} + +static unsigned int find_tmpreg(struct texture_stage_op op[8]) { + int i; + int tex_used[8]; + + for(i = 0; i < 8; i++) { + if(op[i].carg1 == 0x00000002 ) { + tex_used[i] = 1; + } + } + + for(i = 1; i < 6; i++) { + if(!tex_used[i]) { + return 0x8921 + i; + } + } + return 0; +} + +extern f(const char*); + +void g() { + struct texture_stage_op op[8]; + unsigned int tmparg = find_tmpreg(op); + unsigned int dstreg; + + if(tmparg == 0x0) return; + dstreg = tmparg; + f(debug_register(dstreg)); + return; +} |