On 08/19/15 16:28, Nathan Sidwell wrote:
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?

this version catches a few more cases and fixes a thinko about the sense of the condition in skip-if. I also tested on x86_64-linux to make sure I wasn't inadvertently skipping tests on at least one non-nvptx target.

nathan
2015-08-20  Nathan Sidwell  <nat...@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/pr35468.c: Ptx assembler objects to
	writing a const.
	* gcc.c-torture/compile/mangle-1.c: Ptx assembler objects to . in
	label.
	* gcc.c-torture/compile/callind.c: Ptx assembler objects to label
	'call'.

	* gcc.c-torture/execute/ieee/mul-subnormal-single-1.c: Make main
	prototype normal.
	* gcc.c-torture/execute/switch-1.c: Likewise.

	* gcc.c-torture/execute/pr34456.c: Require not freestanding
	* gcc.c-torture/execute/printf-1.c: Likewise.
	* gcc.c-torture/execute/printf-chk-1.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/vprintf-chk-1.c: Likewise.
	* gcc.c-torture/execute/vfprintf-1.c: Likewise.
	* gcc.c-torture/execute/vfprintf-chk-1.c: Likewise.
	* gcc.c-torture/execute/builtins/fputs.c: Likewise.
	* gcc.c-torture/execute/gofast.c: Likewise.
	* gcc.c-torture/execute/complex-6.c: Likewise.

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

	* gcc.dg/cpp/lexstrng.c: Avoid IO unless debugging.
	* gcc.dg/cpp/paste2.c: Likewise.
	* gcc.dg/cpp/strify3.c: Likewise.
	* gcc.dg/cpp/strify4.c: Likewise.
	* gcc.dg/cpp/lexnum.c: Likewise.
	* gcc.dg/cpp/digraphs.c: Likewise.
	* gcc.dg/cpp/macro1.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.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" "-O3*" } { "" } } */
+
 extern int f2(void);
 extern int f3(void);
 extern void f1(void);
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 <t...@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/pr35468.c
===================================================================
--- gcc.c-torture/compile/pr35468.c	(revision 453995)
+++ gcc.c-torture/compile/pr35468.c	(working copy)
@@ -1,4 +1,5 @@
 /* PR tree-optimization/35468 */
+/* { dg-do compile } */
 
 void
 foo (void)
Index: gcc.c-torture/compile/mangle-1.c
===================================================================
--- gcc.c-torture/compile/mangle-1.c	(revision 453995)
+++ gcc.c-torture/compile/mangle-1.c	(working copy)
@@ -1,9 +1,17 @@
+
+#if __nvptx__
+/* Doesn't like . in labels.  */
+#define SEP "$"
+#else
+#define SEP "."
+#endif
+
 int foo(void)
 {
   static int x asm ("x") = 3;
   return x++;
 }
 
-int X2 asm ("x.0") = 4;
-int X3 asm ("_x.0") = 5;
+int X2 asm ("x" SEP "0") = 4;
+int X3 asm ("_x" SEP "0") = 5;
 
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.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/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/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/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/printf-1.c
===================================================================
--- gcc.c-torture/execute/printf-1.c	(revision 453995)
+++ gcc.c-torture/execute/printf-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/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/execute/complex-6.c
===================================================================
--- gcc.c-torture/execute/complex-6.c	(revision 453995)
+++ gcc.c-torture/execute/complex-6.c	(working copy)
@@ -1,3 +1,5 @@
+/* { dg-skip-if "requires io" { freestanding } { "*" } { "" } }  */
+
 /* This test tests complex conjugate and passing/returning of
    complex parameter.  */
 
Index: gcc.c-torture/execute/switch-1.c
===================================================================
--- gcc.c-torture/execute/switch-1.c	(revision 453995)
+++ gcc.c-torture/execute/switch-1.c	(working copy)
@@ -22,7 +22,7 @@ foo (int x)
 }
 
 int
