re PR testsuite/34894 (Some compile tests require trampolines even when the target...
authorAndy Hutchinson <hutchinsonandy@aim.com>
Wed, 9 Apr 2008 23:58:39 +0000 (23:58 +0000)
committerAndy Hutchinson <hutchinsonandy@gcc.gnu.org>
Wed, 9 Apr 2008 23:58:39 +0000 (23:58 +0000)
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

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/20001226-1.c
gcc/testsuite/gcc.c-torture/compile/20010226-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/20050122-2.c
gcc/testsuite/gcc.c-torture/compile/980506-1.c
gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c
gcc/testsuite/gcc.c-torture/compile/nested-1.c
gcc/testsuite/gcc.c-torture/compile/pr27889.c
gcc/testsuite/lib/target-supports.exp

index 3e091a4ca7a381943717e81dc52e069cba80d4fa..c82950a3382a34fda77fbe549311fcb01c85366d 100644 (file)
@@ -1,3 +1,19 @@
+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>
 
        PR c++/35708
index ddea0aa0bdfb7506237e79b58c2669f67a366789..cfcf546e157f694160c04b043b4c22b4092f6b69 100644 (file)
@@ -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-*-* } { "*" } { "" } } */
 
index c06be53dc525740ef52b017bd480bc776cc3d646..f25b48390d5a6fde988a230d9f54f110d97dd0f1 100644 (file)
@@ -1,3 +1,5 @@
+/* { dg-require-effective-target trampolines } */
+
 void f1 (void *);
 void f3 (void *, void (*)(void *));
 void f2 (void *);
index 189990ade3f5f760b081a7c338a1493f55778ed1..59639e6ed961cc4baba91745beebb690c79d36f7 100644 (file)
@@ -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
index 539b9f5b27f10e52f5b413d2f0e6b5015b8b3854..17b9b2165bac15756685069bcb66c1d7b672e108 100644 (file)
@@ -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-*-* } { } { } } */
 
index d73f6243ddd5147b8c461e9242dfa0b30d0b5a00..1e297be8cb6ba06091e87c2c75e7583a7f905e0e 100644 (file)
@@ -1,4 +1,6 @@
 /* Related to PR 19484.  */
+/* { dg-require-effective-target trampolines } */
+
 extern void foo (void) __attribute__((noreturn));
 int n;
 
index 619e18d05e46d167ebe94fe6f5d29241525c3273..5c22e7e508f9f41bd74195f719e5c1a29d3d8add 100644 (file)
@@ -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];
index 22dc19b3c6e71aa22b0fbd8d2cc7a97e59f12e07..5b52c83b06182e967bf20fcded1df8306d91b85c 100644 (file)
@@ -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
index b6aa79d77aa7aea7c818c82a0c012e175b81fa92..135538a8524a154b6a04f2b601f876a471742925 100644 (file)
@@ -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);
index ca50fce707d6a0b8139b38773e7ead47c484d6c4..4e76caa5663d67b76d0c779aeb9b7f0e05794e1c 100644 (file)
@@ -1,3 +1,5 @@
+/* { dg-require-effective-target trampolines } */
+
 void h(void (*)(void));
 _Complex int g (void)
 {
index c1bdc79b5e54e23dd453dccac5d3f5c000606f18..180ce86da2e8440ee26b280711efb3a1cc917a6b 100644 (file)
@@ -383,6 +383,21 @@ proc check_gc_sections_available { } {
     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.
 
 proc check_profiling_available { test_what } {
@@ -435,6 +450,7 @@ proc check_profiling_available { test_what } {
             || [istarget arm*-*-eabi*]
             || [istarget arm*-*-elf]
             || [istarget arm*-*-symbianelf*]
+            || [istarget avr-*-*]
             || [istarget bfin-*-*]
             || [istarget powerpc-*-eabi*]
             || [istarget strongarm*-*-elf]