]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Support 'UNSUPPORTED: [...]: exception handling disabled' for libstdc++ testing
authorThomas Schwinge <thomas@codesourcery.com>
Wed, 7 Jun 2023 06:46:38 +0000 (08:46 +0200)
committerThomas Schwinge <thomas@codesourcery.com>
Wed, 7 Jun 2023 08:54:36 +0000 (10:54 +0200)
Verbatim copy of what was added to 'gcc/testsuite/lib/gcc-dg.exp:gcc-dg-prune'
in Subversion r279246 (Git commit a9046e9853024206bec092dd63e21e152cb5cbca)
"[MSP430] -Add fno-exceptions multilib".

This greatly improves 'make check-target-libstdc++-v3' results for, for
example, x86_64-pc-linux-gnu with:

    RUNTESTFLAGS='--target_board=unix/-fno-exceptions\{,-m32\}'

libstdc++-v3/
* testsuite/lib/prune.exp (libstdc++-dg-prune): Support
'UNSUPPORTED: [...]: exception handling disabled'.

libstdc++-v3/testsuite/lib/prune.exp

index 2d2349e7cba5fc6fef1b2adb445ed11f083adc6d..be6d16c26e5668c902fd37ea6262f7546e6889a6 100644 (file)
@@ -79,6 +79,18 @@ proc libstdc++-dg-prune { system text } {
     # Ignore dsymutil warning (tool bug is actually in the linker)
     regsub -all "(^|\n)\[^\n\]*could not find object file symbol for symbol\[^\n\]*" $text "" text
 
+    # 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"
+       }
+
+       if [regexp "(^|\n)\[^\n\]*: error: #error .__cpp_exceptions." $text] {
+           return "::unsupported::exception handling disabled"
+       }
+    }
+
     foreach p $additional_prunes {
        if { [string length $p] > 0 } {
            # Following regexp matches a complete line containing $p.