r249403 - in /trunk: gcc/ChangeLog gcc/diagnost...
dmalcolm@gcc.gnu.org
dmalcolm@gcc.gnu.org
Tue Jun 20 10:40:00 GMT 2017
Author: dmalcolm
Date: Tue Jun 20 10:40:38 2017
New Revision: 249403
URL: https://gcc.gnu.org/viewcvs?rev=249403&root=gcc&view=rev
Log:
Prevent fix-it hints from affecting more than one line
Attempts to apply a removal or replacement fix-it hint to a source
range that covers multiple lines currently lead to nonsensical
results from the printing code in diagnostic-show-locus.c.
We were already filtering them out in edit-context.c (leading
to -fdiagnostics-generate-patch not generating any output for
the whole TU).
Reject attempts to add such fix-it hints within rich_location,
fixing the diagnostic-show-locus.c issue.
gcc/ChangeLog:
* diagnostic-show-locus.c
(selftest::test_fixit_deletion_affecting_newline): New function.
(selftest::diagnostic_show_locus_c_tests): Call it.
libcpp/ChangeLog:
* include/line-map.h (class rich_location): Document that attempts
to delete or replace a range *affecting* multiple lines will fail.
* line-map.c (rich_location::maybe_add_fixit): Implement this
restriction.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/diagnostic-show-locus.c
trunk/libcpp/ChangeLog
trunk/libcpp/include/line-map.h
trunk/libcpp/line-map.c
More information about the Gcc-cvs
mailing list