This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 22/25] Add dg-require-effective-target exceptions


<ams@codesourcery.com> writes:
> There are a number of tests that fail because they assume that exceptions are
> available, but GCN does not support them, yet.
>
> 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.

Manual markup seems fine as long as it's agreed that maintainers of
affected targets are the ones responsible for keeping the markup up
to date (under the obvious rule of course).  There are so many target
selectors that it's hard to remember which options require explicit
tests and which don't, so I don't think the onus should be on every
developer adding a new exception-related test.

The new selector needs an entry in doc/sourcebuild.texi.
OK with that change, thanks.

Richard

>
> 2018-09-05  Andrew Stubbs  <ams@codesourcery.com>
> 	    Kwok Cheung Yeung  <kcy@codesourcery.com>
> 	    Julian Brown  <julian@codesourcery.com>
> 	    Tom de Vries  <tom@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
>  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]