-main (int argc)
+main ()
 {
   int i, r;
 
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/printf-chk-1.c
===================================================================
--- gcc.c-torture/execute/printf-chk-1.c	(revision 453995)
+++ gcc.c-torture/execute/printf-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/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/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/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/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/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/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/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/fputs.c
===================================================================
--- gcc.c-torture/execute/builtins/fputs.c	(revision 453995)
+++ gcc.c-torture/execute/builtins/fputs.c	(working copy)
@@ -1,3 +1,5 @@
+/* { dg-skip-if "requires io" { freestanding } { "*" } { "" } }  */
+
 /* Copyright (C) 2000, 2001  Free Software Foundation.
 
    Ensure all expected transformations of builtin fputs occur and that
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/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/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/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.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/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/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/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.dg/cpp/lexstrng.c
===================================================================
--- gcc.dg/cpp/lexstrng.c	(revision 453995)
+++ gcc.dg/cpp/lexstrng.c	(working copy)
@@ -11,7 +11,11 @@
 typedef __WCHAR_TYPE__ wchar_t;
 
 extern int strcmp (const char *, const char *);
+#if DEBUG
 extern int puts (const char *);
+#else
+#define puts(X)
+#endif
 extern void abort (void);
 #define err(str) do { puts(str); abort(); } while (0)
 
Index: gcc.dg/cpp/paste2.c
===================================================================
--- gcc.dg/cpp/paste2.c	(revision 453995)
+++ gcc.dg/cpp/paste2.c	(working copy)
@@ -12,7 +12,11 @@
 typedef __WCHAR_TYPE__ wchar_t;
 
 extern int strcmp (const char *, const char *);
+#if DEBUG
 extern int puts (const char *);
+#else
+#define puts(X)
+#endif
 extern void abort (void);
 #define err(str) do { puts(str); abort(); } while (0)
 
Index: gcc.dg/cpp/strify3.c
===================================================================
--- gcc.dg/cpp/strify3.c	(revision 453995)
+++ gcc.dg/cpp/strify3.c	(working copy)
@@ -9,7 +9,11 @@
    Neil Booth, 24 Sep 2001.  */
 
 extern int strcmp (const char *, const char *);
+#if DEBUG
 extern int puts (const char *);
+#else
+#define puts(X)
+#endif
 extern void abort (void);
 #define err(str) do { puts(str); abort(); } while (0)
 
Index: gcc.dg/cpp/strify4.c
===================================================================
--- gcc.dg/cpp/strify4.c	(revision 453995)
+++ gcc.dg/cpp/strify4.c	(working copy)
@@ -4,7 +4,11 @@
    Andrew Pinski */
 
 extern int strcmp (const char *, const char *);
+#if DEBUG
 extern int puts (const char *);
+#else
+#define puts(X)
+#endif
 extern void abort (void);
 #define err(str) do { puts(str); abort(); } while (0)
 
Index: gcc.dg/cpp/lexnum.c
===================================================================
--- gcc.dg/cpp/lexnum.c	(revision 453995)
+++ gcc.dg/cpp/lexnum.c	(working copy)
@@ -5,7 +5,11 @@
 
 /* Test lexing of numbers.  */
 
+#if DEBUG
 extern int puts (const char *);
+#else
+#define puts(X)
+#endif
 extern void abort (void);
 #define err(str) do { puts(str); abort(); } while (0)
 
Index: gcc.dg/cpp/digraphs.c
===================================================================
--- gcc.dg/cpp/digraphs.c	(revision 453995)
+++ gcc.dg/cpp/digraphs.c	(working copy)
@@ -8,7 +8,11 @@
 
 extern int strcmp (const char *, const char *);
 extern void abort (void);
+#if DEBUG
 extern int puts (const char *);
+#else
+#define puts(X)
+#endif
 #define err(str) do { puts(str); abort(); } while (0)
 
 %:define glue(x, y) x %:%: y	/* #define glue(x, y) x ## y. */
Index: gcc.dg/cpp/macro1.c
===================================================================
--- gcc.dg/cpp/macro1.c	(revision 453995)
+++ gcc.dg/cpp/macro1.c	(working copy)
@@ -4,7 +4,11 @@
 
 /* Tests various macro abuse is correctly expanded.  */
 
+#if DEBUG
 extern int puts (const char *);
+#else
+#define puts(X)
+#endif
 extern void abort (void);
 extern int strcmp(const char *s1, const char *s2);
 
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: gcc.c-torture/execute/builtins/pr23484-chk.x
===================================================================
--- gcc.c-torture/execute/builtins/pr23484-chk.x	(revision 0)
+++ gcc.c-torture/execute/builtins/pr23484-chk.x	(revision 0)
@@ -0,0 +1,7 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_nonlocal_goto] } {
+    return 1
+}
+
+return 0

Reply via email to