Hello, This patch intends to provide a chance to prune common warning messages for tests defined in an exp file. It can avoid adding dg-prune to such cases one by one. The story behind this patch is that when torture cases in arm.exp with various arch/cpu options, there are always warnings on "warning: switch -mcpu=cortex-m3 conflicts with -march=armv5te switch [enabled by default]". The "-march=armv5te" is from dg-options of the case. The "-mcpu=cortex-m3" is from options we used to torture this case. To avoid such harmless warnings, usually we need to manually add dg-prune to such cases one by one. This is kind of less efficient. With this path, we just need to add this warning into variable dg_runtest_extra_prunes.
The related discussion is at http://gcc.gnu.org/ml/gcc-patches/2011-09/msg00630.html. Tested on QEMU for cortex-m3 and x86 platform. The test-framework.exp is also enabled. No regression found. Is it OK to trunk? BR, Terry 2012-08-27 Terry Guo <terry....@arm.com> * lib/gcc-dg.exp (dg_runtest_extra_prunes): New variable to define rules that will be applied to all tests in a .exp file. (gcc-dg-prune): Include rules defined by the above variable. * gcc.target/arm/arm.exp (dg_runtest_extra_prunes): Skip all the harmless architecture switch conflict warnings. diff --git a/gcc/testsuite/gcc.target/arm/arm.exp b/gcc/testsuite/gcc.target/arm/arm.exp index 0838d37..3a62b24 100644 --- a/gcc/testsuite/gcc.target/arm/arm.exp +++ b/gcc/testsuite/gcc.target/arm/arm.exp @@ -30,6 +30,11 @@ if ![info exists DEFAULT_CFLAGS] then { set DEFAULT_CFLAGS " -ansi -pedantic-errors" } +# This variable should only apply to tests called in this exp file. +global dg_runtest_extra_prunes +set dg_runtest_extra_prunes "" +lappend dg_runtest_extra_prunes "warning: switch -m(cpu|arch)=.* conflicts with -m(cpu|arch)=.* switch" + # Initialize `dg'. dg-init @@ -38,4 +43,5 @@ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \ "" $DEFAULT_CFLAGS # All done. +set dg_runtest_extra_prunes "" dg-finish diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp index 3bff8b4..825c2f6 100644 --- a/gcc/testsuite/lib/gcc-dg.exp +++ b/gcc/testsuite/lib/gcc-dg.exp @@ -211,9 +211,13 @@ proc gcc-dg-test { prog do_what extra_tool_flags } { proc gcc-dg-prune { system text } { global additional_prunes + # Extra prune rules that will apply to tests defined in a .exp file. + # Always remember to clear it in .exp file after executed all tests. + global dg_runtest_extra_prunes + set text [prune_gcc_output $text] - foreach p $additional_prunes { + foreach p "$additional_prunes $dg_runtest_extra_prunes" { if { [string length $p] > 0 } { # Following regexp matches a complete line containing $p. regsub -all "(^|\n)\[^\n\]*$p\[^\n\]*" $text "" text @@ -809,3 +813,4 @@ proc gdb-exists { args } { } set additional_prunes "" +set dg_runtest_extra_prunes ""