[gcc r14-1604] Support 'UNSUPPORTED: [...]: exception handling disabled' for libstdc++ testing

Thomas Schwinge tschwinge@gcc.gnu.org
Wed Jun 7 08:55:56 GMT 2023


https://gcc.gnu.org/g:5faaabef3819434d13fcbf749bd07bfc98ca7c3c

commit r14-1604-g5faaabef3819434d13fcbf749bd07bfc98ca7c3c
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Wed Jun 7 08:46:38 2023 +0200

    Support 'UNSUPPORTED: [...]: exception handling disabled' for libstdc++ testing
    
    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'.

Diff:
---
 libstdc++-v3/testsuite/lib/prune.exp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/libstdc++-v3/testsuite/lib/prune.exp b/libstdc++-v3/testsuite/lib/prune.exp
index 2d2349e7cba..be6d16c26e5 100644
--- a/libstdc++-v3/testsuite/lib/prune.exp
+++ b/libstdc++-v3/testsuite/lib/prune.exp
@@ -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.


More information about the Libstdc++-cvs mailing list