[Bug c++/87091] Malformed fix-it hint for missing header
dmalcolm at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Aug 24 21:18:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87091
--- Comment #3 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Author: dmalcolm
Date: Fri Aug 24 21:17:48 2018
New Revision: 263843
URL: https://gcc.gnu.org/viewcvs?rev=263843&root=gcc&view=rev
Log:
diagnostics: tweaks to line-spans vs line numbering (PR 87091)
This patch tweaks how line numbers are printed for a diagnostic
containing multiple line spans.
With this patch, rather than printing span headers:
../x86_64-pc-linux-gnu/libstdc++-v3/include/vector:87:22: note: message
../x86_64-pc-linux-gnu/libstdc++-v3/include/vector:74:1:
++ |+#include <vector>
74 | #endif
../x86_64-pc-linux-gnu/libstdc++-v3/include/vector:87:22:
87 | using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
| ^~~
we now print:
../x86_64-pc-linux-gnu/libstdc++-v3/include/vector:87:22: note: message
+++ |+#include <vector>
74 | #endif
....
87 | using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
| ^~~
and for sufficiently close lines, rather than print a gap:
+ |+#include <stdio.h>
1 | test (int ch)
..
3 | putchar (ch);
| ^~~~~~~
we print the line itself:
+ |+#include <stdio.h>
1 | test (int ch)
2 | {
3 | putchar (ch);
| ^~~~~~~
gcc/ChangeLog:
PR 87091
* diagnostic-show-locus.c (layout::layout): Ensure the margin is
wide enough for jumps in the line-numbering to be visible.
(layout::print_gap_in_line_numbering): New member function.
(layout::calculate_line_spans): When using line numbering, merge
line spans that are only 1 line apart.
(diagnostic_show_locus): When printing line numbers, show gaps in
line numbering directly, rather than printing headers.
(selftest::test_diagnostic_show_locus_fixit_lines): Add test of
line-numbering with multiple line spans.
(selftest::test_fixit_insert_containing_newline_2): Add test of
line-numbering, in which the spans are close enough to be merged.
gcc/testsuite/ChangeLog:
PR 87091
* gcc.dg/missing-header-fixit-3.c: Update for changes to how
line spans are printed with -fdiagnostics-show-line-numbers.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/diagnostic-show-locus.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/missing-header-fixit-3.c
More information about the Gcc-bugs
mailing list