From fb7847774109c47708bc0fe26270d89a0db8ae0b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 7 Jun 2023 14:14:44 +0200 Subject: [PATCH] Skip a number of C++ test cases for '-fno-exceptions' testing Running 'make check' with: 'RUNTESTFLAGS=--target_board=unix/-fno-exceptions', 'error: exception handling disabled' is triggered for C++ 'throw' etc. usage, and per 'gcc/testsuite/lib/gcc-dg.exp:gcc-dg-prune': # If exceptions are disabled, mark tests expecting exceptions to be enabled # as unsupported. if { ![check_effective_target_exceptions_enabled] } { if [regexp "(^|\n)\[^\n\]*: error: exception handling disabled" $text] { return "::unsupported::exception handling disabled" } ..., which generally means: -PASS: [...] (test for excess errors) +UNSUPPORTED: [...]: exception handling disabled However, if there are additional 'dg-error' etc. directives, these may regress PASS -> FAIL (or similar) -- if their associated diagnostics are precluded by 'error: exception handling disabled'. For example: PASS: g++.dg/cpp2a/explicit1.C (test for errors, line 43) PASS: g++.dg/cpp2a/explicit1.C (test for errors, line 47) [-PASS:-]{+FAIL:+} g++.dg/cpp2a/explicit1.C (test for errors, line 50) [-PASS:-]{+FAIL:+} g++.dg/cpp2a/explicit1.C (test for errors, line 51) PASS: g++.dg/cpp2a/explicit1.C (test for errors, line 52) PASS: g++.dg/cpp2a/explicit1.C (test for errors, line 53) PASS: g++.dg/cpp2a/explicit1.C (test for errors, line 59) [-PASS:-]{+UNSUPPORTED:+} g++.dg/cpp2a/explicit1.C [-(test for excess errors)-]{+: exception handling disabled+} Specify 'dg-require-effective-target exceptions_enabled' for those test cases. gcc/testsuite/ * g++.dg/coroutines/pr95616-0.C: Specify 'dg-require-effective-target exceptions_enabled'. * g++.dg/coroutines/pr95616-1.C: Likewise. * g++.dg/coroutines/pr95616-2.C: Likewise. * g++.dg/coroutines/pr95616-3.C: Likewise. * g++.dg/coroutines/pr95616-4.C: Likewise. * g++.dg/coroutines/pr95616-5.C: Likewise. * g++.dg/coroutines/pr95616-6.C: Likewise. * g++.dg/cpp0x/catch1.C: Likewise. * g++.dg/cpp0x/constexpr-throw.C: Likewise. * g++.dg/cpp1y/constexpr-89785-2.C: Likewise. * g++.dg/cpp1y/constexpr-throw.C: Likewise. * g++.dg/cpp1y/pr79393-3.C: Likewise. * g++.dg/cpp2a/consteval-memfn1.C: Likewise. * g++.dg/cpp2a/consteval11.C: Likewise. * g++.dg/cpp2a/consteval9.C: Likewise. * g++.dg/cpp2a/explicit1.C: Likewise. * g++.dg/cpp2a/explicit2.C: Likewise. * g++.dg/cpp2a/explicit5.C: Likewise. * g++.dg/eh/builtin10.C: Likewise. * g++.dg/eh/builtin11.C: Likewise. * g++.dg/eh/builtin6.C: Likewise. * g++.dg/eh/builtin7.C: Likewise. * g++.dg/eh/builtin9.C: Likewise. * g++.dg/eh/dtor4.C: Likewise. * g++.dg/eh/pr42859.C: Likewise. * g++.dg/ext/stmtexpr25.C: Likewise. * g++.dg/ext/vla4.C: Likewise. * g++.dg/init/placement4.C: Likewise. * g++.dg/other/error32.C: Likewise. * g++.dg/parse/crash55.C: Likewise. * g++.dg/parse/pr31952-2.C: Likewise. * g++.dg/parse/pr31952-3.C: Likewise. * g++.dg/tm/noexcept-7.C: Likewise. * g++.dg/torture/pr43257.C: Likewise. * g++.dg/torture/pr56694.C: Likewise. * g++.dg/torture/pr81659.C: Likewise. * g++.dg/warn/Wcatch-value-1.C: Likewise. * g++.dg/warn/Wcatch-value-2.C: Likewise. * g++.dg/warn/Wcatch-value-3.C: Likewise. * g++.dg/warn/Wcatch-value-3b.C: Likewise. * g++.dg/warn/Wexceptions1.C: Likewise. * g++.dg/warn/Wexceptions3.C: Likewise. * g++.dg/warn/Winfinite-recursion-3.C: Likewise. * g++.dg/warn/Wreturn-6.C: Likewise. * g++.dg/warn/Wstringop-truncation-2.C: Likewise. * g++.dg/warn/Wterminate1.C: Likewise. * g++.old-deja/g++.eh/catch1.C: Likewise. * g++.old-deja/g++.eh/catch10.C: Likewise. * g++.old-deja/g++.eh/cond1.C: Likewise. * g++.old-deja/g++.eh/ctor1.C: Likewise. * g++.old-deja/g++.eh/throw2.C: Likewise. * g++.old-deja/g++.other/cond5.C: Likewise. --- gcc/testsuite/g++.dg/coroutines/pr95616-0.C | 1 + gcc/testsuite/g++.dg/coroutines/pr95616-1.C | 1 + gcc/testsuite/g++.dg/coroutines/pr95616-2.C | 1 + gcc/testsuite/g++.dg/coroutines/pr95616-3.C | 1 + gcc/testsuite/g++.dg/coroutines/pr95616-4.C | 1 + gcc/testsuite/g++.dg/coroutines/pr95616-5.C | 1 + gcc/testsuite/g++.dg/coroutines/pr95616-6.C | 1 + gcc/testsuite/g++.dg/cpp0x/catch1.C | 1 + gcc/testsuite/g++.dg/cpp0x/constexpr-throw.C | 1 + gcc/testsuite/g++.dg/cpp1y/constexpr-89785-2.C | 1 + gcc/testsuite/g++.dg/cpp1y/constexpr-throw.C | 1 + gcc/testsuite/g++.dg/cpp1y/pr79393-3.C | 1 + gcc/testsuite/g++.dg/cpp2a/consteval-memfn1.C | 1 + gcc/testsuite/g++.dg/cpp2a/consteval11.C | 1 + gcc/testsuite/g++.dg/cpp2a/consteval9.C | 1 + gcc/testsuite/g++.dg/cpp2a/explicit1.C | 1 + gcc/testsuite/g++.dg/cpp2a/explicit2.C | 1 + gcc/testsuite/g++.dg/cpp2a/explicit5.C | 1 + gcc/testsuite/g++.dg/eh/builtin10.C | 1 + gcc/testsuite/g++.dg/eh/builtin11.C | 1 + gcc/testsuite/g++.dg/eh/builtin6.C | 1 + gcc/testsuite/g++.dg/eh/builtin7.C | 1 + gcc/testsuite/g++.dg/eh/builtin9.C | 1 + gcc/testsuite/g++.dg/eh/dtor4.C | 2 ++ gcc/testsuite/g++.dg/eh/pr42859.C | 1 + gcc/testsuite/g++.dg/ext/stmtexpr25.C | 1 + gcc/testsuite/g++.dg/ext/vla4.C | 1 + gcc/testsuite/g++.dg/init/placement4.C | 2 ++ gcc/testsuite/g++.dg/other/error32.C | 1 + gcc/testsuite/g++.dg/parse/crash55.C | 2 ++ gcc/testsuite/g++.dg/parse/pr31952-2.C | 2 ++ gcc/testsuite/g++.dg/parse/pr31952-3.C | 2 ++ gcc/testsuite/g++.dg/tm/noexcept-7.C | 1 + gcc/testsuite/g++.dg/torture/pr43257.C | 1 + gcc/testsuite/g++.dg/torture/pr56694.C | 1 + gcc/testsuite/g++.dg/torture/pr81659.C | 1 + gcc/testsuite/g++.dg/warn/Wcatch-value-1.C | 1 + gcc/testsuite/g++.dg/warn/Wcatch-value-2.C | 1 + gcc/testsuite/g++.dg/warn/Wcatch-value-3.C | 1 + gcc/testsuite/g++.dg/warn/Wcatch-value-3b.C | 1 + gcc/testsuite/g++.dg/warn/Wexceptions1.C | 2 ++ gcc/testsuite/g++.dg/warn/Wexceptions3.C | 2 ++ gcc/testsuite/g++.dg/warn/Winfinite-recursion-3.C | 1 + gcc/testsuite/g++.dg/warn/Wreturn-6.C | 2 ++ gcc/testsuite/g++.dg/warn/Wstringop-truncation-2.C | 1 + gcc/testsuite/g++.dg/warn/Wterminate1.C | 1 + gcc/testsuite/g++.old-deja/g++.eh/catch1.C | 1 + gcc/testsuite/g++.old-deja/g++.eh/catch10.C | 1 + gcc/testsuite/g++.old-deja/g++.eh/cond1.C | 1 + gcc/testsuite/g++.old-deja/g++.eh/ctor1.C | 2 ++ gcc/testsuite/g++.old-deja/g++.eh/throw2.C | 1 + gcc/testsuite/g++.old-deja/g++.other/cond5.C | 1 + 52 files changed, 61 insertions(+) diff --git a/gcc/testsuite/g++.dg/coroutines/pr95616-0.C b/gcc/testsuite/g++.dg/coroutines/pr95616-0.C index e500b6ea636..3d0cc59fbb8 100644 --- a/gcc/testsuite/g++.dg/coroutines/pr95616-0.C +++ b/gcc/testsuite/g++.dg/coroutines/pr95616-0.C @@ -1,3 +1,4 @@ +// { dg-require-effective-target exceptions_enabled } // { dg-additional-options "-fsyntax-only" } #if __has_include() diff --git a/gcc/testsuite/g++.dg/coroutines/pr95616-1.C b/gcc/testsuite/g++.dg/coroutines/pr95616-1.C index c3989804e6b..2c7d7f2f6e8 100644 --- a/gcc/testsuite/g++.dg/coroutines/pr95616-1.C +++ b/gcc/testsuite/g++.dg/coroutines/pr95616-1.C @@ -1,3 +1,4 @@ +// { dg-require-effective-target exceptions_enabled } // { dg-additional-options "-fsyntax-only" } #if __has_include() diff --git a/gcc/testsuite/g++.dg/coroutines/pr95616-2.C b/gcc/testsuite/g++.dg/coroutines/pr95616-2.C index 6ad251986ec..671a3f30a3a 100644 --- a/gcc/testsuite/g++.dg/coroutines/pr95616-2.C +++ b/gcc/testsuite/g++.dg/coroutines/pr95616-2.C @@ -1,3 +1,4 @@ +// { dg-require-effective-target exceptions_enabled } // { dg-additional-options "-fsyntax-only" } #if __has_include() diff --git a/gcc/testsuite/g++.dg/coroutines/pr95616-3.C b/gcc/testsuite/g++.dg/coroutines/pr95616-3.C index 7da1f6a9658..e650d89e92a 100644 --- a/gcc/testsuite/g++.dg/coroutines/pr95616-3.C +++ b/gcc/testsuite/g++.dg/coroutines/pr95616-3.C @@ -1,3 +1,4 @@ +// { dg-require-effective-target exceptions_enabled } // { dg-additional-options "-fsyntax-only" } #if __has_include() diff --git a/gcc/testsuite/g++.dg/coroutines/pr95616-4.C b/gcc/testsuite/g++.dg/coroutines/pr95616-4.C index ef6a160a5c4..b783a9d338c 100644 --- a/gcc/testsuite/g++.dg/coroutines/pr95616-4.C +++ b/gcc/testsuite/g++.dg/coroutines/pr95616-4.C @@ -1,3 +1,4 @@ +// { dg-require-effective-target exceptions_enabled } // { dg-additional-options "-fsyntax-only" } #if __has_include() diff --git a/gcc/testsuite/g++.dg/coroutines/pr95616-5.C b/gcc/testsuite/g++.dg/coroutines/pr95616-5.C index 930c1a7e6a1..f7602bc593a 100644 --- a/gcc/testsuite/g++.dg/coroutines/pr95616-5.C +++ b/gcc/testsuite/g++.dg/coroutines/pr95616-5.C @@ -1,3 +1,4 @@ +// { dg-require-effective-target exceptions_enabled } // { dg-additional-options "-fsyntax-only" } #if __has_include() diff --git a/gcc/testsuite/g++.dg/coroutines/pr95616-6.C b/gcc/testsuite/g++.dg/coroutines/pr95616-6.C index e7481711c5e..e535cc9a7d7 100644 --- a/gcc/testsuite/g++.dg/coroutines/pr95616-6.C +++ b/gcc/testsuite/g++.dg/coroutines/pr95616-6.C @@ -1,3 +1,4 @@ +// { dg-require-effective-target exceptions_enabled } // { dg-additional-options "-fsyntax-only" } #if __has_include() diff --git a/gcc/testsuite/g++.dg/cpp0x/catch1.C b/gcc/testsuite/g++.dg/cpp0x/catch1.C index 81778ea7807..18ff3679a58 100644 --- a/gcc/testsuite/g++.dg/cpp0x/catch1.C +++ b/gcc/testsuite/g++.dg/cpp0x/catch1.C @@ -1,5 +1,6 @@ // PR c++/53371 // { dg-do compile { target c++11 } } +// { dg-require-effective-target exceptions_enabled } struct Abs { diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-throw.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-throw.C index 5666629acae..640f798a154 100644 --- a/gcc/testsuite/g++.dg/cpp0x/constexpr-throw.C +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-throw.C @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target exceptions_enabled } constexpr int may_throw(bool decide) { return decide ? 42 : throw -1; // { dg-error "throw" } diff --git a/gcc/testsuite/g++.dg/cpp1y/constexpr-89785-2.C b/gcc/testsuite/g++.dg/cpp1y/constexpr-89785-2.C index 7afd9d24e98..c7fdf678aaf 100644 --- a/gcc/testsuite/g++.dg/cpp1y/constexpr-89785-2.C +++ b/gcc/testsuite/g++.dg/cpp1y/constexpr-89785-2.C @@ -1,5 +1,6 @@ // PR c++/89785 // { dg-do compile { target c++14 } } +// { dg-require-effective-target exceptions_enabled } constexpr int foo (int x) diff --git a/gcc/testsuite/g++.dg/cpp1y/constexpr-throw.C b/gcc/testsuite/g++.dg/cpp1y/constexpr-throw.C index 35928744686..305a87b9a78 100644 --- a/gcc/testsuite/g++.dg/cpp1y/constexpr-throw.C +++ b/gcc/testsuite/g++.dg/cpp1y/constexpr-throw.C @@ -1,4 +1,5 @@ // { dg-do compile { target c++14 } } +// { dg-require-effective-target exceptions_enabled } constexpr void f1() { if (false) diff --git a/gcc/testsuite/g++.dg/cpp1y/pr79393-3.C b/gcc/testsuite/g++.dg/cpp1y/pr79393-3.C index 3c73cbbb659..8568d03856d 100644 --- a/gcc/testsuite/g++.dg/cpp1y/pr79393-3.C +++ b/gcc/testsuite/g++.dg/cpp1y/pr79393-3.C @@ -1,5 +1,6 @@ // pr c++/79393 // { dg-do compile { target c++14 } } +// { dg-require-effective-target exceptions_enabled } struct A { diff --git a/gcc/testsuite/g++.dg/cpp2a/consteval-memfn1.C b/gcc/testsuite/g++.dg/cpp2a/consteval-memfn1.C index 910e7a1ac1e..757ebac753c 100644 --- a/gcc/testsuite/g++.dg/cpp2a/consteval-memfn1.C +++ b/gcc/testsuite/g++.dg/cpp2a/consteval-memfn1.C @@ -1,5 +1,6 @@ // PR c++/99895 // { dg-do compile { target c++20 } } +// { dg-require-effective-target exceptions_enabled } struct fixed_string { consteval int size(int n) const { diff --git a/gcc/testsuite/g++.dg/cpp2a/consteval11.C b/gcc/testsuite/g++.dg/cpp2a/consteval11.C index 2f68ec0f892..40694cef4ba 100644 --- a/gcc/testsuite/g++.dg/cpp2a/consteval11.C +++ b/gcc/testsuite/g++.dg/cpp2a/consteval11.C @@ -1,4 +1,5 @@ // { dg-do compile } +// { dg-require-effective-target exceptions_enabled } // { dg-options "-std=c++2a" } consteval int bar (int i) { if (i != 1) throw 1; return 0; } // { dg-error "is not a constant expression" } diff --git a/gcc/testsuite/g++.dg/cpp2a/consteval9.C b/gcc/testsuite/g++.dg/cpp2a/consteval9.C index 489286a12d2..36ab3d7ee84 100644 --- a/gcc/testsuite/g++.dg/cpp2a/consteval9.C +++ b/gcc/testsuite/g++.dg/cpp2a/consteval9.C @@ -1,4 +1,5 @@ // { dg-do compile } +// { dg-require-effective-target exceptions_enabled } // { dg-options "-std=c++2a" } consteval int bar (int i) { if (i != 1) throw 1; return 0; } // { dg-error "is not a constant expression" } diff --git a/gcc/testsuite/g++.dg/cpp2a/explicit1.C b/gcc/testsuite/g++.dg/cpp2a/explicit1.C index b39f90f3397..d7e1f3fb1db 100644 --- a/gcc/testsuite/g++.dg/cpp2a/explicit1.C +++ b/gcc/testsuite/g++.dg/cpp2a/explicit1.C @@ -1,5 +1,6 @@ // P0892R2 // { dg-do compile } +// { dg-require-effective-target exceptions_enabled } // { dg-options "-std=c++2a" } constexpr int fn0 () { return 0; } diff --git a/gcc/testsuite/g++.dg/cpp2a/explicit2.C b/gcc/testsuite/g++.dg/cpp2a/explicit2.C index 7d1748c0f5e..d0f001af177 100644 --- a/gcc/testsuite/g++.dg/cpp2a/explicit2.C +++ b/gcc/testsuite/g++.dg/cpp2a/explicit2.C @@ -1,5 +1,6 @@ // P0892R2 // { dg-do compile } +// { dg-require-effective-target exceptions_enabled } // { dg-options "-std=c++2a" } int foo() { return 42; } diff --git a/gcc/testsuite/g++.dg/cpp2a/explicit5.C b/gcc/testsuite/g++.dg/cpp2a/explicit5.C index 70a106f1fcb..ae4c7cab2ea 100644 --- a/gcc/testsuite/g++.dg/cpp2a/explicit5.C +++ b/gcc/testsuite/g++.dg/cpp2a/explicit5.C @@ -1,5 +1,6 @@ // P0892R2 // { dg-do compile } +// { dg-require-effective-target exceptions_enabled } // { dg-options "-std=c++2a" } constexpr int fn0 () { return 0; } diff --git a/gcc/testsuite/g++.dg/eh/builtin10.C b/gcc/testsuite/g++.dg/eh/builtin10.C index 6c34f1f6d5c..f09291aebda 100644 --- a/gcc/testsuite/g++.dg/eh/builtin10.C +++ b/gcc/testsuite/g++.dg/eh/builtin10.C @@ -1,5 +1,6 @@ // PR c++/88482 // { dg-do compile } +// { dg-require-effective-target exceptions_enabled } extern "C" void __cxa_throw (void *, void *, void (*) (void *)); extern "C" float __cxa_get_exception_ptr (void *) throw (); // { dg-message "previous declaration" } diff --git a/gcc/testsuite/g++.dg/eh/builtin11.C b/gcc/testsuite/g++.dg/eh/builtin11.C index abc8c1af535..04376d3c36a 100644 --- a/gcc/testsuite/g++.dg/eh/builtin11.C +++ b/gcc/testsuite/g++.dg/eh/builtin11.C @@ -1,5 +1,6 @@ // PR c++/88482 // { dg-do compile } +// { dg-require-effective-target exceptions_enabled } extern "C" void __cxa_throw (float, void *, void (*) (void *)); // { dg-message "previous declaration" } extern "C" void *__cxa_get_exception_ptr (void *) throw (); diff --git a/gcc/testsuite/g++.dg/eh/builtin6.C b/gcc/testsuite/g++.dg/eh/builtin6.C index c05abdc8f51..3cc56510e0e 100644 --- a/gcc/testsuite/g++.dg/eh/builtin6.C +++ b/gcc/testsuite/g++.dg/eh/builtin6.C @@ -1,5 +1,6 @@ // PR c++/88482 // { dg-do compile } +// { dg-require-effective-target exceptions_enabled } float __cxa_throw; // { dg-message "previous declaration" } extern "C" void *__cxa_get_exception_ptr (void *); diff --git a/gcc/testsuite/g++.dg/eh/builtin7.C b/gcc/testsuite/g++.dg/eh/builtin7.C index 0ef279d09c1..5c79e2a2261 100644 --- a/gcc/testsuite/g++.dg/eh/builtin7.C +++ b/gcc/testsuite/g++.dg/eh/builtin7.C @@ -1,5 +1,6 @@ // PR c++/88482 // { dg-do compile } +// { dg-require-effective-target exceptions_enabled } extern "C" void __cxa_throw (void *, void *, void (*) (void *)); int __cxa_get_exception_ptr; // { dg-message "previous declaration" } diff --git a/gcc/testsuite/g++.dg/eh/builtin9.C b/gcc/testsuite/g++.dg/eh/builtin9.C index 591a622630c..4e6ad073cbf 100644 --- a/gcc/testsuite/g++.dg/eh/builtin9.C +++ b/gcc/testsuite/g++.dg/eh/builtin9.C @@ -1,5 +1,6 @@ // PR c++/88482 // { dg-do compile } +// { dg-require-effective-target exceptions_enabled } extern "C" int __cxa_throw (void *, void *, void (*) (void *)); // { dg-message "previous declaration" } extern "C" void *__cxa_get_exception_ptr (void *) throw (); diff --git a/gcc/testsuite/g++.dg/eh/dtor4.C b/gcc/testsuite/g++.dg/eh/dtor4.C index 6c0e804fe8a..0086121e45a 100644 --- a/gcc/testsuite/g++.dg/eh/dtor4.C +++ b/gcc/testsuite/g++.dg/eh/dtor4.C @@ -1,5 +1,7 @@ // PR c++/109172 +// { dg-require-effective-target exceptions_enabled } + class Demo { ~Demo(); diff --git a/gcc/testsuite/g++.dg/eh/pr42859.C b/gcc/testsuite/g++.dg/eh/pr42859.C index 0de91409c83..8d3f429c628 100644 --- a/gcc/testsuite/g++.dg/eh/pr42859.C +++ b/gcc/testsuite/g++.dg/eh/pr42859.C @@ -1,4 +1,5 @@ // { dg-do compile } +// { dg-require-effective-target exceptions_enabled } void start (void); void diff --git a/gcc/testsuite/g++.dg/ext/stmtexpr25.C b/gcc/testsuite/g++.dg/ext/stmtexpr25.C index 79c40fc61c4..856f7d29e59 100644 --- a/gcc/testsuite/g++.dg/ext/stmtexpr25.C +++ b/gcc/testsuite/g++.dg/ext/stmtexpr25.C @@ -1,6 +1,7 @@ // PR c++/81073 // { dg-options "" } // { dg-do compile { target c++11 } } +// { dg-require-effective-target exceptions_enabled } struct test { const int *addr; }; diff --git a/gcc/testsuite/g++.dg/ext/vla4.C b/gcc/testsuite/g++.dg/ext/vla4.C index e96f2735f8a..c2339359c4f 100644 --- a/gcc/testsuite/g++.dg/ext/vla4.C +++ b/gcc/testsuite/g++.dg/ext/vla4.C @@ -1,4 +1,5 @@ // PR c++/29318 +// { dg-require-effective-target exceptions_enabled } // { dg-options "" } #include diff --git a/gcc/testsuite/g++.dg/init/placement4.C b/gcc/testsuite/g++.dg/init/placement4.C index 3cfe27d63e6..912fc1d03f8 100644 --- a/gcc/testsuite/g++.dg/init/placement4.C +++ b/gcc/testsuite/g++.dg/init/placement4.C @@ -1,5 +1,7 @@ // PR c++/34158 +// { dg-require-effective-target exceptions_enabled } + typedef __SIZE_TYPE__ size_t; extern "C" void* malloc (size_t); extern "C" void free (void *); diff --git a/gcc/testsuite/g++.dg/other/error32.C b/gcc/testsuite/g++.dg/other/error32.C index 56d3b7aec8b..19a5a00a2e9 100644 --- a/gcc/testsuite/g++.dg/other/error32.C +++ b/gcc/testsuite/g++.dg/other/error32.C @@ -1,4 +1,5 @@ // PR c++/33492 +// { dg-require-effective-target exceptions_enabled } // { dg-options "" } void foo() diff --git a/gcc/testsuite/g++.dg/parse/crash55.C b/gcc/testsuite/g++.dg/parse/crash55.C index 2e88c476fc7..30f7a50f9fa 100644 --- a/gcc/testsuite/g++.dg/parse/crash55.C +++ b/gcc/testsuite/g++.dg/parse/crash55.C @@ -1,5 +1,7 @@ // PR c++/42038 +// { dg-require-effective-target exceptions_enabled } + extern int __cxa_begin_catch; // { dg-message "previous declaration" } void f(void) diff --git a/gcc/testsuite/g++.dg/parse/pr31952-2.C b/gcc/testsuite/g++.dg/parse/pr31952-2.C index f09bcab1b85..968aabc385c 100644 --- a/gcc/testsuite/g++.dg/parse/pr31952-2.C +++ b/gcc/testsuite/g++.dg/parse/pr31952-2.C @@ -1,5 +1,7 @@ // PR c++/31952 +// { dg-require-effective-target exceptions_enabled } + void f0() { diff --git a/gcc/testsuite/g++.dg/parse/pr31952-3.C b/gcc/testsuite/g++.dg/parse/pr31952-3.C index 9fe5f028378..92539a39a95 100644 --- a/gcc/testsuite/g++.dg/parse/pr31952-3.C +++ b/gcc/testsuite/g++.dg/parse/pr31952-3.C @@ -1,5 +1,7 @@ // PR c++/31952 +// { dg-require-effective-target exceptions_enabled } + int f0 (int bar) // { dg-message "previously" } try diff --git a/gcc/testsuite/g++.dg/tm/noexcept-7.C b/gcc/testsuite/g++.dg/tm/noexcept-7.C index bfa675c987f..c3734e86c66 100644 --- a/gcc/testsuite/g++.dg/tm/noexcept-7.C +++ b/gcc/testsuite/g++.dg/tm/noexcept-7.C @@ -1,4 +1,5 @@ // FIXME the TS says atomic_noexcept calls abort, not terminate. +// { dg-require-effective-target exceptions_enabled } // { dg-options "-fgnu-tm" } void f() diff --git a/gcc/testsuite/g++.dg/torture/pr43257.C b/gcc/testsuite/g++.dg/torture/pr43257.C index fab5f09c31a..633b7ec3465 100644 --- a/gcc/testsuite/g++.dg/torture/pr43257.C +++ b/gcc/testsuite/g++.dg/torture/pr43257.C @@ -1,4 +1,5 @@ /* { dg-do assemble } */ +/* { dg-require-effective-target exceptions_enabled } */ class A {}; class B {}; diff --git a/gcc/testsuite/g++.dg/torture/pr56694.C b/gcc/testsuite/g++.dg/torture/pr56694.C index 774bac4c615..dfaaf31c192 100644 --- a/gcc/testsuite/g++.dg/torture/pr56694.C +++ b/gcc/testsuite/g++.dg/torture/pr56694.C @@ -1,4 +1,5 @@ // { dg-do compile } +// { dg-require-effective-target exceptions_enabled } // { dg-options "-fopenmp" } // { dg-require-effective-target fopenmp } diff --git a/gcc/testsuite/g++.dg/torture/pr81659.C b/gcc/testsuite/g++.dg/torture/pr81659.C index 074099be6fc..e78483f88fe 100644 --- a/gcc/testsuite/g++.dg/torture/pr81659.C +++ b/gcc/testsuite/g++.dg/torture/pr81659.C @@ -1,4 +1,5 @@ // { dg-do compile } +// { dg-require-effective-target exceptions_enabled } void a (int b) diff --git a/gcc/testsuite/g++.dg/warn/Wcatch-value-1.C b/gcc/testsuite/g++.dg/warn/Wcatch-value-1.C index a84b337b939..9616024e0e9 100644 --- a/gcc/testsuite/g++.dg/warn/Wcatch-value-1.C +++ b/gcc/testsuite/g++.dg/warn/Wcatch-value-1.C @@ -1,3 +1,4 @@ +// { dg-require-effective-target exceptions_enabled } // { dg-options "-Wcatch-value=1" } struct A { virtual ~A() {} }; diff --git a/gcc/testsuite/g++.dg/warn/Wcatch-value-2.C b/gcc/testsuite/g++.dg/warn/Wcatch-value-2.C index e20719c155b..43f3e00472d 100644 --- a/gcc/testsuite/g++.dg/warn/Wcatch-value-2.C +++ b/gcc/testsuite/g++.dg/warn/Wcatch-value-2.C @@ -1,3 +1,4 @@ +// { dg-require-effective-target exceptions_enabled } // { dg-options "-Wcatch-value=2" } struct A { virtual ~A() {} }; diff --git a/gcc/testsuite/g++.dg/warn/Wcatch-value-3.C b/gcc/testsuite/g++.dg/warn/Wcatch-value-3.C index c91a3c08590..b48c989503d 100644 --- a/gcc/testsuite/g++.dg/warn/Wcatch-value-3.C +++ b/gcc/testsuite/g++.dg/warn/Wcatch-value-3.C @@ -1,3 +1,4 @@ +// { dg-require-effective-target exceptions_enabled } // { dg-options "-Wcatch-value=3" } struct A { virtual ~A() {} }; diff --git a/gcc/testsuite/g++.dg/warn/Wcatch-value-3b.C b/gcc/testsuite/g++.dg/warn/Wcatch-value-3b.C index cb9af4a6019..47ea4671ac1 100644 --- a/gcc/testsuite/g++.dg/warn/Wcatch-value-3b.C +++ b/gcc/testsuite/g++.dg/warn/Wcatch-value-3b.C @@ -1,3 +1,4 @@ +// { dg-require-effective-target exceptions_enabled } // { dg-options "-Wcatch-value=3" } struct A { virtual ~A() {} }; diff --git a/gcc/testsuite/g++.dg/warn/Wexceptions1.C b/gcc/testsuite/g++.dg/warn/Wexceptions1.C index af140fd0dc2..dd4c3252d39 100644 --- a/gcc/testsuite/g++.dg/warn/Wexceptions1.C +++ b/gcc/testsuite/g++.dg/warn/Wexceptions1.C @@ -1,5 +1,7 @@ // PR c++/97675 +// { dg-require-effective-target exceptions_enabled } + struct Base { }; struct Child : Base { }; int main() { diff --git a/gcc/testsuite/g++.dg/warn/Wexceptions3.C b/gcc/testsuite/g++.dg/warn/Wexceptions3.C index 97fda9dbd91..cd041ae248c 100644 --- a/gcc/testsuite/g++.dg/warn/Wexceptions3.C +++ b/gcc/testsuite/g++.dg/warn/Wexceptions3.C @@ -1,5 +1,7 @@ // PR c++/81660 +// { dg-require-effective-target exceptions_enabled } + void bar (int); void diff --git a/gcc/testsuite/g++.dg/warn/Winfinite-recursion-3.C b/gcc/testsuite/g++.dg/warn/Winfinite-recursion-3.C index 166e6d5790d..d4d76fba19f 100644 --- a/gcc/testsuite/g++.dg/warn/Winfinite-recursion-3.C +++ b/gcc/testsuite/g++.dg/warn/Winfinite-recursion-3.C @@ -1,5 +1,6 @@ /* PR middle-end/88232 - Please implement -Winfinite-recursion { dg-do compile } + { dg-require-effective-target exceptions_enabled } { dg-options "-Wall -Winfinite-recursion" } */ typedef __SIZE_TYPE__ size_t; diff --git a/gcc/testsuite/g++.dg/warn/Wreturn-6.C b/gcc/testsuite/g++.dg/warn/Wreturn-6.C index 85fef0e16df..85a1f696f20 100644 --- a/gcc/testsuite/g++.dg/warn/Wreturn-6.C +++ b/gcc/testsuite/g++.dg/warn/Wreturn-6.C @@ -1,5 +1,7 @@ // PR c++/107310 +// { dg-require-effective-target exceptions_enabled } + struct f { ~f(); diff --git a/gcc/testsuite/g++.dg/warn/Wstringop-truncation-2.C b/gcc/testsuite/g++.dg/warn/Wstringop-truncation-2.C index ebbd44307d9..f9062f7621b 100644 --- a/gcc/testsuite/g++.dg/warn/Wstringop-truncation-2.C +++ b/gcc/testsuite/g++.dg/warn/Wstringop-truncation-2.C @@ -3,6 +3,7 @@ // Compile with -g to verify the warning deals properly with debug // statements. // { dg-do compile } +// { dg-require-effective-target exceptions_enabled } // { dg-options "-O2 -Wstringop-truncation -g" } extern "C" char* strncpy (char*, const char*, __SIZE_TYPE__); diff --git a/gcc/testsuite/g++.dg/warn/Wterminate1.C b/gcc/testsuite/g++.dg/warn/Wterminate1.C index affb48d3e8a..246555ca039 100644 --- a/gcc/testsuite/g++.dg/warn/Wterminate1.C +++ b/gcc/testsuite/g++.dg/warn/Wterminate1.C @@ -1,6 +1,7 @@ // In C++98 mode this gets a -Wc++11-compat warning, in C++11 mode a // -Wterminate warning. +// { dg-require-effective-target exceptions_enabled } // { dg-options "-Wall" } struct A diff --git a/gcc/testsuite/g++.old-deja/g++.eh/catch1.C b/gcc/testsuite/g++.old-deja/g++.eh/catch1.C index 67779d945ea..68e2c745655 100644 --- a/gcc/testsuite/g++.old-deja/g++.eh/catch1.C +++ b/gcc/testsuite/g++.old-deja/g++.eh/catch1.C @@ -1,4 +1,5 @@ // { dg-do assemble } +// { dg-require-effective-target exceptions_enabled } // // Copyright (C) 1999 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 6 Jun 1999 diff --git a/gcc/testsuite/g++.old-deja/g++.eh/catch10.C b/gcc/testsuite/g++.old-deja/g++.eh/catch10.C index 7cc609645a2..c085c9b39e0 100644 --- a/gcc/testsuite/g++.old-deja/g++.eh/catch10.C +++ b/gcc/testsuite/g++.old-deja/g++.eh/catch10.C @@ -1,4 +1,5 @@ // { dg-do assemble } +// { dg-require-effective-target exceptions_enabled } // Test that we notice unfortunate handler ordering. struct A { }; diff --git a/gcc/testsuite/g++.old-deja/g++.eh/cond1.C b/gcc/testsuite/g++.old-deja/g++.eh/cond1.C index fe6d4296ab5..a7fcf890099 100644 --- a/gcc/testsuite/g++.old-deja/g++.eh/cond1.C +++ b/gcc/testsuite/g++.old-deja/g++.eh/cond1.C @@ -1,4 +1,5 @@ // { dg-do assemble } +// { dg-require-effective-target exceptions_enabled } // Copyright (C) 1999, 2000 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 11 Apr 1999 diff --git a/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C b/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C index cc39ac3953f..b3b0ce2d00c 100644 --- a/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C +++ b/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C @@ -1,4 +1,6 @@ // { dg-do assemble } +// { dg-require-effective-target exceptions_enabled } + struct A { A(); diff --git a/gcc/testsuite/g++.old-deja/g++.eh/throw2.C b/gcc/testsuite/g++.old-deja/g++.eh/throw2.C index 957c200f8af..b7acb6206b2 100644 --- a/gcc/testsuite/g++.old-deja/g++.eh/throw2.C +++ b/gcc/testsuite/g++.old-deja/g++.eh/throw2.C @@ -1,4 +1,5 @@ // { dg-do assemble } +// { dg-require-effective-target exceptions_enabled } // Submitted by Sebastian Ritterbusch diff --git a/gcc/testsuite/g++.old-deja/g++.other/cond5.C b/gcc/testsuite/g++.old-deja/g++.other/cond5.C index 0d2baf9edf7..9474c35f252 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/cond5.C +++ b/gcc/testsuite/g++.old-deja/g++.other/cond5.C @@ -1,4 +1,5 @@ // { dg-do assemble } +// { dg-require-effective-target exceptions_enabled } // { dg-options "-W -pedantic -ansi" } // Copyright (C) 1999, 2000 Free Software Foundation, Inc. -- 2.34.1