This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[nvptx] testsuite cleanups


This patch cleans up a bunch of c testsuite fails, (by skipping them)

1) make nvptx-*-* a freestanding environment. While there is a newlib port, it's not a full c library, and in particular doesn't have all the IO that's generally presumed.

2) added effective_target_global_constructor. nvptx lacks these, and the environment for which it's intended doesn't really need them,

3) Some tests already check 'SIGNAL_SUPPRESS' to avoid signals. Added smarts in gcc.exp to set that from the board info.

4) skip the dwarf tests entirely. PTX dwarf directives are somewhat funky and it's just meaningless noise in the testsuite right now.

5) skip tests that cause ptxas to blow up. There's no point waiting for ptxas to be fixed.

6) .. except for callind, which is fixed simply by not naming a function 'call'.

7) mul-subnormal-single-1 had a full 3 argument definition of main, but doesn't need it.

8) added check for non frestanding to a bunch of tests that require more IO than ptx can provide.

9) added check for nonlocal_goto on a bunch of tests that used setjmp (builtin or otherwise).

10) added check for global constructor on a test.

11) added checks for profiling on some tests that check profiling.

This isn't a full cleanup, but a first pass to remove a bunch of false negatives. I expect further cleanups and/or fixes later.

Any comments or objections?

nathan
2015-08-19  Nathan Sidwell  <nathan@acm.org>

	* lib/target-supports.exp (check_effective_target_freestanding):
	nvptx is freestanding.
	(check_effective_target_global_constructor): New.
	* lib/gcc.exp (gcc_target_compile): Set SIGNAL_SUPPRESS if needed.
	* gcc.dg/debug/debug.exp: Skip  for nvptx.
	* gcc.dg/debug/dwarf2/dwarf2.exp: Likewise.

	* gcc.c-torture/execute/981019-1.c: Ptx assembler bug.
	* gcc.c-torture/compile/limits-externdecl.c: Likewise.
	* gcc.c-torture/compile/pr33855.c: Likewise.
	* gcc.c-torture/compile/920723-1.c: Likewise.

	* gcc.c-torture/compile/callind.c: Change name to avoid ptxas bug.

	* gcc.c-torture/execute/ieee/mul-subnormal-single-1.c: Adjust main
	decl to be more normal.

	* gcc.c-torture/execute/pr34456.c: Require not freestanding
	* gcc.c-torture/execute/vprintf-chk-1.c: Likewise.
	* gcc.c-torture/execute/vfprintf-1.c: Likewise.
	* gcc.c-torture/execute/gofast.c: Likewise.
	* gcc.c-torture/execute/fprintf-1.c: Likewise.
	* gcc.c-torture/execute/fprintf-chk-1.c: Likewise.
	* gcc.c-torture/execute/vprintf-1.c: Likewise.
	* gcc.c-torture/execute/vfprintf-chk-1.c: Likewise.

	* gcc.c-torture/execute/builtins/sprintf-chk.x: Require nonlocal goto.
	* gcc.c-torture/execute/builtins/snprintf-chk.x: Likewise.
	* gcc.c-torture/execute/builtins/memmove-chk.x: Likewise.
	* gcc.c-torture/execute/builtins/stpcpy-chk.x: Likewise.
	* gcc.c-torture/execute/builtins/memcpy-chk.x: Likewise.
	* gcc.c-torture/execute/builtins/mempcpy-chk.x: Likewise.
	* gcc.c-torture/execute/builtins/vsnprintf-chk.x: Likewise.
	* gcc.c-torture/execute/builtins/memset-chk.x: Likewise.
	* gcc.c-torture/execute/builtins/strcpy-chk.x: Likewise.
	* gcc.c-torture/execute/builtins/strcat-chk.x: Likewise.
	* gcc.c-torture/execute/builtins/stpncpy-chk.x: Likewise.
	* gcc.c-torture/execute/builtins/strncpy-chk.x: Likewise.
	* gcc.c-torture/execute/builtins/vsprintf-chk.x: Likewise.
	* gcc.c-torture/execute/builtins/strncat-chk.x: Likewise.
	* gcc.dg/setjmp-1.c: Likewise.
	* gcc.dg/cleanup-12.c: Likewise.
	* gcc.dg/cleanup-13.c: Likewise.
	* gcc.dg/cleanup-5.c: Likewise.

	* gcc.dg/constructor-1.c: Require global ctor.

	* gcc.dg/fork-instrumentation.c: Require profiling.
	* gcc.dg/20030107-1.c: Likewise.
	* gcc.dg/20030702-1.c: Likewise.

