I forgot to say that ...

Dodji Seketeli <do...@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

Reply via email to