aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/lib/gcc-dg.exp
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2016-01-26 17:08:12 +0000
committerDavid Malcolm <dmalcolm@gcc.gnu.org>2016-01-26 17:08:12 +0000
commit01e1dea37c2dd8988c91b510dc9d9e087e641942 (patch)
treeb1f95695dbde83aeccf5ef984f65ac1d0f987b81 /gcc/testsuite/lib/gcc-dg.exp
parent3dde4d658b231673bd2d61dddd4708ab4ff66b49 (diff)
downloadgcc-01e1dea37c2dd8988c91b510dc9d9e087e641942.zip
gcc-01e1dea37c2dd8988c91b510dc9d9e087e641942.tar.gz
gcc-01e1dea37c2dd8988c91b510dc9d9e087e641942.tar.bz2
PR other/69006: fix extra newlines after diagnostics
gcc/c-family/ChangeLog: PR other/69006 * c-opts.c (c_diagnostic_finalizer): Replace invocation of pp_newline_and_flush with pp_flush. gcc/cp/ChangeLog: PR other/69006 * error.c (print_instantiation_partial_context_line): Add missing newlines from output for the t == NULL case. (print_instantiation_partial_context): Remove call to pp_newline. gcc/ChangeLog: PR other/69006 * diagnostic-show-locus.c (layout::print_source_line): Replace call to pp_newline with call to layout::print_newline. (layout::print_annotation_line): Likewise. (layout::move_to_column): Likewise. (layout::print_any_fixits): After printing any fixits, print a trailing newline, if necessary. (layout::print_newline): New method, resetting any colorization before a newline. (diagnostic_show_locus): Move the pp_newline to before the early bailout. Remove dummy block enclosing the layout instance. * diagnostic.c (default_diagnostic_finalizer): Replace invocation of pp_newline_and_flush with pp_flush. (diagnostic_append_note): Delete use of pp_newline. (diagnostic_append_note_at_rich_loc): Delete. * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete. * pretty-print.h (output_buffer_append_r): Reset buff->line_length when newline characters are added to the buffer. gcc/fortran/ChangeLog: PR other/69006 * error.c (gfc_diagnostic_starter): Delete use of pp_newline. gcc/testsuite/ChangeLog: PR other/69006 * g++.dg/ext/timevar1.C: Add dg-allow-blank-lines-in-output directive. * gcc.dg/plugin/diagnostic-test-show-locus-color.c: Update expected multiline output to reflect the colorization being disabled before newlines. * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c (custom_diagnostic_finalizer): Replace call to pp_newline_and_flush with call to pp_flush. * gcc.dg/unroll-2.c: Add dg-allow-blank-lines-in-output directive. * gfortran.dg/implicit_class_1.f90: Likewise. * lib/gcc-dg.exp (allow_blank_lines): New global. (dg-allow-blank-lines-in-output): New procedure. (gcc-dg-prune): Complain about blank lines in the output, unless dg-allow-blank-lines-in-output was called. * lib/multiline.exp (_build_multiline_regex): Only support arbitrary followup text for non-blank-lines, not for blank lines. From-SVN: r232837
Diffstat (limited to 'gcc/testsuite/lib/gcc-dg.exp')
-rw-r--r--gcc/testsuite/lib/gcc-dg.exp24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
index c003328..3dd8564 100644
--- a/gcc/testsuite/lib/gcc-dg.exp
+++ b/gcc/testsuite/lib/gcc-dg.exp
@@ -310,6 +310,19 @@ proc gcc-dg-test { prog do_what extra_tool_flags } {
return [gcc-dg-test-1 gcc_target_compile $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.
+set allow_blank_lines 0
+
+# 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
+}
+
proc gcc-dg-prune { system text } {
global additional_prunes
@@ -317,6 +330,17 @@ proc gcc-dg-prune { system text } {
# Always remember to clear it in .exp file after executed all tests.
global dg_runtest_extra_prunes
+ # Complain about blank lines in the output (PR other/69006)
+ global allow_blank_lines
+ 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"
+ }
+ set allow_blank_lines 0
+ }
+
set text [prune_gcc_output $text]
foreach p "$additional_prunes $dg_runtest_extra_prunes" {