Allow the use of ad-hoc locations for fix-it hints
authorDavid Malcolm <dmalcolm@redhat.com>
Mon, 29 Aug 2016 20:42:57 +0000 (20:42 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Mon, 29 Aug 2016 20:42:57 +0000 (20:42 +0000)
commit2aa514130a99ffeaff6ae3cdddf609be358022be
tree6d574e6eb977268815029f2ec08618e51a518b9a
parentadfa1e6b37f5b18570a6200a0784bd8074c5f1e0
Allow the use of ad-hoc locations for fix-it hints

Currently the fix-it validator rejects ad-hoc locations.
Fix this by calling get_pure_location on the input locations to
add_fixit_insert/replace.  Doing so requires moving get_pure_location
from gcc to libcpp.

gcc/ChangeLog:
* diagnostic-show-locus.c
(selftest::test_one_liner_fixit_validation_adhoc_locations): New
function.
(selftest::test_diagnostic_show_locus_one_liner): Call it.
* input.c (get_pure_location): Move to libcpp/line-map.c.
* input.h (get_pure_location): Convert decl to an inline function
calling implementation in libcpp.

libcpp/ChangeLog:
* include/line-map.h (get_pure_location): New decl.
* line-map.c (get_pure_location): Move here, from gcc/input.c, adding
a line_maps * param.
(rich_location::add_fixit_insert): Call get_pure_location on "where".
(rich_location::add_fixit_replace): Call get_pure_location on the
end-points.

From-SVN: r239843
gcc/ChangeLog
gcc/diagnostic-show-locus.c
gcc/input.c
gcc/input.h
libcpp/ChangeLog
libcpp/include/line-map.h
libcpp/line-map.c