On 01/09/2016 01:51 AM, David Malcolm wrote:
The root cause here is that the logic to reset the list of expected
multiline outputs was being run from:
   handle-multiline-outputs, called by
     prune.exp's prune_gcc_output
and none of that happens if the test is skipped by a target exclusion
in dg-do.

Thanks for tackling this.

diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
index f9ec206..f778bca 100644
--- a/gcc/testsuite/lib/gcc-dg.exp
+++ b/gcc/testsuite/lib/gcc-dg.exp
@@ -836,6 +836,7 @@ if { [info procs saved-dg-test] == [list] } {
        global testname_with_flags
        global set_target_env_var
        global keep_saved_temps_suffixes
+       global multiline_expected_outputs

        if { [ catch { eval saved-dg-test $args } errmsg ] } {
            set saved_info $errorInfo
@@ -871,6 +872,7 @@ if { [info procs saved-dg-test] == [list] } {
        if [info exists testname_with_flags] {
            unset testname_with_flags
        }
+       set multiline_expected_outputs []
      }
  }

I looked at this code, and there are two near-identical blocks which reset all these variables. You are modifying only one of them, leaving the one inside the if { catch } thing unchanged - is this intentional?

Otherwise this looks reasonable IMO.


Bernd

Reply via email to