aboutsummaryrefslogtreecommitdiff
path: root/libcpp/internal.h
diff options
context:
space:
mode:
authorGabriel Charette <gchare@google.com>2011-08-22 20:41:07 +0000
committerGabriel Charette <gchare@gcc.gnu.org>2011-08-22 20:41:07 +0000
commite3dfef44ef6b735ac7eea4202152d672ea0a91ef (patch)
treeedc710dc37d6c755bf80f2e8489e337aeb7186da /libcpp/internal.h
parentc4831cff11fca2cee74ea2d039070a9507f13779 (diff)
downloadgcc-e3dfef44ef6b735ac7eea4202152d672ea0a91ef.zip
gcc-e3dfef44ef6b735ac7eea4202152d672ea0a91ef.tar.gz
gcc-e3dfef44ef6b735ac7eea4202152d672ea0a91ef.tar.bz2
Add ability to force lexed tokens' source_locations.
Use it to force BUILTINS_LOCATION when declaring builtins instead of creating a <built-in> entry in the line_table which is wrong. * c-opts.c (c_finish_options): Force BUILTINS_LOCATION for tokens defined in cpp_init_builtins and c_cpp_builtins. gcc/fortran/ChangeLog * cpp.c (gfc_cpp_init): Force BUILTINS_LOCATION for tokens defined in cpp_define_builtins. libcpp/ChangeLog * init.c (cpp_create_reader): Inititalize forced_token_location_p. * internal.h (struct cpp_reader): Add field forced_token_location_p. * lex.c (_cpp_lex_direct): Use forced_token_location_p. (cpp_force_token_locations): New. (cpp_stop_forcing_token_locations): New. From-SVN: r177973
Diffstat (limited to 'libcpp/internal.h')
-rw-r--r--libcpp/internal.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/libcpp/internal.h b/libcpp/internal.h
index d2872c4..6c423f0 100644
--- a/libcpp/internal.h
+++ b/libcpp/internal.h
@@ -499,6 +499,10 @@ struct cpp_reader
/* List of saved macros by push_macro. */
struct def_pragma_macro *pushed_macros;
+
+ /* If non-null, the lexer will use this location for the next token
+ instead of getting a location from the linemap. */
+ source_location *forced_token_location_p;
};
/* Character classes. Based on the more primitive macros in safe-ctype.h.