This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 1/2] Support location tracking for built-in macro tokens
- From: Dodji Seketeli <dodji at redhat dot com>
- To: Jason Merrill <jason at redhat dot com>
- Cc: Nicholas Ormrod <nicholas dot ormrod at hotmail dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 15 Jul 2014 16:03:26 +0200
- Subject: Re: [PATCH 1/2] Support location tracking for built-in macro tokens
- Authentication-results: sourceware.org; auth=none
- References: <87d2du4xsu dot fsf at redhat dot com> <53ADD6C2 dot 9030200 at redhat dot com> <877g3uo6cq dot fsf at redhat dot com> <COL129-W8177087E5B88848923A685F5010 at phx dot gbl> <871tu1fhjh dot fsf at redhat dot com> <53B9991D dot 7090401 at redhat dot com> <871ttt8l8l dot fsf at redhat dot com> <53BEE945 dot 6080905 at redhat dot com> <86iomyvkai dot fsf at redhat dot com> <86d2d6vjjf dot fsf_-_ at redhat dot com>
I forgot to say that ...
Dodji Seketeli <dodji@redhat.com> writes:
[...]
> 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.
... that this was bootstrapped and tested against trunk on
x86_64-unknown-linux-gnu.
[...]
Cheers.
--
Dodji