From 9f53b76775c53998a7714570ae8d36acab02a07f Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 15 Feb 2019 08:52:50 +0100 Subject: [PATCH] re PR other/69006 (Extraneous newline emitted between error messages in GCC 6) PR other/69006 PR testsuite/88920 * lib/gcc-dg.exp: If llvm_binutils effective target, set allow_blank_lines to 2 during initialization. (dg-allow-blank-lines-in-output): Set allow_blank_lines to 1 only if it was previously zero. (gcc-dg-prune): Don't check for llvm_binutils effective target here. Clear allow_blank_lines afterwards whenever it was 1. * gdc.test/gdc-test.exp (dmd2dg): Don't call dg-allow-blank-lines-in-output here. (gdc-do-test): Set allow_blank_lines to 3 if it is 0 before running the tests and restore it back at the end. From-SVN: r268930 --- gcc/testsuite/ChangeLog | 13 +++++++++++++ gcc/testsuite/gdc.test/gdc-test.exp | 12 +++++++++--- gcc/testsuite/lib/gcc-dg.exp | 16 ++++++++++++++-- 3 files changed, 36 insertions(+), 5 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1223b68adf5..6c2a6747600 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,18 @@ 2019-02-15 Jakub Jelinek + PR other/69006 + PR testsuite/88920 + * lib/gcc-dg.exp: If llvm_binutils effective target, set + allow_blank_lines to 2 during initialization. + (dg-allow-blank-lines-in-output): Set allow_blank_lines to 1 only if + it was previously zero. + (gcc-dg-prune): Don't check for llvm_binutils effective target here. + Clear allow_blank_lines afterwards whenever it was 1. + * gdc.test/gdc-test.exp (dmd2dg): Don't call + dg-allow-blank-lines-in-output here. + (gdc-do-test): Set allow_blank_lines to 3 if it is 0 before running + the tests and restore it back at the end. + * c-c++-common/ubsan/opts-1.c: New test. * c-c++-common/ubsan/opts-2.c: New test. * c-c++-common/ubsan/opts-3.c: New test. diff --git a/gcc/testsuite/gdc.test/gdc-test.exp b/gcc/testsuite/gdc.test/gdc-test.exp index b8b6b4020ee..4ab072d5f58 100644 --- a/gcc/testsuite/gdc.test/gdc-test.exp +++ b/gcc/testsuite/gdc.test/gdc-test.exp @@ -277,9 +277,6 @@ proc dmd2dg { base test } { set out_line "// { dg-prune-output .* }" puts $fdout $out_line - # Since GCC 6-20160131 blank lines are not allowed in the output by default. - dg-allow-blank-lines-in-output { 1 } - # Compilable files are successful if an output is generated. # Fail compilable are successful if an output is not generated. # Runnable must compile, link, and return 0 to be successful by default. @@ -360,6 +357,13 @@ proc gdc-do-test { } { # Initialize `dg'. dg-init + # Allow blank linkes in output for all of gdc.test. + global allow_blank_lines + set save_allow_blank_lines $allow_blank_lines + if { !$allow_blank_lines } { + set allow_blank_lines 2 + } + # Create gdc.test link so test names include that subdir. catch { file link $subdir . } @@ -430,6 +434,8 @@ proc gdc-do-test { } { file delete $filename } + set allow_blank_lines $save_allow_blank_lines + # All done. dg-finish } diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp index d4e2d97ee5b..c56e8e80ae0 100644 --- a/gcc/testsuite/lib/gcc-dg.exp +++ b/gcc/testsuite/lib/gcc-dg.exp @@ -344,14 +344,24 @@ proc gcc-dg-test { prog do_what extra_tool_flags } { # Global: should blank lines be allowed in the output? # By default, they should not be. (PR other/69006) # However, there are some ways for them to validly occur. +# If this variable is 0, blank lines are not allowed in output, +# if it is 1, they are allowed for a single testcase only and gcc-dg-prune +# will clear it again after checking it, if it is 2, they are disabled +# for all tests. set allow_blank_lines 0 +if { [check_effective_target_llvm_binutils] } { + set allow_blank_lines 2 +} + # A command for use by testcases to mark themselves as expecting # blank lines in the output. proc dg-allow-blank-lines-in-output { args } { global allow_blank_lines - set allow_blank_lines 1 + if { !$allow_blank_lines } { + set allow_blank_lines 1 + } } proc gcc-dg-prune { system text } { @@ -363,12 +373,14 @@ proc gcc-dg-prune { system text } { # Complain about blank lines in the output (PR other/69006) global allow_blank_lines - if { !$allow_blank_lines && ![check_effective_target_llvm_binutils]} { + if { !$allow_blank_lines } { set num_blank_lines [llength [regexp -all -inline "\n\n" $text]] if { $num_blank_lines } { global testname_with_flags fail "$testname_with_flags $num_blank_lines blank line(s) in output" } + } + if { $allow_blank_lines == 1 } { set allow_blank_lines 0 } -- 2.30.2