From c445c02a65800cc94f17a9bdbb34ba89bb0730e4 Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Mon, 10 Nov 2014 16:30:22 +0000 Subject: [PATCH] Testsuite untyped assembly fixes for ptx. * lib/target-supports.exp (check_effective_target_untyped_assembly): New function. * gcc.c-torture/compile/20091215-1.c: Require untyped_assembly. * gcc.c-torture/compile/920917-1.c: Likewise. * gcc.c-torture/compile/930120-1.c: Likewise. * gcc.c-torture/compile/930411-1.c: Likewise. * gcc.c-torture/compile/930529-1.c: Likewise. * gcc.c-torture/compile/930623-1.c: Likewise. * gcc.c-torture/compile/950329-1.c: Likewise. * gcc.c-torture/compile/calls.c: Likewise. * gcc.c-torture/compile/pr37258.c: Likewise. * gcc.c-torture/compile/pr37327.c: Likewise. * gcc.c-torture/compile/pr38360.c: Likewise. * gcc.c-torture/compile/pr43635.c: Likewise. * gcc.c-torture/compile/pr47428.c: Likewise. * gcc.c-torture/compile/pr47967.c: Likewise. * gcc.c-torture/compile/pr49145.c: Likewise. * gcc.c-torture/compile/pr51694.c: Likewise. * gcc.c-torture/compile/pr53411.c: Likewise. * gcc.c-torture/execute/20001101.c: Likewise. * gcc.c-torture/execute/20051012-1.c: Likewise. * gcc.c-torture/execute/920501-1.c: Likewise. * gcc.c-torture/execute/921202-1.c: Likewise. * gcc.c-torture/execute/921208-2.c: Likewise. * gcc.c-torture/execute/call-trap-1.c: Likewise. * gcc.c-torture/compile/20010525-1.c: Likewise. * gcc.c-torture/compile/20021015-2.c: Likewise. * gcc.c-torture/compile/20031023-1.c: Likewise. * gcc.c-torture/compile/20031023-2.c: Likewise. * gcc.c-torture/compile/pr49206.c: Likewise. * gcc.c-torture/execute/pr47237.c: Likewise. * gcc.dg/torture/stackalign/builtin-apply-1.c: Likewise. * gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise. * gcc.dg/torture/stackalign/builtin-apply-3.c: Likewise. * gcc.dg/torture/stackalign/builtin-apply-4.c: Likewise. * gcc.dg/torture/stackalign/builtin-return-1.c: Likewise. * gcc.dg/builtin-apply1.c: Likewise. * gcc.dg/builtin-apply2.c: Likewise. * gcc.dg/builtin-apply3.c: Likewise. * gcc.dg/builtin-apply4.c: Likewise. * gcc.dg/pr38338.c: Likewise. * gcc.dg/torture/pr41993.c: Likewise. * gcc.c-torture/compile/386.c: Likewise. * gcc.c-torture/compile/cmpsi386.c: Likewise. * gcc.c-torture/compile/consec.c: Likewise. * gcc.c-torture/compile/ex.c: Likewise. * gcc.c-torture/compile/pass.c: Likewise. * gcc.c-torture/compile/scal.c: Likewise. * gcc.c-torture/compile/uuarg.c: Likewise. * gcc.c-torture/compile/conv_tst.c: Likewise. From-SVN: r217297 --- gcc/testsuite/ChangeLog | 51 +++++++++++++++++++ .../gcc.c-torture/compile/20010525-1.c | 1 + .../gcc.c-torture/compile/20021015-2.c | 1 + .../gcc.c-torture/compile/20031023-1.c | 2 + .../gcc.c-torture/compile/20031023-2.c | 2 + .../gcc.c-torture/compile/20031023-3.c | 2 + .../gcc.c-torture/compile/20091215-1.c | 2 + gcc/testsuite/gcc.c-torture/compile/386.c | 1 + .../gcc.c-torture/compile/920917-1.c | 2 + .../gcc.c-torture/compile/930120-1.c | 1 + .../gcc.c-torture/compile/930411-1.c | 2 + .../gcc.c-torture/compile/930529-1.c | 2 + .../gcc.c-torture/compile/930623-1.c | 2 + .../gcc.c-torture/compile/950329-1.c | 1 + gcc/testsuite/gcc.c-torture/compile/call.c | 2 + .../gcc.c-torture/compile/calls-void.c | 2 + gcc/testsuite/gcc.c-torture/compile/calls.c | 2 + .../gcc.c-torture/compile/cmpsi386.c | 1 + gcc/testsuite/gcc.c-torture/compile/consec.c | 1 + .../gcc.c-torture/compile/conv_tst.c | 2 + gcc/testsuite/gcc.c-torture/compile/ex.c | 2 + gcc/testsuite/gcc.c-torture/compile/pass.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr37258.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr37327.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr38360.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr43635.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr47428.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr47967.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr49145.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr49206.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr51694.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr53411.c | 1 + gcc/testsuite/gcc.c-torture/compile/scal.c | 1 + gcc/testsuite/gcc.c-torture/compile/uuarg.c | 1 + .../gcc.c-torture/execute/20001101.c | 1 + .../gcc.c-torture/execute/20051012-1.c | 1 + .../gcc.c-torture/execute/920501-1.c | 1 + .../gcc.c-torture/execute/921202-1.c | 1 + .../gcc.c-torture/execute/921208-2.c | 1 + .../gcc.c-torture/execute/call-trap-1.c | 1 + gcc/testsuite/gcc.c-torture/execute/pr47237.c | 1 + gcc/testsuite/gcc.dg/builtin-apply1.c | 1 + gcc/testsuite/gcc.dg/builtin-apply2.c | 1 + gcc/testsuite/gcc.dg/builtin-apply3.c | 1 + gcc/testsuite/gcc.dg/builtin-apply4.c | 1 + gcc/testsuite/gcc.dg/pr38338.c | 1 + gcc/testsuite/gcc.dg/torture/pr41993.c | 1 + .../torture/stackalign/builtin-apply-1.c | 1 + .../torture/stackalign/builtin-apply-2.c | 1 + .../torture/stackalign/builtin-apply-3.c | 1 + .../torture/stackalign/builtin-apply-4.c | 1 + .../torture/stackalign/builtin-return-1.c | 1 + gcc/testsuite/lib/target-supports.exp | 11 ++++ 53 files changed, 126 insertions(+) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 16919877ba8..8038759604b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,56 @@ 2014-11-10 Bernd Schmidt + * lib/target-supports.exp + (check_effective_target_untyped_assembly): New function. + * gcc.c-torture/compile/20091215-1.c: Require untyped_assembly. + * gcc.c-torture/compile/920917-1.c: Likewise. + * gcc.c-torture/compile/930120-1.c: Likewise. + * gcc.c-torture/compile/930411-1.c: Likewise. + * gcc.c-torture/compile/930529-1.c: Likewise. + * gcc.c-torture/compile/930623-1.c: Likewise. + * gcc.c-torture/compile/950329-1.c: Likewise. + * gcc.c-torture/compile/calls.c: Likewise. + * gcc.c-torture/compile/pr37258.c: Likewise. + * gcc.c-torture/compile/pr37327.c: Likewise. + * gcc.c-torture/compile/pr38360.c: Likewise. + * gcc.c-torture/compile/pr43635.c: Likewise. + * gcc.c-torture/compile/pr47428.c: Likewise. + * gcc.c-torture/compile/pr47967.c: Likewise. + * gcc.c-torture/compile/pr49145.c: Likewise. + * gcc.c-torture/compile/pr51694.c: Likewise. + * gcc.c-torture/compile/pr53411.c: Likewise. + * gcc.c-torture/execute/20001101.c: Likewise. + * gcc.c-torture/execute/20051012-1.c: Likewise. + * gcc.c-torture/execute/920501-1.c: Likewise. + * gcc.c-torture/execute/921202-1.c: Likewise. + * gcc.c-torture/execute/921208-2.c: Likewise. + * gcc.c-torture/execute/call-trap-1.c: Likewise. + * gcc.c-torture/compile/20010525-1.c: Likewise. + * gcc.c-torture/compile/20021015-2.c: Likewise. + * gcc.c-torture/compile/20031023-1.c: Likewise. + * gcc.c-torture/compile/20031023-2.c: Likewise. + * gcc.c-torture/compile/pr49206.c: Likewise. + * gcc.c-torture/execute/pr47237.c: Likewise. + * gcc.dg/torture/stackalign/builtin-apply-1.c: Likewise. + * gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise. + * gcc.dg/torture/stackalign/builtin-apply-3.c: Likewise. + * gcc.dg/torture/stackalign/builtin-apply-4.c: Likewise. + * gcc.dg/torture/stackalign/builtin-return-1.c: Likewise. + * gcc.dg/builtin-apply1.c: Likewise. + * gcc.dg/builtin-apply2.c: Likewise. + * gcc.dg/builtin-apply3.c: Likewise. + * gcc.dg/builtin-apply4.c: Likewise. + * gcc.dg/pr38338.c: Likewise. + * gcc.dg/torture/pr41993.c: Likewise. + * gcc.c-torture/compile/386.c: Likewise. + * gcc.c-torture/compile/cmpsi386.c: Likewise. + * gcc.c-torture/compile/consec.c: Likewise. + * gcc.c-torture/compile/ex.c: Likewise. + * gcc.c-torture/compile/pass.c: Likewise. + * gcc.c-torture/compile/scal.c: Likewise. + * gcc.c-torture/compile/uuarg.c: Likewise. + * gcc.c-torture/compile/conv_tst.c: Likewise. + * lib/target-supports.exp (check_effective_target_alloca): New function. * gcc.c-torture/execute/20010209-1.c: Require alloca. * gcc.c-torture/execute/20020314-1.c: Likewise. diff --git a/gcc/testsuite/gcc.c-torture/compile/20010525-1.c b/gcc/testsuite/gcc.c-torture/compile/20010525-1.c index 2e4ae382ab9..c020c947826 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20010525-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/20010525-1.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ static int kind_varread(char *str) { if (0 == memcmp("%_#", str, 3)) return 2; diff --git a/gcc/testsuite/gcc.c-torture/compile/20021015-2.c b/gcc/testsuite/gcc.c-torture/compile/20021015-2.c index 6b158c5bdc8..bd1a6aa5305 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20021015-2.c +++ b/gcc/testsuite/gcc.c-torture/compile/20021015-2.c @@ -1,4 +1,5 @@ /* PR target/8232. */ +/* { dg-require-effective-target untyped_assembly } */ int f (char *p, char *q, int i) { diff --git a/gcc/testsuite/gcc.c-torture/compile/20031023-1.c b/gcc/testsuite/gcc.c-torture/compile/20031023-1.c index 67f8ea9181a..be837762e66 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20031023-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/20031023-1.c @@ -1,3 +1,5 @@ +/* Declaration of the frame size doesn't work on ptx. */ +/* { dg-require-effective-target untyped_assembly } */ #ifndef ASIZE # define ASIZE 0x10000000000UL #endif diff --git a/gcc/testsuite/gcc.c-torture/compile/20031023-2.c b/gcc/testsuite/gcc.c-torture/compile/20031023-2.c index 663e447157e..66d66458c85 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20031023-2.c +++ b/gcc/testsuite/gcc.c-torture/compile/20031023-2.c @@ -1,2 +1,4 @@ +/* Declaration of the frame size doesn't work on ptx. */ +/* { dg-require-effective-target untyped_assembly } */ #define ASIZE 0x1000000000UL #include "20031023-1.c" diff --git a/gcc/testsuite/gcc.c-torture/compile/20031023-3.c b/gcc/testsuite/gcc.c-torture/compile/20031023-3.c index f4a16c73c0d..5859634c343 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20031023-3.c +++ b/gcc/testsuite/gcc.c-torture/compile/20031023-3.c @@ -1,2 +1,4 @@ +/* Declaration of the frame size doesn't work on ptx. */ +/* { dg-require-effective-target untyped_assembly } */ #define ASIZE 0x100000000UL #include "20031023-1.c" diff --git a/gcc/testsuite/gcc.c-torture/compile/20091215-1.c b/gcc/testsuite/gcc.c-torture/compile/20091215-1.c index 7862e2fb03f..1df5098fdb6 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20091215-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/20091215-1.c @@ -1,3 +1,5 @@ +/* { dg-require-effective-target untyped_assembly } */ + void bar (); void diff --git a/gcc/testsuite/gcc.c-torture/compile/386.c b/gcc/testsuite/gcc.c-torture/compile/386.c index 432cdaddd12..81fcea5f0e6 100644 --- a/gcc/testsuite/gcc.c-torture/compile/386.c +++ b/gcc/testsuite/gcc.c-torture/compile/386.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ foo (a, p) int *p; { diff --git a/gcc/testsuite/gcc.c-torture/compile/920917-1.c b/gcc/testsuite/gcc.c-torture/compile/920917-1.c index ebe8200d48b..139f60e6f5e 100644 --- a/gcc/testsuite/gcc.c-torture/compile/920917-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/920917-1.c @@ -1,2 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ + inline f(x){switch(x){case 6:case 4:case 3:case 1:;}return x;} g(){f(sizeof("xxxxxx"));} diff --git a/gcc/testsuite/gcc.c-torture/compile/930120-1.c b/gcc/testsuite/gcc.c-torture/compile/930120-1.c index 95ac43c07ed..a1d8df87c4b 100644 --- a/gcc/testsuite/gcc.c-torture/compile/930120-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/930120-1.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ union { short I[2]; long int L; diff --git a/gcc/testsuite/gcc.c-torture/compile/930411-1.c b/gcc/testsuite/gcc.c-torture/compile/930411-1.c index bb03c13fa07..6dd87eefc7c 100644 --- a/gcc/testsuite/gcc.c-torture/compile/930411-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/930411-1.c @@ -1,3 +1,5 @@ +/* { dg-require-effective-target untyped_assembly } */ + int heap; g(){} diff --git a/gcc/testsuite/gcc.c-torture/compile/930529-1.c b/gcc/testsuite/gcc.c-torture/compile/930529-1.c index 70b2cb8f90c..8ad358dff5a 100644 --- a/gcc/testsuite/gcc.c-torture/compile/930529-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/930529-1.c @@ -1,3 +1,5 @@ +/* { dg-require-effective-target untyped_assembly } */ + struct r { int d1, d2; diff --git a/gcc/testsuite/gcc.c-torture/compile/930623-1.c b/gcc/testsuite/gcc.c-torture/compile/930623-1.c index 4b5b90bd848..022ad01804e 100644 --- a/gcc/testsuite/gcc.c-torture/compile/930623-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/930623-1.c @@ -1,3 +1,5 @@ +/* { dg-require-effective-target untyped_assembly } */ + g (a, b) {} f (xx) diff --git a/gcc/testsuite/gcc.c-torture/compile/950329-1.c b/gcc/testsuite/gcc.c-torture/compile/950329-1.c index 7c047f5a59c..63ec6b28120 100644 --- a/gcc/testsuite/gcc.c-torture/compile/950329-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/950329-1.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ f () { int i; diff --git a/gcc/testsuite/gcc.c-torture/compile/call.c b/gcc/testsuite/gcc.c-torture/compile/call.c index c8106038371..265193d4d6f 100644 --- a/gcc/testsuite/gcc.c-torture/compile/call.c +++ b/gcc/testsuite/gcc.c-torture/compile/call.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "requires untyped assembly" { ! untyped_assembly } { "-O0" } { "" } } */ + int foo () {} main (a, b) diff --git a/gcc/testsuite/gcc.c-torture/compile/calls-void.c b/gcc/testsuite/gcc.c-torture/compile/calls-void.c index a8dacd79704..eeed4fdfdc1 100644 --- a/gcc/testsuite/gcc.c-torture/compile/calls-void.c +++ b/gcc/testsuite/gcc.c-torture/compile/calls-void.c @@ -1,4 +1,6 @@ /* { dg-require-effective-target ptr32plus } */ +/* { dg-require-effective-target untyped_assembly } */ + typedef void (*T)(void); f1 () { diff --git a/gcc/testsuite/gcc.c-torture/compile/calls.c b/gcc/testsuite/gcc.c-torture/compile/calls.c index 1241058a073..ca07122a786 100644 --- a/gcc/testsuite/gcc.c-torture/compile/calls.c +++ b/gcc/testsuite/gcc.c-torture/compile/calls.c @@ -1,4 +1,6 @@ /* { dg-require-effective-target ptr32plus } */ +/* { dg-require-effective-target untyped_assembly } */ + typedef void *(*T)(void); f1 () { diff --git a/gcc/testsuite/gcc.c-torture/compile/cmpsi386.c b/gcc/testsuite/gcc.c-torture/compile/cmpsi386.c index 50b08d7126d..c98b8626a87 100644 --- a/gcc/testsuite/gcc.c-torture/compile/cmpsi386.c +++ b/gcc/testsuite/gcc.c-torture/compile/cmpsi386.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ foo (a, p) register int a; int *p; diff --git a/gcc/testsuite/gcc.c-torture/compile/consec.c b/gcc/testsuite/gcc.c-torture/compile/consec.c index fd76cd2eec4..01fa25b009b 100644 --- a/gcc/testsuite/gcc.c-torture/compile/consec.c +++ b/gcc/testsuite/gcc.c-torture/compile/consec.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ int glob; conseq (a, b, c, d) diff --git a/gcc/testsuite/gcc.c-torture/compile/conv_tst.c b/gcc/testsuite/gcc.c-torture/compile/conv_tst.c index 513d6a2471e..28be6661690 100644 --- a/gcc/testsuite/gcc.c-torture/compile/conv_tst.c +++ b/gcc/testsuite/gcc.c-torture/compile/conv_tst.c @@ -1,3 +1,5 @@ +/* { dg-require-effective-target untyped_assembly } */ + #define ID_1 2400000000.0 #define ID_2 1.7 #define ID_3 -1.7 diff --git a/gcc/testsuite/gcc.c-torture/compile/ex.c b/gcc/testsuite/gcc.c-torture/compile/ex.c index f5d90fd2e65..3753815837f 100644 --- a/gcc/testsuite/gcc.c-torture/compile/ex.c +++ b/gcc/testsuite/gcc.c-torture/compile/ex.c @@ -1,3 +1,5 @@ +/* { dg-require-effective-target untyped_assembly } */ + foo (a, b) { if ((a & (1 << b)) == 0) diff --git a/gcc/testsuite/gcc.c-torture/compile/pass.c b/gcc/testsuite/gcc.c-torture/compile/pass.c index 6b663828aee..4e028393feb 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pass.c +++ b/gcc/testsuite/gcc.c-torture/compile/pass.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ int foo (a, b, c) { diff --git a/gcc/testsuite/gcc.c-torture/compile/pr37258.c b/gcc/testsuite/gcc.c-torture/compile/pr37258.c index 5091d980bfd..286f2fc4427 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr37258.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr37258.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ typedef signed char int8_t; typedef short int int16_t; typedef int int32_t; diff --git a/gcc/testsuite/gcc.c-torture/compile/pr37327.c b/gcc/testsuite/gcc.c-torture/compile/pr37327.c index 7041d834ea2..79946b7522d 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr37327.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr37327.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ typedef signed char int8_t; typedef short int int16_t; typedef int int32_t; diff --git a/gcc/testsuite/gcc.c-torture/compile/pr38360.c b/gcc/testsuite/gcc.c-torture/compile/pr38360.c index 463218d1156..4c67b0085ca 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr38360.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr38360.c @@ -1,4 +1,5 @@ /* PR middle-end/38360 */ +/* { dg-require-effective-target untyped_assembly } */ int main () diff --git a/gcc/testsuite/gcc.c-torture/compile/pr43635.c b/gcc/testsuite/gcc.c-torture/compile/pr43635.c index 4039fa7a569..df826b6f4c0 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr43635.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr43635.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ extern void d (void); void (*foo (void)) (float) diff --git a/gcc/testsuite/gcc.c-torture/compile/pr47428.c b/gcc/testsuite/gcc.c-torture/compile/pr47428.c index 0c4ccc9127d..3cd7bfdf56e 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr47428.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr47428.c @@ -1,4 +1,5 @@ /* PR tree-optimization/47428 */ +/* { dg-require-effective-target untyped_assembly } */ struct S { diff --git a/gcc/testsuite/gcc.c-torture/compile/pr47967.c b/gcc/testsuite/gcc.c-torture/compile/pr47967.c index cc2c213974e..fe1f9c2ef75 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr47967.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr47967.c @@ -1,4 +1,5 @@ /* PR tree-optimization/47967 */ +/* { dg-require-effective-target untyped_assembly } */ extern void abort (void); static void bar (); diff --git a/gcc/testsuite/gcc.c-torture/compile/pr49145.c b/gcc/testsuite/gcc.c-torture/compile/pr49145.c index 079fc884d05..b44e1977031 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr49145.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr49145.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ static int func1 (int a, int b) { diff --git a/gcc/testsuite/gcc.c-torture/compile/pr49206.c b/gcc/testsuite/gcc.c-torture/compile/pr49206.c index 1df23c98337..7596f6a3106 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr49206.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr49206.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ struct S1 { short f0; diff --git a/gcc/testsuite/gcc.c-torture/compile/pr51694.c b/gcc/testsuite/gcc.c-torture/compile/pr51694.c index 579a2434d82..f5c1a40df86 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr51694.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr51694.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ void foo (x, fn) void (*fn) (); diff --git a/gcc/testsuite/gcc.c-torture/compile/pr53411.c b/gcc/testsuite/gcc.c-torture/compile/pr53411.c index e88ecbc4ca2..5a41502fb2b 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr53411.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr53411.c @@ -1,4 +1,5 @@ /* PR middle-end/53411 */ +/* { dg-require-effective-target untyped_assembly } */ int a, b, c, d, e, f, g, h; void fn1 (void); diff --git a/gcc/testsuite/gcc.c-torture/compile/scal.c b/gcc/testsuite/gcc.c-torture/compile/scal.c index 94e22aa80f5..a2fb3e81225 100644 --- a/gcc/testsuite/gcc.c-torture/compile/scal.c +++ b/gcc/testsuite/gcc.c-torture/compile/scal.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ int g1, g2; void diff --git a/gcc/testsuite/gcc.c-torture/compile/uuarg.c b/gcc/testsuite/gcc.c-torture/compile/uuarg.c index 8928b3e0768..930dd8ab5f6 100644 --- a/gcc/testsuite/gcc.c-torture/compile/uuarg.c +++ b/gcc/testsuite/gcc.c-torture/compile/uuarg.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ foo (a, b, c, d, e, f, g, h, i) { return foo () + i; diff --git a/gcc/testsuite/gcc.c-torture/execute/20001101.c b/gcc/testsuite/gcc.c-torture/execute/20001101.c index 930ee32c3ee..475211e25f9 100644 --- a/gcc/testsuite/gcc.c-torture/execute/20001101.c +++ b/gcc/testsuite/gcc.c-torture/execute/20001101.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ extern void abort(void); typedef struct diff --git a/gcc/testsuite/gcc.c-torture/execute/20051012-1.c b/gcc/testsuite/gcc.c-torture/execute/20051012-1.c index f12f42913cc..d43aeda8285 100644 --- a/gcc/testsuite/gcc.c-torture/execute/20051012-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/20051012-1.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ extern void abort (void); struct type diff --git a/gcc/testsuite/gcc.c-torture/execute/920501-1.c b/gcc/testsuite/gcc.c-torture/execute/920501-1.c index 6f757cac59c..a057943ce78 100644 --- a/gcc/testsuite/gcc.c-torture/execute/920501-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/920501-1.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ int s[2]; x(){if(!s[0]){s[1+s[1]]=s[1];return 1;}} main(){s[0]=s[1]=0;if(x(0)!=1)abort();exit(0);} diff --git a/gcc/testsuite/gcc.c-torture/execute/921202-1.c b/gcc/testsuite/gcc.c-torture/execute/921202-1.c index d14425a5076..935975dd3ad 100644 --- a/gcc/testsuite/gcc.c-torture/execute/921202-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/921202-1.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ #ifndef STACK_SIZE #define VLEN 2055 #else diff --git a/gcc/testsuite/gcc.c-torture/execute/921208-2.c b/gcc/testsuite/gcc.c-torture/execute/921208-2.c index d5edcf97c66..f01b5728ee5 100644 --- a/gcc/testsuite/gcc.c-torture/execute/921208-2.c +++ b/gcc/testsuite/gcc.c-torture/execute/921208-2.c @@ -1,3 +1,4 @@ +/* { dg-require-effective-target untyped_assembly } */ #define STACK_REQUIREMENT (100000 * 4 + 1024) #if defined (STACK_SIZE) && STACK_SIZE < STACK_REQUIREMENT main () { exit (0); } diff --git a/gcc/testsuite/gcc.c-torture/execute/call-trap-1.c b/gcc/testsuite/gcc.c-torture/execute/call-trap-1.c index aa226e745d6..c1aa90d430e 100644 --- a/gcc/testsuite/gcc.c-torture/execute/call-trap-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/call-trap-1.c @@ -2,6 +2,7 @@ type does not appear until after the function designator and arguments have been evaluated. PR 38483. */ /* Origin: Joseph Myers */ +/* { dg-require-effective-target untyped_assembly } */ extern void exit (int); extern void abort (void); diff --git a/gcc/testsuite/gcc.c-torture/execute/pr47237.c b/gcc/testsuite/gcc.c-torture/execute/pr47237.c index 470c8ee204c..08025313389 100644 --- a/gcc/testsuite/gcc.c-torture/execute/pr47237.c +++ b/gcc/testsuite/gcc.c-torture/execute/pr47237.c @@ -1,4 +1,5 @@ /* { dg-xfail-if "can cause stack underflow" { nios2-*-* } "*" "" } */ +/* { dg-require-effective-target untyped_assembly } */ #define INTEGER_ARG 5 extern void abort(void); diff --git a/gcc/testsuite/gcc.dg/builtin-apply1.c b/gcc/testsuite/gcc.dg/builtin-apply1.c index 38b384e7cca..7079ce3a689 100644 --- a/gcc/testsuite/gcc.dg/builtin-apply1.c +++ b/gcc/testsuite/gcc.dg/builtin-apply1.c @@ -1,5 +1,6 @@ /* PR 11184 */ /* Origin: Dara Hazeghi */ +/* { dg-require-effective-target untyped_assembly } */ void * objc_msg_sendv (char * arg_frame, void (*foo)()) diff --git a/gcc/testsuite/gcc.dg/builtin-apply2.c b/gcc/testsuite/gcc.dg/builtin-apply2.c index 3ae2adc6e07..d666fcca231 100644 --- a/gcc/testsuite/gcc.dg/builtin-apply2.c +++ b/gcc/testsuite/gcc.dg/builtin-apply2.c @@ -1,4 +1,5 @@ /* { dg-do run } */ +/* { dg-require-effective-target untyped_assembly } */ /* { dg-skip-if "Variadic funcs have all args on stack. Normal funcs have args in registers." { "aarch64*-*-* avr-*-* nds32*-*-*" } { "*" } { "" } } */ /* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP variant." { arm*-*-* && arm_hf_eabi } { "*" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/builtin-apply3.c b/gcc/testsuite/gcc.dg/builtin-apply3.c index 1335d09022a..37c5209b91c 100644 --- a/gcc/testsuite/gcc.dg/builtin-apply3.c +++ b/gcc/testsuite/gcc.dg/builtin-apply3.c @@ -5,6 +5,7 @@ to the right location by __builtin_apply after the direct call. */ /* { dg-do run } */ +/* { dg-require-effective-target untyped_assembly } */ #define INTEGER_ARG 5 diff --git a/gcc/testsuite/gcc.dg/builtin-apply4.c b/gcc/testsuite/gcc.dg/builtin-apply4.c index b548df35d15..cca9187a1d3 100644 --- a/gcc/testsuite/gcc.dg/builtin-apply4.c +++ b/gcc/testsuite/gcc.dg/builtin-apply4.c @@ -2,6 +2,7 @@ /* { dg-options "-O2 -Wmissing-noreturn -fgnu89-inline" } */ /* { dg-additional-options "-mno-mmx" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */ /* { dg-do run } */ +/* { dg-require-effective-target untyped_assembly } */ extern void abort (void); diff --git a/gcc/testsuite/gcc.dg/pr38338.c b/gcc/testsuite/gcc.dg/pr38338.c index e8fcc3c4504..5dfd4434926 100644 --- a/gcc/testsuite/gcc.dg/pr38338.c +++ b/gcc/testsuite/gcc.dg/pr38338.c @@ -1,6 +1,7 @@ /* PR middle-end/38338 */ /* { dg-options "-O0" } */ /* { dg-options "-O0 -fPIC" { target fpic } } */ +/* { dg-require-effective-target untyped_assembly } */ typedef void (*fnp) (void); diff --git a/gcc/testsuite/gcc.dg/torture/pr41993.c b/gcc/testsuite/gcc.dg/torture/pr41993.c index 890e3656159..05ba4b1997f 100644 --- a/gcc/testsuite/gcc.dg/torture/pr41993.c +++ b/gcc/testsuite/gcc.dg/torture/pr41993.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-mavx -mvzeroupper" { target { i?86-*-* x86_64-*-* } } } */ +/* { dg-require-effective-target untyped_assembly } */ short retframe_short (void *rframe) { diff --git a/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-1.c b/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-1.c index 38b384e7cca..7079ce3a689 100644 --- a/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-1.c +++ b/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-1.c @@ -1,5 +1,6 @@ /* PR 11184 */ /* Origin: Dara Hazeghi */ +/* { dg-require-effective-target untyped_assembly } */ void * objc_msg_sendv (char * arg_frame, void (*foo)()) diff --git a/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c b/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c index 8eba13aed67..ffd865b3717 100644 --- a/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c +++ b/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c @@ -11,6 +11,7 @@ do. */ /* { dg-skip-if "Variadic funcs use different argument passing from normal funcs" { arm_hf_eabi || { avr-*-* } } "*" "" } */ /* { dg-skip-if "Variadic funcs have all args on stack. Normal funcs have args in registers." { nds32*-*-* } "*" "" } */ +/* { dg-require-effective-target untyped_assembly } */ #define INTEGER_ARG 5 diff --git a/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-3.c b/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-3.c index 1335d09022a..37c5209b91c 100644 --- a/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-3.c +++ b/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-3.c @@ -5,6 +5,7 @@ to the right location by __builtin_apply after the direct call. */ /* { dg-do run } */ +/* { dg-require-effective-target untyped_assembly } */ #define INTEGER_ARG 5 diff --git a/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-4.c b/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-4.c index 4bf5c1e6227..78b10322edc 100644 --- a/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-4.c +++ b/gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-4.c @@ -1,6 +1,7 @@ /* PR tree-optimization/20076 */ /* { dg-do run } */ /* { dg-additional-options "-fgnu89-inline" } */ +/* { dg-require-effective-target untyped_assembly } */ extern void abort (void); diff --git a/gcc/testsuite/gcc.dg/torture/stackalign/builtin-return-1.c b/gcc/testsuite/gcc.dg/torture/stackalign/builtin-return-1.c index e6213da217e..af017532aeb 100644 --- a/gcc/testsuite/gcc.dg/torture/stackalign/builtin-return-1.c +++ b/gcc/testsuite/gcc.dg/torture/stackalign/builtin-return-1.c @@ -1,6 +1,7 @@ /* PR middle-end/11151 */ /* Originator: Andrew Church */ /* { dg-do run } */ +/* { dg-require-effective-target untyped_assembly } */ /* This used to fail on SPARC because the (undefined) return value of 'bar' was overwriting that of 'foo'. */ diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index b6e2dded682..a395f5ff8c9 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -599,6 +599,17 @@ proc add_options_for_tls { flags } { return $flags } +# Return 1 if the assembler does not verify function types against +# calls, 0 otherwise. Such verification will typically show up problems +# with K&R C function declarations. + +proc check_effective_target_untyped_assembly {} { + if { [istarget nvptx-*-*] } { + return 0 + } + return 1 +} + # Return 1 if alloca is supported, 0 otherwise. proc check_effective_target_alloca {} { -- 2.30.2