diff options
author | Thomas Schwinge <tschwinge@baylibre.com> | 2025-01-28 14:57:21 +0100 |
---|---|---|
committer | Thomas Schwinge <tschwinge@baylibre.com> | 2025-02-08 12:37:07 +0100 |
commit | 6312165650091a4df34668d8e2aaa0bbc4008a66 (patch) | |
tree | 7b68abd6775445a3b48d1abab4b7ad11cacc8f32 /gcc/testsuite/lib | |
parent | 7809aa1128250c9e90fde33a4fc0c88a733f8e1a (diff) | |
download | gcc-6312165650091a4df34668d8e2aaa0bbc4008a66.zip gcc-6312165650091a4df34668d8e2aaa0bbc4008a66.tar.gz gcc-6312165650091a4df34668d8e2aaa0bbc4008a66.tar.bz2 |
GCN, nvptx: 'sorry, unimplemented: exception handling not supported'
For GCN, this avoids ICEs further down the compilation pipeline. For nvptx,
there's effectively no change: in presence of exception handling constructs,
instead of 'sorry, unimplemented: target cannot support nonlocal goto', we
now emit 'sorry, unimplemented: exception handling not supported'.
Additionally, turn test cases into UNSUPPORTED if running into
'sorry, unimplemented: exception handling not supported'.
gcc/
* config/gcn/gcn.md (exception_receiver): 'define_expand'.
* config/nvptx/nvptx.md (exception_receiver): Likewise.
gcc/testsuite/
* lib/gcc-dg.exp (gcc-dg-prune): Turn
'sorry, unimplemented: exception handling not supported' into
UNSUPPORTED.
* gcc.dg/pr104464.c: Remove GCN XFAIL.
libstdc++-v3/
* testsuite/lib/prune.exp (libstdc++-dg-prune): Turn
'sorry, unimplemented: exception handling not supported' into
UNSUPPORTED.
Diffstat (limited to 'gcc/testsuite/lib')
-rw-r--r-- | gcc/testsuite/lib/gcc-dg.exp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp index 07a996a..70be7a8 100644 --- a/gcc/testsuite/lib/gcc-dg.exp +++ b/gcc/testsuite/lib/gcc-dg.exp @@ -434,6 +434,13 @@ proc gcc-dg-prune { system text } { return "::unsupported::large return values" } + # If exception handling is not supported, expectant tests are UNSUPPORTED. + if { ![check_effective_target_exceptions] } { + if [regexp "(^|\n)\[^\n\]*: sorry, unimplemented: exception handling not supported" $text] { + return "::unsupported::exception handling not supported" + } + } + # If exception handling is disabled, expectant tests are UNSUPPORTED. if { ![check_effective_target_exceptions_enabled] } { if [regexp "(^|\n)\[^\n\]*: error: exception handling disabled" $text] { |