Fix missing range information for "%q+D" format code

gcc/c-family/ChangeLog:
	* c-common.c (c_cpp_error): Update for change to
	rich_location::set_range.

gcc/fortran/ChangeLog:
	* error.c (gfc_format_decoder): Update for change of
	text_info::set_range to text_info::set_location.

gcc/ChangeLog:
	* pretty-print.c (text_info::set_range): Rename to...
	(text_info::set_location): ...this, converting 2nd param
	from source_range to a location_t.
	* pretty-print.h (text_info::set_location): Convert
	from inline function to external definition.
	(text_info::set_range): Delete.

gcc/testsuite/ChangeLog:
	* gcc.dg/diagnostic-ranges-1.c: New test file.
	* gcc.dg/plugin/diagnostic-test-show-locus-bw.c
	(test_percent_q_plus_d): New test function.
	* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
	(test_show_locus): Rewrite test code using
	rich_location::set_range.  Add code to unit-test the "%q+D"
	format code.

libcpp/ChangeLog:
	* include/line-map.h (rich_location::set_range): Add line_maps *
	param; convert param from source_range to source_location.  Drop
	"overwrite_loc_p" param.
	* line-map.c (rich_location::set_range): Likewise, acting as if
	"overwrite_loc_p" were true, and getting range from the location.

From-SVN: r231367
This commit is contained in:
David Malcolm
2015-12-07 16:07:00 +00:00
committed by David Malcolm
parent 4f6788a171
commit f79520bb11
14 changed files with 111 additions and 45 deletions
+2 -2
View File
@@ -1376,8 +1376,8 @@ class rich_location
add_range (location_range *src_range);
void
set_range (unsigned int idx, source_range src_range,
bool show_caret_p, bool overwrite_loc_p);
set_range (line_maps *set, unsigned int idx, source_location loc,
bool show_caret_p);
unsigned int get_num_locations () const { return m_num_ranges; }