diff --git a/gcc/testsuite/g++.dg/modules/modules.exp b/gcc/testsuite/g++.dg/modules/modules.exp index 80aa392bc7f..dc302d3d0af 100644 --- a/gcc/testsuite/g++.dg/modules/modules.exp +++ b/gcc/testsuite/g++.dg/modules/modules.exp @@ -319,15 +319,11 @@ cleanup_module_files [find $DEFAULT_REPO *.gcm] # so that, after an unsupported result in dg-test, we can skip rather # than fail subsequent related tests. set module_do {"compile" "P"} -if { [info procs unsupported] != [list] \ - && [info procs saved-unsupported] == [list] } { - rename unsupported saved-unsupported - - proc unsupported { args } { - global module_do - lset module_do 1 "N" - return [saved-unsupported $args] - } +rename unsupported modules-saved-unsupported +proc unsupported { args } { + global module_do + lset module_do 1 "N" + return [uplevel 1 modules-saved-unsupported $args] } # not grouped tests, sadly tcl doesn't have negated glob @@ -412,4 +408,10 @@ foreach src [lsort [find $srcdir/$subdir {*_a.[CHX}]] { } } +# Restore the original unsupported proc, lest it will affect +# subsequent test runs, or even fail renaming if we run modules.exp +# for multiple targets/multilibs/options. +rename unsupported {} +rename modules-saved-unsupported unsupported + dg-finish