mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-11 16:15:09 +08:00
preprocessor: new callbacks
These two callbacks are needed for C++ modules. The first is for handling macros from header-units. These are resolved lazily. The second is for include-translation -- whether a #include gets turned into a header-unit import. libcpp/ * include/cpplib.h (struct cpp_callbacks): Add user_deferred_macro & translate_include.
This commit is contained in:
parent
ecf65330c1
commit
b196e76aec
@ -680,6 +680,9 @@ struct cpp_callbacks
|
||||
/* Callback that can change a user lazy into normal macro. */
|
||||
void (*user_lazy_macro) (cpp_reader *, cpp_macro *, unsigned);
|
||||
|
||||
/* Callback to handle deferred cpp_macros. */
|
||||
cpp_macro *(*user_deferred_macro) (cpp_reader *, location_t, cpp_hashnode *);
|
||||
|
||||
/* Callback to parse SOURCE_DATE_EPOCH from environment. */
|
||||
time_t (*get_source_date_epoch) (cpp_reader *);
|
||||
|
||||
@ -698,6 +701,11 @@ struct cpp_callbacks
|
||||
/* Callback for filename remapping in __FILE__ and __BASE_FILE__ macro
|
||||
expansions. */
|
||||
const char *(*remap_filename) (const char*);
|
||||
|
||||
/* Maybe translate a #include into something else. Return a
|
||||
cpp_buffer containing the translation if translating. */
|
||||
char *(*translate_include) (cpp_reader *, line_maps *, location_t,
|
||||
const char *path);
|
||||
};
|
||||
|
||||
#ifdef VMS
|
||||
|
Loading…
Reference in New Issue
Block a user