From: Nathan Sidwell Date: Fri, 21 Aug 2015 13:13:42 +0000 (+0000) Subject: nvptx cleanup X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a560e5d418a796c99d1c3d47209044a9cf5745c6;p=gcc.git nvptx cleanup nvptx cleanup * 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.x: 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. From-SVN: r227059 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 171a92c286a..95c82570ba5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,74 @@ +2015-08-21 Nathan Sidwell + + * 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.x: 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. + 2015-08-21 Dominik Vogt * gcc.target/s390/zvector/vec-load_bndry-1.c: New test. diff --git a/gcc/testsuite/gcc.c-torture/compile/920723-1.c b/gcc/testsuite/gcc.c-torture/compile/920723-1.c index d8734a6796e..26b83f6f8f7 100644 --- a/gcc/testsuite/gcc.c-torture/compile/920723-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/920723-1.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "ptxas seg faults" { nvptx-*-* } { "-O2" } { "" } } */ + #if defined(STACK_SIZE) && STACK_SIZE < 65536 # define GITT_SIZE 75 #endif diff --git a/gcc/testsuite/gcc.c-torture/compile/callind.c b/gcc/testsuite/gcc.c-torture/compile/callind.c index 74c0f1f9cef..5938d1b88fc 100644 --- a/gcc/testsuite/gcc.c-torture/compile/callind.c +++ b/gcc/testsuite/gcc.c-torture/compile/callind.c @@ -1,8 +1,8 @@ -call (foo, a) +bar (foo, a) int (**foo) (); { - (foo)[1] = call; + (foo)[1] = bar; foo[a] (1); } diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c b/gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c index 17afe730883..f131eea3cf1 100644 --- a/gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c +++ b/gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c @@ -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. */ diff --git a/gcc/testsuite/gcc.c-torture/compile/mangle-1.c b/gcc/testsuite/gcc.c-torture/compile/mangle-1.c index 7abc934e75c..6797bc2436f 100644 --- a/gcc/testsuite/gcc.c-torture/compile/mangle-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/mangle-1.c @@ -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; diff --git a/gcc/testsuite/gcc.c-torture/compile/pr33855.c b/gcc/testsuite/gcc.c-torture/compile/pr33855.c index e678cb34105..7e0d5ef0d73 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr33855.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr33855.c @@ -1,3 +1,4 @@ +/* { dg-skip-if "ptxas seg faults" { nvptx-*-* } { "-O1" } { "" } } */ /* Testcase by Martin Michlmayr */ /* Used to segfault due to cselim not marking the complex temp var as GIMPLE reg. */ diff --git a/gcc/testsuite/gcc.c-torture/compile/pr35468.c b/gcc/testsuite/gcc.c-torture/compile/pr35468.c index 16d064b6222..68f55654f69 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr35468.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr35468.c @@ -1,4 +1,5 @@ /* PR tree-optimization/35468 */ +/* { dg-do compile } */ void foo (void) diff --git a/gcc/testsuite/gcc.c-torture/execute/981019-1.c b/gcc/testsuite/gcc.c-torture/execute/981019-1.c index 5d1f009009b..a093dff41b0 100644 --- a/gcc/testsuite/gcc.c-torture/execute/981019-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/981019-1.c @@ -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); diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.x b/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.x new file mode 100644 index 00000000000..c8fdaf5b254 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.x @@ -0,0 +1,7 @@ +load_lib target-supports.exp + +if { [check_effective_target_freestanding] } { + return 1; +} + +return 0; diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.x index e976a755ba0..61ec1640a10 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.x +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.x @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk.x index acf2132367b..c34ebb1f78a 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk.x +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk.x @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk.x index e976a755ba0..61ec1640a10 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk.x +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk.x @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.x index 9b8363459c2..3019199fefd 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.x +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.x @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk.x new file mode 100644 index 00000000000..6f4746d43fb --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk.x @@ -0,0 +1,7 @@ +load_lib target-supports.exp + +if { ! [check_effective_target_nonlocal_goto] } { + return 1 +} + +return 0 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk.x index 9b8363459c2..3019199fefd 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk.x +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk.x @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.x index 9b8363459c2..3019199fefd 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.x +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.x @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.x index e976a755ba0..61ec1640a10 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.x +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.x @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/stpncpy-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/stpncpy-chk.x index e976a755ba0..61ec1640a10 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/stpncpy-chk.x +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/stpncpy-chk.x @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk.x index 9b8363459c2..3019199fefd 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk.x +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk.x @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.x index e976a755ba0..61ec1640a10 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.x +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.x @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk.x index 9b8363459c2..3019199fefd 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk.x +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk.x @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk.x index e976a755ba0..61ec1640a10 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk.x +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk.x @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk.x index 0d6e85c9711..1decd1468e7 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk.x +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk.x @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.x b/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.x index 0d6e85c9711..1decd1468e7 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.x +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.x @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/complex-6.c b/gcc/testsuite/gcc.c-torture/execute/complex-6.c index bbb8c8d40aa..2e7a6cdd71b 100644 --- a/gcc/testsuite/gcc.c-torture/execute/complex-6.c +++ b/gcc/testsuite/gcc.c-torture/execute/complex-6.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "requires io" { freestanding } { "*" } { "" } } */ + /* This test tests complex conjugate and passing/returning of complex parameter. */ diff --git a/gcc/testsuite/gcc.c-torture/execute/fprintf-1.c b/gcc/testsuite/gcc.c-torture/execute/fprintf-1.c index f16252b1e8e..bd3069f5383 100644 --- a/gcc/testsuite/gcc.c-torture/execute/fprintf-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/fprintf-1.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "requires io" { freestanding } { "*" } { "" } } */ + #include #include diff --git a/gcc/testsuite/gcc.c-torture/execute/fprintf-chk-1.c b/gcc/testsuite/gcc.c-torture/execute/fprintf-chk-1.c index 918ff8e5689..caad0a4bb3d 100644 --- a/gcc/testsuite/gcc.c-torture/execute/fprintf-chk-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/fprintf-chk-1.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "requires io" { freestanding } { "*" } { "" } } */ + #include #include #include diff --git a/gcc/testsuite/gcc.c-torture/execute/gofast.c b/gcc/testsuite/gcc.c-torture/execute/gofast.c index f55ced22073..a0b6e04465a 100644 --- a/gcc/testsuite/gcc.c-torture/execute/gofast.c +++ b/gcc/testsuite/gcc.c-torture/execute/gofast.c @@ -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 diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.c index d5f3fb45b6e..f4212146cd1 100644 --- a/gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.c @@ -57,7 +57,7 @@ struct }; int -main (int argc, char *argv[], char *envp[]) +main () { unsigned int i; diff --git a/gcc/testsuite/gcc.c-torture/execute/pr34456.c b/gcc/testsuite/gcc.c-torture/execute/pr34456.c index 526c954e55a..53e46ed26a2 100644 --- a/gcc/testsuite/gcc.c-torture/execute/pr34456.c +++ b/gcc/testsuite/gcc.c-torture/execute/pr34456.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "requires qsort" { freestanding } { "*" } { "" } } */ + #include int __attribute__ ((noinline)) debug (void) { return 1; } diff --git a/gcc/testsuite/gcc.c-torture/execute/printf-1.c b/gcc/testsuite/gcc.c-torture/execute/printf-1.c index 0ffcd5d443b..13e331d3e57 100644 --- a/gcc/testsuite/gcc.c-torture/execute/printf-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/printf-1.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "requires io" { freestanding } { "*" } { "" } } */ + #include #include diff --git a/gcc/testsuite/gcc.c-torture/execute/printf-chk-1.c b/gcc/testsuite/gcc.c-torture/execute/printf-chk-1.c index 8f9a79c5c57..fde85f99442 100644 --- a/gcc/testsuite/gcc.c-torture/execute/printf-chk-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/printf-chk-1.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "requires io" { freestanding } { "*" } { "" } } */ + #include #include #include diff --git a/gcc/testsuite/gcc.c-torture/execute/switch-1.c b/gcc/testsuite/gcc.c-torture/execute/switch-1.c index 30cffed7b85..22565576413 100644 --- a/gcc/testsuite/gcc.c-torture/execute/switch-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/switch-1.c @@ -22,7 +22,7 @@ foo (int x) } int -main (int argc) +main () { int i, r; diff --git a/gcc/testsuite/gcc.c-torture/execute/vfprintf-1.c b/gcc/testsuite/gcc.c-torture/execute/vfprintf-1.c index c0038042542..c9ce492e8b9 100644 --- a/gcc/testsuite/gcc.c-torture/execute/vfprintf-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/vfprintf-1.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "requires io" { freestanding } { "*" } { "" } } */ + #ifndef test #include #include diff --git a/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.c b/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.c index f8f964c7e9a..a642209c19b 100644 --- a/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "requires io" { freestanding } { "*" } { "" } } */ + #ifndef test #include #include diff --git a/gcc/testsuite/gcc.c-torture/execute/vprintf-1.c b/gcc/testsuite/gcc.c-torture/execute/vprintf-1.c index 9f1b8bf67aa..8b7038fd7bf 100644 --- a/gcc/testsuite/gcc.c-torture/execute/vprintf-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/vprintf-1.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "requires io" { freestanding } { "*" } { "" } } */ + #ifndef test #include #include diff --git a/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.c b/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.c index ca62f8b9fe2..f9bda6ed856 100644 --- a/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "requires io" { freestanding } { "*" } { "" } } */ + #ifndef test #include #include diff --git a/gcc/testsuite/gcc.dg/20030107-1.c b/gcc/testsuite/gcc.dg/20030107-1.c index 9264eba701e..91640807efd 100644 --- a/gcc/testsuite/gcc.dg/20030107-1.c +++ b/gcc/testsuite/gcc.dg/20030107-1.c @@ -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(); } diff --git a/gcc/testsuite/gcc.dg/20030702-1.c b/gcc/testsuite/gcc.dg/20030702-1.c index 1516a5a471d..0bc1b1c88e1 100644 --- a/gcc/testsuite/gcc.dg/20030702-1.c +++ b/gcc/testsuite/gcc.dg/20030702-1.c @@ -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); diff --git a/gcc/testsuite/gcc.dg/cleanup-12.c b/gcc/testsuite/gcc.dg/cleanup-12.c index 90de90ac831..15c079f63fb 100644 --- a/gcc/testsuite/gcc.dg/cleanup-12.c +++ b/gcc/testsuite/gcc.dg/cleanup-12.c @@ -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 diff --git a/gcc/testsuite/gcc.dg/cleanup-13.c b/gcc/testsuite/gcc.dg/cleanup-13.c index 5a0d4c69f5a..0ab1ca27650 100644 --- a/gcc/testsuite/gcc.dg/cleanup-13.c +++ b/gcc/testsuite/gcc.dg/cleanup-13.c @@ -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 diff --git a/gcc/testsuite/gcc.dg/cleanup-5.c b/gcc/testsuite/gcc.dg/cleanup-5.c index c335c1e4492..816d4cef0c1 100644 --- a/gcc/testsuite/gcc.dg/cleanup-5.c +++ b/gcc/testsuite/gcc.dg/cleanup-5.c @@ -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 diff --git a/gcc/testsuite/gcc.dg/constructor-1.c b/gcc/testsuite/gcc.dg/constructor-1.c index 1095a455cfa..73e9fc32007 100644 --- a/gcc/testsuite/gcc.dg/constructor-1.c +++ b/gcc/testsuite/gcc.dg/constructor-1.c @@ -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 diff --git a/gcc/testsuite/gcc.dg/cpp/digraphs.c b/gcc/testsuite/gcc.dg/cpp/digraphs.c index 49a1bcd8604..55bc46b061f 100644 --- a/gcc/testsuite/gcc.dg/cpp/digraphs.c +++ b/gcc/testsuite/gcc.dg/cpp/digraphs.c @@ -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. */ diff --git a/gcc/testsuite/gcc.dg/cpp/lexnum.c b/gcc/testsuite/gcc.dg/cpp/lexnum.c index 7df15540833..3d7a9a8ddf8 100644 --- a/gcc/testsuite/gcc.dg/cpp/lexnum.c +++ b/gcc/testsuite/gcc.dg/cpp/lexnum.c @@ -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) diff --git a/gcc/testsuite/gcc.dg/cpp/lexstrng.c b/gcc/testsuite/gcc.dg/cpp/lexstrng.c index b0353300395..9e13cd5fa33 100644 --- a/gcc/testsuite/gcc.dg/cpp/lexstrng.c +++ b/gcc/testsuite/gcc.dg/cpp/lexstrng.c @@ -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) diff --git a/gcc/testsuite/gcc.dg/cpp/macro1.c b/gcc/testsuite/gcc.dg/cpp/macro1.c index e7235f577c2..a2b1a38e295 100644 --- a/gcc/testsuite/gcc.dg/cpp/macro1.c +++ b/gcc/testsuite/gcc.dg/cpp/macro1.c @@ -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); diff --git a/gcc/testsuite/gcc.dg/cpp/paste2.c b/gcc/testsuite/gcc.dg/cpp/paste2.c index 788e4eb51d3..b9bc7c2a8d0 100644 --- a/gcc/testsuite/gcc.dg/cpp/paste2.c +++ b/gcc/testsuite/gcc.dg/cpp/paste2.c @@ -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) diff --git a/gcc/testsuite/gcc.dg/cpp/strify3.c b/gcc/testsuite/gcc.dg/cpp/strify3.c index 5d76b5e750f..b2ee4ab5562 100644 --- a/gcc/testsuite/gcc.dg/cpp/strify3.c +++ b/gcc/testsuite/gcc.dg/cpp/strify3.c @@ -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) diff --git a/gcc/testsuite/gcc.dg/cpp/strify4.c b/gcc/testsuite/gcc.dg/cpp/strify4.c index b8b2f11e9d1..9b4c0ddf4f1 100644 --- a/gcc/testsuite/gcc.dg/cpp/strify4.c +++ b/gcc/testsuite/gcc.dg/cpp/strify4.c @@ -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) diff --git a/gcc/testsuite/gcc.dg/debug/debug.exp b/gcc/testsuite/gcc.dg/debug/debug.exp index 908deb16a8d..ac162ae64b4 100644 --- a/gcc/testsuite/gcc.dg/debug/debug.exp +++ b/gcc/testsuite/gcc.dg/debug/debug.exp @@ -19,6 +19,11 @@ # Load support procs. load_lib gcc-dg.exp +# Disable on ptx +if { [istarget nvptx-*-*] } { + return +} + # Initialize `dg'. dg-init diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp index d17bb5ee448..9063eb1d3a5 100644 --- a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp @@ -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 { diff --git a/gcc/testsuite/gcc.dg/fork-instrumentation.c b/gcc/testsuite/gcc.dg/fork-instrumentation.c index f875e180882..aedb9ee797e 100644 --- a/gcc/testsuite/gcc.dg/fork-instrumentation.c +++ b/gcc/testsuite/gcc.dg/fork-instrumentation.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options "-O0 -fprofile-generate" } */ +/* { dg-require-profiling "-fprofile-generate" } */ + int fork(void); int t() diff --git a/gcc/testsuite/gcc.dg/setjmp-1.c b/gcc/testsuite/gcc.dg/setjmp-1.c index b5c84fc8792..c5dcef24934 100644 --- a/gcc/testsuite/gcc.dg/setjmp-1.c +++ b/gcc/testsuite/gcc.dg/setjmp-1.c @@ -3,6 +3,7 @@ /* { dg-do compile } */ /* { dg-options "-O -Wclobbered -Wextra -Wall" } */ +/* { dg-skip-if "" { ! nonlocal_goto } { "*" } { "" } } */ #include diff --git a/gcc/testsuite/lib/gcc.exp b/gcc/testsuite/lib/gcc.exp index 3ba8d3e5747..55e1c4fc22e 100644 --- a/gcc/testsuite/lib/gcc.exp +++ b/gcc/testsuite/lib/gcc.exp @@ -150,6 +150,9 @@ proc gcc_target_compile { source dest type options } { 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 diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index ef192111c43..91fd35ba722 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -580,7 +580,10 @@ proc check_profiling_available { test_what } { # 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 @@ -644,6 +647,15 @@ proc check_effective_target_nonlocal_goto {} { return 1 } +# Return 1 if global constructors are supported, 0 otherwise. + +proc check_effective_target_global_constructor {} { + if { [istarget nvptx-*-*] } { + return 0 + } + return 1 +} + # Return 1 if taking label values is supported, 0 otherwise. proc check_effective_target_label_values {} {