diff options
author | Nathan Sidwell <nathan@acm.org> | 2020-12-11 06:42:26 -0800 |
---|---|---|
committer | Nathan Sidwell <nathan@acm.org> | 2020-12-11 06:44:26 -0800 |
commit | 97b56dece74138398977ea53368a025ed231b35c (patch) | |
tree | 51154b245c698f740fec5c4306d30371af0c9210 /gcc/cp/cp-objcp-common.c | |
parent | 37b242a3fbd29839ce352dfd8444c44989642a42 (diff) | |
download | gcc-97b56dece74138398977ea53368a025ed231b35c.zip gcc-97b56dece74138398977ea53368a025ed231b35c.tar.gz gcc-97b56dece74138398977ea53368a025ed231b35c.tar.bz2 |
c++: Module lang hook overriding
This installs stub lang hooks for modules and creates the module dump file.
gcc/cp/
* cp-lang.c (LANG_HOOKS_PREPROCESS_MAIN_FILE): Override.
(LANG_HOOKS_PREPROCESS_OPTIONS): Override.
(LANG_HOOKS_PREPROCESS_TOKEN): Override.
* cp-objcp-common.c (cp_register_dumps): Add module dump.
(cp_handle_option): New.
* cp-objcp-common.h (cp_handle_option): Declare.
(LANG_HOOKS_HANDLE_OPTION): Override.
* cp-tree.h (module_dump_id): Declare.
* module.cc (module_dump_id): Define.
(module_begin_main_file, handle_module_option)
(module_preproces_options): Stubs.
Diffstat (limited to 'gcc/cp/cp-objcp-common.c')
-rw-r--r-- | gcc/cp/cp-objcp-common.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/cp/cp-objcp-common.c b/gcc/cp/cp-objcp-common.c index 7ff4d39..84f0b59 100644 --- a/gcc/cp/cp-objcp-common.c +++ b/gcc/cp/cp-objcp-common.c @@ -438,6 +438,9 @@ cp_register_dumps (gcc::dump_manager *dumps) class_dump_id = dumps->dump_register (".class", "lang-class", "lang-class", DK_lang, OPTGROUP_NONE, false); + module_dump_id = dumps->dump_register + (".module", "lang-module", "lang-module", DK_lang, OPTGROUP_NONE, false); + raw_dump_id = dumps->dump_register (".raw", "lang-raw", "lang-raw", DK_lang, OPTGROUP_NONE, false); } @@ -551,4 +554,16 @@ cp_common_init_ts (void) c_common_init_ts (); } +/* Handle C++-specficic options here. Punt to c_common otherwise. */ + +bool +cp_handle_option (size_t scode, const char *arg, HOST_WIDE_INT value, + int kind, location_t loc, + const struct cl_option_handlers *handlers) +{ + if (handle_module_option (unsigned (scode), arg, value)) + return true; + return c_common_handle_option (scode, arg, value, kind, loc, handlers); +} + #include "gt-cp-cp-objcp-common.h" |