Index: lib/target-supports.exp
===================================================================
--- lib/target-supports.exp	(revision 453995)
+++ lib/target-supports.exp	(working copy)
@@ -580,7 +580,10 @@ proc check_profiling_available { test_wh
 # in Section 4 of C99 standard. Effectively, it is a target which supports no
 # extra headers or libraries other than what is considered essential.
 proc check_effective_target_freestanding { } {
-	return 0
+    if { [istarget nvptx-*-*] } {
+	return 1
+    }
+    return 0
 }
 
 # Return 1 if target has packed layout of structure members by
@@ -641,6 +644,15 @@ proc check_effective_target_nonlocal_got
     if { [istarget nvptx-*-*] } {
 	return 0
     }
+    return 1
+}
+
+# Return 1 if global constructors are supported, 0 otherwise.
+
+proc check_effective_target_global_constructor {} {
+    if { [istarget nvptx-*-*] } {
+	return 0
+    }
     return 1
 }
 
Index: lib/gcc.exp
===================================================================
--- lib/gcc.exp	(revision 453995)
+++ lib/gcc.exp	(working copy)
@@ -150,6 +150,9 @@ proc gcc_target_compile { source dest ty
     if [target_info exists gcc,no_label_values] {
 	lappend options "additional_flags=-DNO_LABEL_VALUES"
     }
+    if [target_info exists gcc,signal_suppress] {
+	lappend options "additional_flags=-DSIGNAL_SUPPRESS"
+    }
 
     # TEST_ALWAYS_FLAGS are flags that should be passed to every
     # compilation.  They are passed first to allow individual
Index: gcc.dg/debug/debug.exp
===================================================================
--- gcc.dg/debug/debug.exp	(revision 453995)
+++ gcc.dg/debug/debug.exp	(working copy)
@@ -19,6 +19,11 @@
 # Load support procs.
 load_lib gcc-dg.exp
 
+# Disable on ptx
+if { [istarget nvptx-*-*] } {
+    return
+}
+
 # Initialize `dg'.
 dg-init
 
Index: gcc.dg/debug/dwarf2/dwarf2.exp
===================================================================
--- gcc.dg/debug/dwarf2/dwarf2.exp	(revision 453995)
+++ gcc.dg/debug/dwarf2/dwarf2.exp	(working copy)
@@ -19,6 +19,11 @@
 # Load support procs.
 load_lib gcc-dg.exp
 
+# Disable on ptx
+if { [istarget nvptx-*-*] } {
+    return
+}
+
 # If a testcase doesn't have special options, use these.
 global DEFAULT_CFLAGS
 if ![info exists DEFAULT_CFLAGS] then {
Index: gcc.c-torture/execute/pr34456.c
===================================================================
--- gcc.c-torture/execute/pr34456.c	(revision 453995)
+++ gcc.c-torture/execute/pr34456.c	(working copy)
@@ -1,3 +1,5 @@
+/* { dg-skip-if "requires qsort" { ! freestanding } { "*" } { "" } }  */
+
 #include <stdlib.h>
 
 int __attribute__ ((noinline)) debug (void) { return 1; }
Index: gcc.c-torture/execute/vprintf-chk-1.c
===================================================================
--- gcc.c-torture/execute/vprintf-chk-1.c	(revision 453995)
+++ gcc.c-torture/execute/vprintf-chk-1.c	(working copy)
@@ -1,3 +1,5 @@
+/* { dg-skip-if "requires io" { ! freestanding } { "*" } { "" } }  */
+
 #ifndef test
 #include <stdio.h>
 #include <stdlib.h>
Index: gcc.c-torture/execute/981019-1.c
===================================================================
--- gcc.c-torture/execute/981019-1.c	(revision 453995)
+++ gcc.c-torture/execute/981019-1.c	(working copy)
@@ -1,3 +1,5 @@
+/* { dg-skip-if "ptxas seg faults" { nvptx-*-* } { "-O2" } { "" } } */
+
 extern int f2(void);
 extern int f3(void);
 extern void f1(void);
Index: gcc.c-torture/execute/vfprintf-1.c
===================================================================
--- gcc.c-torture/execute/vfprintf-1.c	(revision 453995)
+++ gcc.c-torture/execute/vfprintf-1.c	(working copy)
@@ -1,3 +1,5 @@
+/* { dg-skip-if "requires io" { ! freestanding } { "*" } { "" } }  */
+
 #ifndef test
 #include <stdio.h>
 #include <stdlib.h>
Index: gcc.c-torture/execute/gofast.c
===================================================================
--- gcc.c-torture/execute/gofast.c	(revision 453995)
+++ gcc.c-torture/execute/gofast.c	(working copy)
@@ -1,3 +1,5 @@
+/* { dg-skip-if "requires io" { ! freestanding } { "*" } { "" } }  */
+
 /* Program to test gcc's usage of the gofast library.  */
 
 /* The main guiding themes are to make it trivial to add test cases over time
Index: gcc.c-torture/execute/fprintf-1.c
===================================================================
--- gcc.c-torture/execute/fprintf-1.c	(revision 453995)
+++ gcc.c-torture/execute/fprintf-1.c	(working copy)
@@ -1,3 +1,5 @@
+/* { dg-skip-if "requires io" { ! freestanding } { "*" } { "" } }  */
+
 #include <stdio.h>
 #include <stdlib.h>
 
Index: gcc.c-torture/execute/ieee/mul-subnormal-single-1.c
===================================================================
--- gcc.c-torture/execute/ieee/mul-subnormal-single-1.c	(revision 453995)
+++ gcc.c-torture/execute/ieee/mul-subnormal-single-1.c	(working copy)
@@ -57,7 +57,7 @@ struct
   };
 
 int
-main (int argc, char *argv[], char *envp[])
+main ()
 {
   unsigned int i;
 
Index: gcc.c-torture/execute/builtins/sprintf-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/sprintf-chk.x	(revision 453995)
+++ gcc.c-torture/execute/builtins/sprintf-chk.x	(working copy)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
 if [istarget "epiphany-*-*"] {
     # This test assumes the absence of struct padding.
     # to make this true for test3 struct A on epiphany would require
Index: gcc.c-torture/execute/builtins/snprintf-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/snprintf-chk.x	(revision 453995)
+++ gcc.c-torture/execute/builtins/snprintf-chk.x	(working copy)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
 if [istarget "epiphany-*-*"] {
     # This test assumes the absence of struct padding.
     # to make this true for test3 struct A on epiphany would require
Index: gcc.c-torture/execute/builtins/memmove-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/memmove-chk.x	(revision 453995)
+++ gcc.c-torture/execute/builtins/memmove-chk.x	(working copy)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
 if [istarget "epiphany-*-*"] {
     # This test assumes the absence of struct padding.
     # to make this true for test5 struct A on epiphany would require
Index: gcc.c-torture/execute/builtins/stpcpy-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/stpcpy-chk.x	(revision 453995)
+++ gcc.c-torture/execute/builtins/stpcpy-chk.x	(working copy)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
 if [istarget "epiphany-*-*"] {
     # This test assumes the absence of struct padding.
     # to make this true for test4 struct A on epiphany would require
Index: gcc.c-torture/execute/builtins/memcpy-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/memcpy-chk.x	(revision 453995)
+++ gcc.c-torture/execute/builtins/memcpy-chk.x	(working copy)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
 if [istarget "epiphany-*-*"] {
     # This test assumes the absence of struct padding.
     # to make this true for test4 struct A on epiphany would require
Index: gcc.c-torture/execute/builtins/mempcpy-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/mempcpy-chk.x	(revision 453995)
+++ gcc.c-torture/execute/builtins/mempcpy-chk.x	(working copy)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
 if [istarget "epiphany-*-*"] {
     # This test assumes the absence of struct padding.
     # to make this true for test4 struct A on epiphany would require
Index: gcc.c-torture/execute/builtins/vsnprintf-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/vsnprintf-chk.x	(revision 453995)
+++ gcc.c-torture/execute/builtins/vsnprintf-chk.x	(working copy)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
 if [istarget "epiphany-*-*"] {
     # This test assumes the absence of struct padding.
     # to make this true for test3_sub struct A on epiphany would require
Index: gcc.c-torture/execute/builtins/memset-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/memset-chk.x	(revision 453995)
+++ gcc.c-torture/execute/builtins/memset-chk.x	(working copy)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
 if [istarget "epiphany-*-*"] {
     # This test assumes the absence of struct padding.
     # to make this true for test3 struct A on epiphany would require
Index: gcc.c-torture/execute/builtins/strcpy-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/strcpy-chk.x	(revision 453995)
+++ gcc.c-torture/execute/builtins/strcpy-chk.x	(working copy)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
 if [istarget "epiphany-*-*"] {
     # This test assumes the absence of struct padding.
     # to make this true for test4 struct A on epiphany would require
Index: gcc.c-torture/execute/builtins/strcat-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/strcat-chk.x	(revision 453995)
+++ gcc.c-torture/execute/builtins/strcat-chk.x	(working copy)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
 if [istarget "epiphany-*-*"] {
     # This test assumes the absence of struct padding.
     # to make this true for test3 struct A on epiphany would require
Index: gcc.c-torture/execute/builtins/stpncpy-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/stpncpy-chk.x	(revision 453995)
+++ gcc.c-torture/execute/builtins/stpncpy-chk.x	(working copy)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
 if [istarget "epiphany-*-*"] {
     # This test assumes the absence of struct padding.
     # to make this true for test4 struct A on epiphany would require
Index: gcc.c-torture/execute/builtins/strncpy-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/strncpy-chk.x	(revision 453995)
+++ gcc.c-torture/execute/builtins/strncpy-chk.x	(working copy)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
 if [istarget "epiphany-*-*"] {
     # This test assumes the absence of struct padding.
     # to make this true for test4 struct A on epiphany would require
Index: gcc.c-torture/execute/builtins/vsprintf-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/vsprintf-chk.x	(revision 453995)
+++ gcc.c-torture/execute/builtins/vsprintf-chk.x	(working copy)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
 if [istarget "epiphany-*-*"] {
     # This test assumes the absence of struct padding.
     # to make this true for test3_sub struct A on epiphany would require
Index: gcc.c-torture/execute/builtins/strncat-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/strncat-chk.x	(revision 453995)
+++ gcc.c-torture/execute/builtins/strncat-chk.x	(working copy)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
 if [istarget "epiphany-*-*"] {
     # This test assumes the absence of struct padding.
     # to make this true for test3 struct A on epiphany would require
Index: gcc.c-torture/execute/fprintf-chk-1.c
===================================================================
--- gcc.c-torture/execute/fprintf-chk-1.c	(revision 453995)
+++ gcc.c-torture/execute/fprintf-chk-1.c	(working copy)
@@ -1,3 +1,5 @@
+/* { dg-skip-if "requires io" { ! freestanding } { "*" } { "" } }  */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
Index: gcc.c-torture/execute/vprintf-1.c
===================================================================
--- gcc.c-torture/execute/vprintf-1.c	(revision 453995)
+++ gcc.c-torture/execute/vprintf-1.c	(working copy)
@@ -1,3 +1,5 @@
+/* { dg-skip-if "requires io" { ! freestanding } { "*" } { "" } }  */
+
 #ifndef test
 #include <stdio.h>
 #include <stdlib.h>
Index: gcc.c-torture/execute/vfprintf-chk-1.c
===================================================================
--- gcc.c-torture/execute/vfprintf-chk-1.c	(revision 453995)
+++ gcc.c-torture/execute/vfprintf-chk-1.c	(working copy)
@@ -1,3 +1,5 @@
+/* { dg-skip-if "requires io" { ! freestanding } { "*" } { "" } }  */
+
 #ifndef test
 #include <stdio.h>
 #include <stdlib.h>
Index: gcc.c-torture/compile/limits-externdecl.c
===================================================================
--- gcc.c-torture/compile/limits-externdecl.c	(revision 453995)
+++ gcc.c-torture/compile/limits-externdecl.c	(working copy)
@@ -1,3 +1,5 @@
+/* { dg-skip-if "ptxas runs out of memory" { nvptx-*-* } { "*" } { "" } } */
+
 /* { dg-require-effective-target int32plus } */
 /* Inspired by the test case for PR middle-end/52640.  */
 
Index: gcc.c-torture/compile/pr33855.c
===================================================================
--- gcc.c-torture/compile/pr33855.c	(revision 453995)
+++ gcc.c-torture/compile/pr33855.c	(working copy)
@@ -1,3 +1,4 @@
+/* { dg-skip-if "ptxas seg faults" { nvptx-*-* } { "-O1" } { "" } } */
 /* Testcase by Martin Michlmayr <tbm@cyrius.com> */
 /* Used to segfault due to cselim not marking the complex temp var
    as GIMPLE reg.  */
Index: gcc.c-torture/compile/920723-1.c
===================================================================
--- gcc.c-torture/compile/920723-1.c	(revision 453995)
+++ gcc.c-torture/compile/920723-1.c	(working copy)
@@ -1,3 +1,5 @@
+/* { dg-skip-if "ptxas seg faults" { nvptx-*-* } { "-O2" } { "" } } */
+
 #if defined(STACK_SIZE) && STACK_SIZE < 65536
 # define GITT_SIZE 75
 #endif
Index: gcc.c-torture/compile/callind.c
===================================================================
--- gcc.c-torture/compile/callind.c	(revision 453995)
+++ gcc.c-torture/compile/callind.c	(working copy)
@@ -1,8 +1,8 @@
-call (foo, a)
+bar (foo, a)
      int (**foo) ();
 {
 
-  (foo)[1] = call;
+  (foo)[1] = bar;
 
   foo[a] (1);
 }
Index: gcc.dg/constructor-1.c
===================================================================
--- gcc.dg/constructor-1.c	(revision 453995)
+++ gcc.dg/constructor-1.c	(working copy)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2" } */
+/* { dg-skip-if "" { ! global_constructor } { "*" } { "" } } */
 
 /* The ipa-split pass pulls the body of the if(!x) block
    into a separate function to make foo a better inlining
Index: gcc.dg/fork-instrumentation.c
===================================================================
--- gcc.dg/fork-instrumentation.c	(revision 453995)
+++ gcc.dg/fork-instrumentation.c	(working copy)
@@ -1,5 +1,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O0 -fprofile-generate" } */
+/* { dg-require-profiling "-fprofile-generate" } */
+
 int fork(void);
 int
 t()
Index: gcc.dg/setjmp-1.c
===================================================================
--- gcc.dg/setjmp-1.c	(revision 453995)
+++ gcc.dg/setjmp-1.c	(working copy)
@@ -3,6 +3,7 @@
 
 /* { dg-do compile } */
 /* { dg-options "-O -Wclobbered -Wextra -Wall" } */
+/* { dg-skip-if "" { ! nonlocal_goto } { "*" } { "" } } */
 
 #include <setjmp.h>
 
Index: gcc.dg/cleanup-12.c
===================================================================
--- gcc.dg/cleanup-12.c	(revision 453995)
+++ gcc.dg/cleanup-12.c	(working copy)
@@ -3,6 +3,7 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -fexceptions" } */
 /* { dg-skip-if "" { "ia64-*-hpux11.*" }  { "*" } { "" } } */
+/* { dg-skip-if "" { ! nonlocal_goto } { "*" } { "" } } */
 /* Verify unwind info in presence of alloca.  */
 
 #include <unwind.h>
Index: gcc.dg/20030107-1.c
===================================================================
--- gcc.dg/20030107-1.c	(revision 453995)
+++ gcc.dg/20030107-1.c	(working copy)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-fprofile-arcs" } */
+/* { dg-require-profiling "-fprofile-generate" } */
 
 extern void bar(void) __attribute__((noreturn));
 int foo (void) { bar(); }
Index: gcc.dg/20030702-1.c
===================================================================
--- gcc.dg/20030702-1.c	(revision 453995)
+++ gcc.dg/20030702-1.c	(working copy)
@@ -3,6 +3,7 @@
 /* { dg-do compile { target fpic } } */
 /* { dg-options "-O2 -fpic -fprofile-arcs" } */
 /* { dg-skip-if "requires unsupported run-time relocation" { spu-*-* } { "*" } { "" } } */
+/* { dg-require-profiling "-fprofile-generate" } */
 
 int fork (void);
 
Index: gcc.dg/cleanup-13.c
===================================================================
--- gcc.dg/cleanup-13.c	(revision 453995)
+++ gcc.dg/cleanup-13.c	(working copy)
@@ -2,6 +2,7 @@
 /* { dg-do run } */
 /* { dg-options "-fexceptions" } */
 /* { dg-skip-if "" { "ia64-*-hpux11.*" }  { "*" } { "" } } */
+/* { dg-skip-if "" { ! nonlocal_goto } { "*" } { "" } } */
 /* Verify DW_OP_* handling in the unwinder.  */
 
 #include <unwind.h>
Index: gcc.dg/cleanup-5.c
===================================================================
--- gcc.dg/cleanup-5.c	(revision 453995)
+++ gcc.dg/cleanup-5.c	(working copy)
@@ -2,6 +2,7 @@
 /* { dg-do run } */
 /* { dg-options "-fexceptions" } */
 /* { dg-skip-if "" { "ia64-*-hpux11.*" }  { "*" } { "" } } */
+/* { dg-skip-if "" { ! nonlocal_goto } { "*" } { "" } } */
 /* Verify that cleanups work with exception handling.  */
 
 #include <unwind.h>

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]