From e5106e27feded7797a6df36493aa37cb673bcad1 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Wed, 7 Sep 2016 16:56:23 +0000 Subject: Move class substring_loc from c-family into gcc gcc/ChangeLog: * Makefile.in (OBJS): Add substring-locations.o. * langhooks-def.h (class substring_loc): New forward decl. (lhd_get_substring_location): New decl. (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro. (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION. * langhooks.c (lhd_get_substring_location): New function. * langhooks.h (class substring_loc): New forward decl. (struct lang_hooks): Add field get_substring_location. * substring-locations.c: New file, taking definition of format_warning_va and format_warning_at_substring from c-family/c-format.c, making them non-static. * substring-locations.h (class substring_loc): Move class here from c-family/c-common.h. Add and rewrite comments. (format_warning_va): New decl. (format_warning_at_substring): New decl. (get_source_location_for_substring): Add comment. gcc/c-family/ChangeLog: * c-common.c (get_cpp_ttype_from_string_type): Handle being passed a POINTER_TYPE. (substring_loc::get_location): Move to substring-locations.c, keeping implementation as... (c_get_substring_location): New function, from the above, reworked to use accessors rather than member lookup. * c-common.h (class substring_loc): Move to substring-locations.h, replacing with a forward decl. (c_get_substring_location): New decl. * c-format.c: Include "substring-locations.h". (format_warning_va): Move to substring-locations.c. (format_warning_at_substring): Likewise. gcc/c/ChangeLog: * c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use c_get_substring_location for this new langhook. gcc/testsuite/ChangeLog: * gcc.dg/plugin/diagnostic_plugin_test_string_literals.c: Include "substring-locations.h". From-SVN: r240028 --- gcc/langhooks.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gcc/langhooks.c') diff --git a/gcc/langhooks.c b/gcc/langhooks.c index 3256a9d..538d9f9 100644 --- a/gcc/langhooks.c +++ b/gcc/langhooks.c @@ -693,6 +693,14 @@ lhd_enum_underlying_base_type (const_tree enum_type) TYPE_UNSIGNED (enum_type)); } +/* Default implementation of LANG_HOOKS_GET_SUBSTRING_LOCATION. */ + +const char * +lhd_get_substring_location (const substring_loc &, location_t *) +{ + return "unimplemented"; +} + /* Returns true if the current lang_hooks represents the GNU C frontend. */ bool -- cgit v1.1