diff options
author | Nathan Sidwell <nathan@acm.org> | 2015-08-21 13:13:42 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2015-08-21 13:13:42 +0000 |
commit | a560e5d418a796c99d1c3d47209044a9cf5745c6 (patch) | |
tree | b97820f59ffa43f30a7aac3ebe7306ba1eaa99a3 /gcc | |
parent | 838326d5d9bd97f9631f116b74e3b334b15180b8 (diff) | |
download | gcc-a560e5d418a796c99d1c3d47209044a9cf5745c6.zip gcc-a560e5d418a796c99d1c3d47209044a9cf5745c6.tar.gz gcc-a560e5d418a796c99d1c3d47209044a9cf5745c6.tar.bz2 |
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
Diffstat (limited to 'gcc')
56 files changed, 276 insertions, 7 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 171a92c..95c8257 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,74 @@ +2015-08-21 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/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 <vogt@linux.vnet.ibm.com> * 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 d8734a6..26b83f6 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 74c0f1f..5938d1b 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 17afe73..f131eea 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 7abc934..6797bc2 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 e678cb3..7e0d5ef 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 <tbm@cyrius.com> */ /* 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 16d064b..68f5565 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 5d1f009..a093dff 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 0000000..c8fdaf5 --- /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 e976a75..61ec164 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 acf2132..c34ebb1 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 e976a75..61ec164 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 9b83634..3019199 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 0000000..6f4746d --- /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 9b83634..3019199 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 9b83634..3019199 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 e976a75..61ec164 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 e976a75..61ec164 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 9b83634..3019199 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 e976a75..61ec164 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 9b83634..3019199 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 e976a75..61ec164 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 0d6e85c..1decd14 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 0d6e85c..1decd14 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 bbb8c8d..2e7a6cd 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 f16252b..bd3069f 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 <stdio.h> #include <stdlib.h> 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 918ff8e..caad0a4 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 <stdio.h> #include <stdlib.h> #include <stdarg.h> diff --git a/gcc/testsuite/gcc.c-torture/execute/gofast.c b/gcc/testsuite/gcc.c-torture/execute/gofast.c index f55ced2..a0b6e04 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 d5f3fb4..f421214 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 526c954..53e46ed 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 <stdlib.h> 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 0ffcd5d..13e331d 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 <stdio.h> #include <stdlib.h> 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 8f9a79c..fde85f9 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 <stdio.h> #include <stdlib.h> #include <stdarg.h> diff --git a/gcc/testsuite/gcc.c-torture/execute/switch-1.c b/gcc/testsuite/gcc.c-torture/execute/switch-1.c index 30cffed..2256557 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 c003804..c9ce492 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 <stdio.h> #include <stdlib.h> 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 f8f964c..a642209 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 <stdio.h> #include <stdlib.h> diff --git a/gcc/testsuite/gcc.c-torture/execute/vprintf-1.c b/gcc/testsuite/gcc.c-torture/execute/vprintf-1.c index 9f1b8bf..8b7038f 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 <stdio.h> #include <stdlib.h> 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 ca62f8b..f9bda6e 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 <stdio.h> #include <stdlib.h> diff --git a/gcc/testsuite/gcc.dg/20030107-1.c b/gcc/testsuite/gcc.dg/20030107-1.c index 9264eba..9164080 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 1516a5a..0bc1b1c 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 90de90a..15c079f 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 <unwind.h> diff --git a/gcc/testsuite/gcc.dg/cleanup-13.c b/gcc/testsuite/gcc.dg/cleanup-13.c index 5a0d4c6..0ab1ca2 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 <unwind.h> diff --git a/gcc/testsuite/gcc.dg/cleanup-5.c b/gcc/testsuite/gcc.dg/cleanup-5.c index c335c1e..816d4ce 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 <unwind.h> diff --git a/gcc/testsuite/gcc.dg/constructor-1.c b/gcc/testsuite/gcc.dg/constructor-1.c index 1095a45..73e9fc3 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 49a1bcd..55bc46b 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 7df1554..3d7a9a8 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 b035330..9e13cd5 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 e7235f5..a2b1a38 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 788e4eb5..b9bc7c2 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 5d76b5e..b2ee4ab 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 b8b2f11..9b4c0dd 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 908deb1..ac162ae 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 d17bb5e..9063eb1d 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 f875e18..aedb9ee 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 b5c84fc..c5dcef2 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 <setjmp.h> diff --git a/gcc/testsuite/lib/gcc.exp b/gcc/testsuite/lib/gcc.exp index 3ba8d3e5..55e1c4f 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 ef19211..91fd35b 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 {} { |