aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/doc/sourcebuild.texi3
-rw-r--r--gcc/testsuite/ChangeLog39
-rw-r--r--gcc/testsuite/c-c++-common/ubsan/pr71512-1.c1
-rw-r--r--gcc/testsuite/c-c++-common/ubsan/pr71512-2.c1
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr34648.c1
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr41469.c1
-rw-r--r--gcc/testsuite/gcc.dg/20111216-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/cleanup-10.c1
-rw-r--r--gcc/testsuite/gcc.dg/cleanup-11.c1
-rw-r--r--gcc/testsuite/gcc.dg/cleanup-12.c1
-rw-r--r--gcc/testsuite/gcc.dg/cleanup-13.c1
-rw-r--r--gcc/testsuite/gcc.dg/cleanup-5.c1
-rw-r--r--gcc/testsuite/gcc.dg/cleanup-8.c1
-rw-r--r--gcc/testsuite/gcc.dg/cleanup-9.c1
-rw-r--r--gcc/testsuite/gcc.dg/gomp/pr29955.c1
-rw-r--r--gcc/testsuite/gcc.dg/lto/pr52097_0.c1
-rw-r--r--gcc/testsuite/gcc.dg/nested-func-5.c1
-rw-r--r--gcc/testsuite/gcc.dg/pch/except-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/pch/valid-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr41470.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr42427.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr44545.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr47086.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr51481.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr51644.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr52046.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr54669.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr56424.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr64465.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr65802.c1
-rw-r--r--gcc/testsuite/gcc.dg/pr67563.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr41469-1.c1
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-28.c1
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr46663.c1
-rw-r--r--gcc/testsuite/lib/target-supports.exp10
36 files changed, 92 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4cc44d7..2a4130e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -2,6 +2,14 @@
Kwok Cheung Yeung <kcy@codesourcery.com>
Julian Brown <julian@codesourcery.com>
Tom de Vries <tom@codesourcery.com>
+
+ * doc/sourcebuild.texi: Document dg-required-effective-target
+ exceptions.
+
+2019-01-17 Andrew Stubbs <ams@codesourcery.com>
+ Kwok Cheung Yeung <kcy@codesourcery.com>
+ Julian Brown <julian@codesourcery.com>
+ Tom de Vries <tom@codesourcery.com>
Jan Hubicka <hubicka@ucw.cz>
Martin Jambor <mjambor@suse.cz>
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index 1970f44..c93a516 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -2228,6 +2228,9 @@ Target uses @code{__cxa_atexit}.
@item default_packed
Target has packed layout of structure members by default.
+@item exceptions
+Target supports exceptions.
+
@item fgraphite
Target supports Graphite optimizations.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 632da85..c4e1dd5 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,42 @@
+2019-01-17 Andrew Stubbs <ams@codesourcery.com>
+ Kwok Cheung Yeung <kcy@codesourcery.com>
+ Julian Brown <julian@codesourcery.com>
+ Tom de Vries <tom@codesourcery.com>
+
+ * 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.
+
2019-01-17 Tamar Christina <tamar.christina@arm.com>
PR target/88851
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 88fbc8d..cc6e2bb 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -8510,6 +8510,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 {} {
return [check_cached_effective_target tiny {
if { [istarget aarch64*-*-*]