Commit a21f9a56 by Andy Hutchinson Committed by Andy Hutchinson

re PR testsuite/34894 (Some compile tests require trampolines even when the…

re PR testsuite/34894 (Some compile tests require trampolines even when the target sets no_trampolines)

2008-04-09  Andy Hutchinson  <hutchinsonandy@aim.com>

	PR testsuite/34894
	PR testsuite/33782
	* lib/target-supports.dg: Add check_effective_target_trampolines.
	Disable profiling for avr-*-*.
	* gcc.c-torture/compile/pr27889.c: dg-requires trampolines.
	* gcc.c-torture/compile/nested-1.c: Ditto.
	* gcc.c-torture/compile/20050122-2.c: Ditto.
	* gcc.c-torture/compile/20010226-1.c: Ditto.
	* gcc.c-torture/compile/20010327-1.c:  Skip for avr-*-*.
	* gcc.c-torture/compile/980506-1.c: Ditto.
	* gcc.c-torture/compile/20020604-1.c: Ditto.
	* gcc.c-torture/compile/limits-stringlit.c: Ditto
	* gcc.c-torture/compile/20001226-1.c: Ditto

From-SVN: r134153
parent df794884
2008-04-09 Andy Hutchinson <hutchinsonandy@aim.com>
PR testsuite/34894
PR testsuite/33782
* lib/target-supports.dg: Add check_effective_target_trampolines.
Disable profiling for avr-*-*.
* gcc.c-torture/compile/pr27889.c: dg-requires trampolines.
* gcc.c-torture/compile/nested-1.c: Ditto.
* gcc.c-torture/compile/20050122-2.c: Ditto.
* gcc.c-torture/compile/20010226-1.c: Ditto.
* gcc.c-torture/compile/20010327-1.c: Skip for avr-*-*.
* gcc.c-torture/compile/980506-1.c: Ditto.
* gcc.c-torture/compile/20020604-1.c: Ditto.
* gcc.c-torture/compile/limits-stringlit.c: Ditto
* gcc.c-torture/compile/20001226-1.c: Ditto
2008-04-09 Jason Merrill <jason@redhat.com> 2008-04-09 Jason Merrill <jason@redhat.com>
PR c++/35708 PR c++/35708
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
than 64K. */ than 64K. */
/* { dg-do assemble } */ /* { dg-do assemble } */
/* { dg-xfail-if "function larger than 64K" { m6811-*-* } { "*" } { "" } } */ /* { 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-xfail-if "jump beyond 128K not supported" { xtensa-*-* } { "-O0" } { "" } } */
/* { dg-skip-if "" { m32c-*-* } { "*" } { "" } } */ /* { dg-skip-if "" { m32c-*-* } { "*" } { "" } } */
......
/* { dg-require-effective-target trampolines } */
void f1 (void *); void f1 (void *);
void f3 (void *, void (*)(void *)); void f3 (void *, void (*)(void *));
void f2 (void *); void f2 (void *);
......
/* { dg-skip-if "non-SI pointers" { m32c-*-* } { "*" } { "" } } */ /* { 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 /* 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
......
/* { dg-do assemble } */ /* { dg-do assemble } */
/* { dg-xfail-if "The array is too big" { "m6811-*-* m6812-*-*" } { "*" } { "" } } */ /* { 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-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" "-mn" } { "" } } */
/* { dg-skip-if "" { m32c-*-* } { } { } } */ /* { dg-skip-if "" { m32c-*-* } { } { } } */
......
/* Related to PR 19484. */ /* Related to PR 19484. */
/* { dg-require-effective-target trampolines } */
extern void foo (void) __attribute__((noreturn)); extern void foo (void) __attribute__((noreturn));
int n; int n;
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
/* { dg-do assemble } */ /* { dg-do assemble } */
/* { dg-require-effective-target size32plus } */ /* { dg-require-effective-target size32plus } */
/* { dg-xfail-if "The array too big" { m6811-*-* m6812-*-* } { "*" } { "" } } /* /* { 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" } { "" } } */ /* { dg-xfail-if "The array too big" { h8300-*-* } { "-mno-h" "-mn" } { "" } } */
unsigned char TIFFFax2DMode[20][256]; unsigned char TIFFFax2DMode[20][256];
......
/* { dg-skip-if "Array too big" { "avr-*-*" } { "*" } { "" } } */
#define STR2 "012345678901234567890123456789012345678901234567890123456789\ #define STR2 "012345678901234567890123456789012345678901234567890123456789\
0123456789012345678901234567890123456789" 0123456789012345678901234567890123456789"
#define STR3 STR2 STR2 STR2 STR2 STR2 STR2 STR2 STR2 STR2 STR2 #define STR3 STR2 STR2 STR2 STR2 STR2 STR2 STR2 STR2 STR2 STR2
......
/* { dg-require-effective-target trampolines } */
typedef __SIZE_TYPE__ size_t; typedef __SIZE_TYPE__ size_t;
extern int printf (const char *, ...); extern int printf (const char *, ...);
extern void *memset (void *, int, size_t); extern void *memset (void *, int, size_t);
......
/* { dg-require-effective-target trampolines } */
void h(void (*)(void)); void h(void (*)(void));
_Complex int g (void) _Complex int g (void)
{ {
......
...@@ -383,6 +383,21 @@ proc check_gc_sections_available { } { ...@@ -383,6 +383,21 @@ proc check_gc_sections_available { } {
return $gc_sections_available_saved return $gc_sections_available_saved
} }
# Return 1 if according to target_info struct and explicit target list
# target is supposed to support trampolines.
proc check_effective_target_trampolines { } {
if [target_info exists no_trampolines] {
return 0
}
if { [istarget avr-*-*]
|| [istarget hppa2.0w-hp-hpux11.23]
|| [istarget hppa64-hp-hpux11.23] } {
return 0;
}
return 1
}
# Return true if profiling is supported on the target. # Return true if profiling is supported on the target.
proc check_profiling_available { test_what } { proc check_profiling_available { test_what } {
...@@ -435,6 +450,7 @@ proc check_profiling_available { test_what } { ...@@ -435,6 +450,7 @@ proc check_profiling_available { test_what } {
|| [istarget arm*-*-eabi*] || [istarget arm*-*-eabi*]
|| [istarget arm*-*-elf] || [istarget arm*-*-elf]
|| [istarget arm*-*-symbianelf*] || [istarget arm*-*-symbianelf*]
|| [istarget avr-*-*]
|| [istarget bfin-*-*] || [istarget bfin-*-*]
|| [istarget powerpc-*-eabi*] || [istarget powerpc-*-eabi*]
|| [istarget strongarm*-*-elf] || [istarget strongarm*-*-elf]
......
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