Hi! On 2018-09-05T12:52:10+0100, <a...@codesourcery.com> wrote: > There are a number of tests that fail because they assume that exceptions are > available, but GCN does not support them, yet.
Pushed to trunk branch commit 2466b0b4d9bcfe51c1a049c3d7f6a8043d68630e "nvptx doesn't actually support effective-target 'exceptions'", see attached. Grüße Thomas > This patch adds "dg-require-effective-target exceptions" in all the affected > tests. There's probably an automatic way to test for exceptions, but the > current implementation simply says that AMD GCN does not support them. This > should ensure that no other targets are affected by the change. > > 2018-09-05 Andrew Stubbs <a...@codesourcery.com> > Kwok Cheung Yeung <k...@codesourcery.com> > Julian Brown <jul...@codesourcery.com> > Tom de Vries <t...@codesourcery.com> > > gcc/testsuite/ > * c-c++-common/ubsan/pr71512-1.c: Require exceptions. > * c-c++-common/ubsan/pr71512-2.c: Require exceptions. > * gcc.c-torture/compile/pr34648.c: Require exceptions. > * gcc.c-torture/compile/pr41469.c: Require exceptions. > * gcc.dg/20111216-1.c: Require exceptions. > * gcc.dg/cleanup-10.c: Require exceptions. > * gcc.dg/cleanup-11.c: Require exceptions. > * gcc.dg/cleanup-12.c: Require exceptions. > * gcc.dg/cleanup-13.c: Require exceptions. > * gcc.dg/cleanup-5.c: Require exceptions. > * gcc.dg/cleanup-8.c: Require exceptions. > * gcc.dg/cleanup-9.c: Require exceptions. > * gcc.dg/gomp/pr29955.c: Require exceptions. > * gcc.dg/lto/pr52097_0.c: Require exceptions. > * gcc.dg/nested-func-5.c: Require exceptions. > * gcc.dg/pch/except-1.c: Require exceptions. > * gcc.dg/pch/valid-2.c: Require exceptions. > * gcc.dg/pr41470.c: Require exceptions. > * gcc.dg/pr42427.c: Require exceptions. > * gcc.dg/pr44545.c: Require exceptions. > * gcc.dg/pr47086.c: Require exceptions. > * gcc.dg/pr51481.c: Require exceptions. > * gcc.dg/pr51644.c: Require exceptions. > * gcc.dg/pr52046.c: Require exceptions. > * gcc.dg/pr54669.c: Require exceptions. > * gcc.dg/pr56424.c: Require exceptions. > * gcc.dg/pr64465.c: Require exceptions. > * gcc.dg/pr65802.c: Require exceptions. > * gcc.dg/pr67563.c: Require exceptions. > * gcc.dg/tree-ssa/pr41469-1.c: Require exceptions. > * gcc.dg/tree-ssa/ssa-dse-28.c: Require exceptions. > * gcc.dg/vect/pr46663.c: Require exceptions. > * lib/target-supports.exp (check_effective_target_exceptions): New. > --- > gcc/testsuite/c-c++-common/ubsan/pr71512-1.c | 1 + > gcc/testsuite/c-c++-common/ubsan/pr71512-2.c | 1 + > gcc/testsuite/gcc.c-torture/compile/pr34648.c | 1 + > gcc/testsuite/gcc.c-torture/compile/pr41469.c | 1 + > gcc/testsuite/gcc.dg/20111216-1.c | 1 + > gcc/testsuite/gcc.dg/cleanup-10.c | 1 + > gcc/testsuite/gcc.dg/cleanup-11.c | 1 + > gcc/testsuite/gcc.dg/cleanup-12.c | 1 + > gcc/testsuite/gcc.dg/cleanup-13.c | 1 + > gcc/testsuite/gcc.dg/cleanup-5.c | 1 + > gcc/testsuite/gcc.dg/cleanup-8.c | 1 + > gcc/testsuite/gcc.dg/cleanup-9.c | 1 + > gcc/testsuite/gcc.dg/gomp/pr29955.c | 1 + > gcc/testsuite/gcc.dg/lto/pr52097_0.c | 1 + > gcc/testsuite/gcc.dg/nested-func-5.c | 1 + > gcc/testsuite/gcc.dg/pch/except-1.c | 1 + > gcc/testsuite/gcc.dg/pch/valid-2.c | 2 +- > gcc/testsuite/gcc.dg/pr41470.c | 1 + > gcc/testsuite/gcc.dg/pr42427.c | 1 + > gcc/testsuite/gcc.dg/pr44545.c | 1 + > gcc/testsuite/gcc.dg/pr47086.c | 1 + > gcc/testsuite/gcc.dg/pr51481.c | 1 + > gcc/testsuite/gcc.dg/pr51644.c | 1 + > gcc/testsuite/gcc.dg/pr52046.c | 1 + > gcc/testsuite/gcc.dg/pr54669.c | 1 + > gcc/testsuite/gcc.dg/pr56424.c | 1 + > gcc/testsuite/gcc.dg/pr64465.c | 1 + > gcc/testsuite/gcc.dg/pr65802.c | 1 + > gcc/testsuite/gcc.dg/pr67563.c | 1 + > gcc/testsuite/gcc.dg/tree-ssa/pr41469-1.c | 1 + > gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-28.c | 1 + > gcc/testsuite/gcc.dg/vect/pr46663.c | 1 + > gcc/testsuite/lib/target-supports.exp | 10 ++++++++++ > 33 files changed, 42 insertions(+), 1 deletion(-) > > diff --git a/gcc/testsuite/c-c++-common/ubsan/pr71512-1.c > b/gcc/testsuite/c-c++-common/ubsan/pr71512-1.c > index 2a90ab1..8af9365 100644 > --- a/gcc/testsuite/c-c++-common/ubsan/pr71512-1.c > +++ b/gcc/testsuite/c-c++-common/ubsan/pr71512-1.c > @@ -1,5 +1,6 @@ > /* PR c/71512 */ > /* { dg-do compile } */ > /* { dg-options "-O2 -fnon-call-exceptions -ftrapv -fexceptions > -fsanitize=undefined" } */ > +/* { dg-require-effective-target exceptions } */ > > #include "../../gcc.dg/pr44545.c" > diff --git a/gcc/testsuite/c-c++-common/ubsan/pr71512-2.c > b/gcc/testsuite/c-c++-common/ubsan/pr71512-2.c > index 1c95593..0c16934 100644 > --- a/gcc/testsuite/c-c++-common/ubsan/pr71512-2.c > +++ b/gcc/testsuite/c-c++-common/ubsan/pr71512-2.c > @@ -1,5 +1,6 @@ > /* PR c/71512 */ > /* { dg-do compile } */ > /* { dg-options "-O -fexceptions -fnon-call-exceptions -ftrapv > -fsanitize=undefined" } */ > +/* { dg-require-effective-target exceptions } */ > > #include "../../gcc.dg/pr47086.c" > diff --git a/gcc/testsuite/gcc.c-torture/compile/pr34648.c > b/gcc/testsuite/gcc.c-torture/compile/pr34648.c > index 8bcdae0..90a88b9 100644 > --- a/gcc/testsuite/gcc.c-torture/compile/pr34648.c > +++ b/gcc/testsuite/gcc.c-torture/compile/pr34648.c > @@ -1,6 +1,7 @@ > /* PR tree-optimization/34648 */ > > /* { dg-options "-fexceptions" } */ > +/* { dg-require-effective-target exceptions } */ > > extern const unsigned short int **bar (void) __attribute__ ((const)); > const char *a; > diff --git a/gcc/testsuite/gcc.c-torture/compile/pr41469.c > b/gcc/testsuite/gcc.c-torture/compile/pr41469.c > index 5917794..923bca2 100644 > --- a/gcc/testsuite/gcc.c-torture/compile/pr41469.c > +++ b/gcc/testsuite/gcc.c-torture/compile/pr41469.c > @@ -1,5 +1,6 @@ > /* { dg-options "-fexceptions" } */ > /* { dg-skip-if "requires alloca" { ! alloca } { "-O0" } { "" } } */ > +/* { dg-require-effective-target exceptions } */ > > void > af (void *a) > diff --git a/gcc/testsuite/gcc.dg/20111216-1.c > b/gcc/testsuite/gcc.dg/20111216-1.c > index cd82cf9..7f9395e 100644 > --- a/gcc/testsuite/gcc.dg/20111216-1.c > +++ b/gcc/testsuite/gcc.dg/20111216-1.c > @@ -1,5 +1,6 @@ > /* { dg-do compile } */ > /* { dg-options "-O -fexceptions -fnon-call-exceptions" } */ > +/* { dg-require-effective-target exceptions } */ > > extern void f2 () __attribute__ ((noreturn)); > void > diff --git a/gcc/testsuite/gcc.dg/cleanup-10.c > b/gcc/testsuite/gcc.dg/cleanup-10.c > index 16035b1..1af63ea 100644 > --- a/gcc/testsuite/gcc.dg/cleanup-10.c > +++ b/gcc/testsuite/gcc.dg/cleanup-10.c > @@ -1,5 +1,6 @@ > /* { dg-do run { target hppa*-*-hpux* *-*-linux* *-*-gnu* powerpc*-*-darwin* > *-*-darwin[912]* } } */ > /* { dg-options "-fexceptions -fnon-call-exceptions -O2" } */ > +/* { dg-require-effective-target exceptions } */ > /* Verify that cleanups work with exception handling through signal frames > on alternate stack. */ > > diff --git a/gcc/testsuite/gcc.dg/cleanup-11.c > b/gcc/testsuite/gcc.dg/cleanup-11.c > index ccc61ed..c1f19fe 100644 > --- a/gcc/testsuite/gcc.dg/cleanup-11.c > +++ b/gcc/testsuite/gcc.dg/cleanup-11.c > @@ -1,5 +1,6 @@ > /* { dg-do run { target hppa*-*-hpux* *-*-linux* *-*-gnu* powerpc*-*-darwin* > *-*-darwin[912]* } } */ > /* { dg-options "-fexceptions -fnon-call-exceptions -O2" } */ > +/* { dg-require-effective-target exceptions } */ > /* Verify that cleanups work with exception handling through realtime signal > frames on alternate stack. */ > > diff --git a/gcc/testsuite/gcc.dg/cleanup-12.c > b/gcc/testsuite/gcc.dg/cleanup-12.c > index efb9a58..2171e35 100644 > --- a/gcc/testsuite/gcc.dg/cleanup-12.c > +++ b/gcc/testsuite/gcc.dg/cleanup-12.c > @@ -4,6 +4,7 @@ > /* { dg-options "-O2 -fexceptions" } */ > /* { dg-skip-if "" { "ia64-*-hpux11.*" } } */ > /* { dg-skip-if "" { ! nonlocal_goto } } */ > +/* { dg-require-effective-target exceptions } */ > /* 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 8a8db27..1b7ea5c 100644 > --- a/gcc/testsuite/gcc.dg/cleanup-13.c > +++ b/gcc/testsuite/gcc.dg/cleanup-13.c > @@ -3,6 +3,7 @@ > /* { dg-options "-fexceptions" } */ > /* { dg-skip-if "" { "ia64-*-hpux11.*" } } */ > /* { dg-skip-if "" { ! nonlocal_goto } } */ > +/* { dg-require-effective-target exceptions } */ > /* 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 4257f9e..9ed2a7c 100644 > --- a/gcc/testsuite/gcc.dg/cleanup-5.c > +++ b/gcc/testsuite/gcc.dg/cleanup-5.c > @@ -3,6 +3,7 @@ > /* { dg-options "-fexceptions" } */ > /* { dg-skip-if "" { "ia64-*-hpux11.*" } } */ > /* { dg-skip-if "" { ! nonlocal_goto } } */ > +/* { dg-require-effective-target exceptions } */ > /* Verify that cleanups work with exception handling. */ > > #include <unwind.h> > diff --git a/gcc/testsuite/gcc.dg/cleanup-8.c > b/gcc/testsuite/gcc.dg/cleanup-8.c > index 553c038..45abdb2 100644 > --- a/gcc/testsuite/gcc.dg/cleanup-8.c > +++ b/gcc/testsuite/gcc.dg/cleanup-8.c > @@ -1,5 +1,6 @@ > /* { dg-do run { target hppa*-*-hpux* *-*-linux* *-*-gnu* powerpc*-*-darwin* > *-*-darwin[912]* } } */ > /* { dg-options "-fexceptions -fnon-call-exceptions -O2" } */ > +/* { dg-require-effective-target exceptions } */ > /* Verify that cleanups work with exception handling through signal > frames. */ > > diff --git a/gcc/testsuite/gcc.dg/cleanup-9.c > b/gcc/testsuite/gcc.dg/cleanup-9.c > index fe28072..98dc268 100644 > --- a/gcc/testsuite/gcc.dg/cleanup-9.c > +++ b/gcc/testsuite/gcc.dg/cleanup-9.c > @@ -1,5 +1,6 @@ > /* { dg-do run { target hppa*-*-hpux* *-*-linux* *-*-gnu* powerpc*-*-darwin* > *-*-darwin[912]* } } */ > /* { dg-options "-fexceptions -fnon-call-exceptions -O2" } */ > +/* { dg-require-effective-target exceptions } */ > /* Verify that cleanups work with exception handling through realtime > signal frames. */ > > diff --git a/gcc/testsuite/gcc.dg/gomp/pr29955.c > b/gcc/testsuite/gcc.dg/gomp/pr29955.c > index e49c11c..102898c 100644 > --- a/gcc/testsuite/gcc.dg/gomp/pr29955.c > +++ b/gcc/testsuite/gcc.dg/gomp/pr29955.c > @@ -1,6 +1,7 @@ > /* PR c/29955 */ > /* { dg-do compile } */ > /* { dg-options "-O2 -fopenmp -fexceptions" } */ > +/* { dg-require-effective-target exceptions } */ > > extern void bar (int); > > diff --git a/gcc/testsuite/gcc.dg/lto/pr52097_0.c > b/gcc/testsuite/gcc.dg/lto/pr52097_0.c > index cd4af5d..1b3fda3 100644 > --- a/gcc/testsuite/gcc.dg/lto/pr52097_0.c > +++ b/gcc/testsuite/gcc.dg/lto/pr52097_0.c > @@ -1,5 +1,6 @@ > /* { dg-lto-do link } */ > /* { dg-lto-options { { -O -flto -fexceptions -fnon-call-exceptions --param > allow-store-data-races=0 } } } */ > +/* { dg-require-effective-target exceptions } */ > > typedef struct { unsigned int e0 : 16; } s1; > typedef struct { unsigned int e0 : 16; } s2; > diff --git a/gcc/testsuite/gcc.dg/nested-func-5.c > b/gcc/testsuite/gcc.dg/nested-func-5.c > index 3545f37..591f8a2 100644 > --- a/gcc/testsuite/gcc.dg/nested-func-5.c > +++ b/gcc/testsuite/gcc.dg/nested-func-5.c > @@ -2,6 +2,7 @@ > /* { dg-options "-fexceptions" } */ > /* PR28516: ICE generating ARM unwind directives for nested functions. */ > /* { dg-require-effective-target trampolines } */ > +/* { dg-require-effective-target exceptions } */ > > void ex(int (*)(void)); > void foo(int i) > diff --git a/gcc/testsuite/gcc.dg/pch/except-1.c > b/gcc/testsuite/gcc.dg/pch/except-1.c > index f81b098..30350ed 100644 > --- a/gcc/testsuite/gcc.dg/pch/except-1.c > +++ b/gcc/testsuite/gcc.dg/pch/except-1.c > @@ -1,4 +1,5 @@ > /* { dg-options "-fexceptions -I." } */ > +/* { dg-require-effective-target exceptions } */ > #include "except-1.h" > > int main(void) > diff --git a/gcc/testsuite/gcc.dg/pch/valid-2.c > b/gcc/testsuite/gcc.dg/pch/valid-2.c > index 3d8cb14..15a57c9 100644 > --- a/gcc/testsuite/gcc.dg/pch/valid-2.c > +++ b/gcc/testsuite/gcc.dg/pch/valid-2.c > @@ -1,5 +1,5 @@ > /* { dg-options "-I. -Winvalid-pch -fexceptions" } */ > - > +/* { dg-require-effective-target exceptions } */ > #include "valid-2.h" /* { dg-warning "settings for -fexceptions do not > match" } */ > /* { dg-error "No such file" "no such file" { target *-*-* } 0 } */ > /* { dg-error "they were invalid" "invalid files" { target *-*-* } 0 } */ > diff --git a/gcc/testsuite/gcc.dg/pr41470.c b/gcc/testsuite/gcc.dg/pr41470.c > index 7ef0086..7374fac 100644 > --- a/gcc/testsuite/gcc.dg/pr41470.c > +++ b/gcc/testsuite/gcc.dg/pr41470.c > @@ -1,6 +1,7 @@ > /* { dg-do compile } */ > /* { dg-options "-fexceptions" } */ > /* { dg-require-effective-target alloca } */ > +/* { dg-require-effective-target exceptions } */ > > void cf (void *); > > diff --git a/gcc/testsuite/gcc.dg/pr42427.c b/gcc/testsuite/gcc.dg/pr42427.c > index cb43dd2..cb290fe 100644 > --- a/gcc/testsuite/gcc.dg/pr42427.c > +++ b/gcc/testsuite/gcc.dg/pr42427.c > @@ -2,6 +2,7 @@ > /* { dg-options "-O2 -fexceptions -fnon-call-exceptions -fpeel-loops" } */ > /* { dg-add-options c99_runtime } */ > /* { dg-require-effective-target ilp32 } */ > +/* { dg-require-effective-target exceptions } */ > > #include <complex.h> > > diff --git a/gcc/testsuite/gcc.dg/pr44545.c b/gcc/testsuite/gcc.dg/pr44545.c > index 8058261..37f75f1 100644 > --- a/gcc/testsuite/gcc.dg/pr44545.c > +++ b/gcc/testsuite/gcc.dg/pr44545.c > @@ -1,5 +1,6 @@ > /* { dg-do compile } */ > /* { dg-options "-O2 -fnon-call-exceptions -ftrapv -fexceptions" } */ > +/* { dg-require-effective-target exceptions } */ > void > DrawChunk(int *tabSize, int x) > { > diff --git a/gcc/testsuite/gcc.dg/pr47086.c b/gcc/testsuite/gcc.dg/pr47086.c > index 71743fe..473e802 100644 > --- a/gcc/testsuite/gcc.dg/pr47086.c > +++ b/gcc/testsuite/gcc.dg/pr47086.c > @@ -1,5 +1,6 @@ > /* { dg-do compile } */ > /* { dg-options "-O -fexceptions -fnon-call-exceptions -ftrapv" } */ > +/* { dg-require-effective-target exceptions } */ > > void > foo () > diff --git a/gcc/testsuite/gcc.dg/pr51481.c b/gcc/testsuite/gcc.dg/pr51481.c > index d883d47..a35f8f3 100644 > --- a/gcc/testsuite/gcc.dg/pr51481.c > +++ b/gcc/testsuite/gcc.dg/pr51481.c > @@ -1,6 +1,7 @@ > /* PR tree-optimization/51481 */ > /* { dg-do compile } */ > /* { dg-options "-O -fexceptions -fipa-cp -fipa-cp-clone" } */ > +/* { dg-require-effective-target exceptions } */ > > extern const unsigned short int **foo (void) > __attribute__ ((__nothrow__, __const__)); > diff --git a/gcc/testsuite/gcc.dg/pr51644.c b/gcc/testsuite/gcc.dg/pr51644.c > index 2038a0c..e23c02f 100644 > --- a/gcc/testsuite/gcc.dg/pr51644.c > +++ b/gcc/testsuite/gcc.dg/pr51644.c > @@ -1,6 +1,7 @@ > /* PR middle-end/51644 */ > /* { dg-do compile } */ > /* { dg-options "-Wall -fexceptions" } */ > +/* { dg-require-effective-target exceptions } */ > > #include <stdarg.h> > > diff --git a/gcc/testsuite/gcc.dg/pr52046.c b/gcc/testsuite/gcc.dg/pr52046.c > index e72061f..f0873e2 100644 > --- a/gcc/testsuite/gcc.dg/pr52046.c > +++ b/gcc/testsuite/gcc.dg/pr52046.c > @@ -1,6 +1,7 @@ > /* PR tree-optimization/52046 */ > /* { dg-do compile } */ > /* { dg-options "-O3 -fexceptions -fnon-call-exceptions" } */ > +/* { dg-require-effective-target exceptions } */ > > extern float a[], b[], c[], d[]; > extern int k[]; > diff --git a/gcc/testsuite/gcc.dg/pr54669.c b/gcc/testsuite/gcc.dg/pr54669.c > index b68c047..48967ed 100644 > --- a/gcc/testsuite/gcc.dg/pr54669.c > +++ b/gcc/testsuite/gcc.dg/pr54669.c > @@ -3,6 +3,7 @@ > > /* { dg-do compile } */ > /* { dg-options "-O2 -fexceptions -fnon-call-exceptions" } */ > +/* { dg-require-effective-target exceptions } */ > > int a[10]; > > diff --git a/gcc/testsuite/gcc.dg/pr56424.c b/gcc/testsuite/gcc.dg/pr56424.c > index a724c64..7f28f04 100644 > --- a/gcc/testsuite/gcc.dg/pr56424.c > +++ b/gcc/testsuite/gcc.dg/pr56424.c > @@ -2,6 +2,7 @@ > > /* { dg-do compile } */ > /* { dg-options "-O2 -fexceptions -fnon-call-exceptions" } */ > +/* { dg-require-effective-target exceptions } */ > > extern long double cosl (long double); > extern long double sinl (long double); > diff --git a/gcc/testsuite/gcc.dg/pr64465.c b/gcc/testsuite/gcc.dg/pr64465.c > index acfa952..d1d1749 100644 > --- a/gcc/testsuite/gcc.dg/pr64465.c > +++ b/gcc/testsuite/gcc.dg/pr64465.c > @@ -1,6 +1,7 @@ > /* PR tree-optimization/64465 */ > /* { dg-do compile } */ > /* { dg-options "-O2 -fexceptions" } */ > +/* { dg-require-effective-target exceptions } */ > > extern int foo (int *); > extern int bar (int, int); > diff --git a/gcc/testsuite/gcc.dg/pr65802.c b/gcc/testsuite/gcc.dg/pr65802.c > index fcec234..0721ca8 100644 > --- a/gcc/testsuite/gcc.dg/pr65802.c > +++ b/gcc/testsuite/gcc.dg/pr65802.c > @@ -1,5 +1,6 @@ > /* { dg-do compile } */ > /* { dg-options "-O0 -fexceptions" } */ > +/* { dg-require-effective-target exceptions } */ > > #include <stdarg.h> > > diff --git a/gcc/testsuite/gcc.dg/pr67563.c b/gcc/testsuite/gcc.dg/pr67563.c > index 34a78a2..5a727b8 100644 > --- a/gcc/testsuite/gcc.dg/pr67563.c > +++ b/gcc/testsuite/gcc.dg/pr67563.c > @@ -1,5 +1,6 @@ > /* { dg-do compile } */ > /* { dg-options "-O2 -fexceptions" } */ > +/* { dg-require-effective-target exceptions } */ > > static void > emit_package (int p1) > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr41469-1.c > b/gcc/testsuite/gcc.dg/tree-ssa/pr41469-1.c > index 6be7cd9..eb8e1f2 100644 > --- a/gcc/testsuite/gcc.dg/tree-ssa/pr41469-1.c > +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr41469-1.c > @@ -1,5 +1,6 @@ > /* { dg-do compile } */ > /* { dg-options "-O2 -fexceptions -fdump-tree-optimized" } */ > +/* { dg-require-effective-target exceptions } */ > > void af (void *a); > > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-28.c > b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-28.c > index d35377b..d3a1bbc 100644 > --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-28.c > +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-28.c > @@ -1,5 +1,6 @@ > /* { dg-do compile } */ > /* { dg-options "-O2 -fdump-tree-dse-details -fexceptions > -fnon-call-exceptions -fno-isolate-erroneous-paths-dereference" } */ > +/* { dg-require-effective-target exceptions } */ > > > int foo (int *p, int b) > diff --git a/gcc/testsuite/gcc.dg/vect/pr46663.c > b/gcc/testsuite/gcc.dg/vect/pr46663.c > index 457ceae..c2e56bb 100644 > --- a/gcc/testsuite/gcc.dg/vect/pr46663.c > +++ b/gcc/testsuite/gcc.dg/vect/pr46663.c > @@ -1,5 +1,6 @@ > /* { dg-do compile } */ > /* { dg-additional-options "-O -fexceptions" } */ > +/* { dg-require-effective-target exceptions } */ > > typedef __attribute__ ((const)) int (*bart) (void); > > diff --git a/gcc/testsuite/lib/target-supports.exp > b/gcc/testsuite/lib/target-supports.exp > index b51e8f0..e27bed0 100644 > --- a/gcc/testsuite/lib/target-supports.exp > +++ b/gcc/testsuite/lib/target-supports.exp > @@ -8826,6 +8826,16 @@ proc check_effective_target_fenv_exceptions {} { > } [add_options_for_ieee "-std=gnu99"]] > } > > +# Return 1 if -fexceptions is supported. > + > +proc check_effective_target_exceptions {} { > + if { [istarget amdgcn*-*-*] } { > + return 0 > + } > + return 1 > +} > + > + > proc check_effective_target_tiny {} { > global et_target_tiny_saved >
>From 2466b0b4d9bcfe51c1a049c3d7f6a8043d68630e Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <tschwi...@baylibre.com> Date: Thu, 6 Feb 2025 22:46:26 +0100 Subject: [PATCH] nvptx doesn't actually support effective-target 'exceptions' gcc/testsuite/ * lib/target-supports.exp (check_effective_target_exceptions): 'return 0' for '[istarget nvptx-*-*]'. --- gcc/testsuite/lib/target-supports.exp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 3ec2fef70c8..fe1eb34cf22 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -12564,7 +12564,8 @@ proc check_effective_target_fenv_exceptions_long_double {} { proc check_effective_target_exceptions {} { if { [istarget amdgcn*-*-*] - || [istarget bpf-*-*] } { + || [istarget bpf-*-*] + || [istarget nvptx-*-*] } { return 0 } return 1 -- 2.34.1