From c468587ac23c889abfa67ce8979e8baedcb349e9 Mon Sep 17 00:00:00 2001 From: Dodji Seketeli Date: Wed, 16 Jul 2014 10:33:27 +0000 Subject: Support location tracking for built-in macro tokens When a built-in macro is expanded, the location of the token in the epansion list is the location of the expansion point of the built-in macro. This patch creates a virtual location for that token instead, effectively tracking locations of tokens resulting from built-in macro tokens. libcpp/ * include/line-map.h (line_maps::builtin_location): New data member. (line_map_init): Add a new parameter to initialize the new line_maps::builtin_location data member. * line-map.c (linemap_init): Initialize the line_maps::builtin_location data member. * macro.c (builtin_macro): Create a macro map and track the token resulting from the expansion of a built-in macro. gcc/ * input.h (is_location_from_builtin_token): New function declaration. * input.c (is_location_from_builtin_token): New function definition. * toplev.c (general_init): Tell libcpp what the pre-defined spelling location for built-in tokens is. Signed-off-by: Dodji Seketeli From-SVN: r212637 --- gcc/input.h | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/input.h') diff --git a/gcc/input.h b/gcc/input.h index d910bb8..1def793 100644 --- a/gcc/input.h +++ b/gcc/input.h @@ -36,6 +36,7 @@ extern GTY(()) struct line_maps *line_table; extern char builtins_location_check[(BUILTINS_LOCATION < RESERVED_LOCATION_COUNT) ? 1 : -1]; +extern bool is_location_from_builtin_token (source_location); extern expanded_location expand_location (source_location); extern const char *location_get_source_line (expanded_location xloc, int *line_size); -- cgit v1.1