diff options
Diffstat (limited to 'gold/plugin.h')
-rw-r--r-- | gold/plugin.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gold/plugin.h b/gold/plugin.h index db6093d..e64ee07 100644 --- a/gold/plugin.h +++ b/gold/plugin.h @@ -146,11 +146,18 @@ class Plugin_manager options_(options), workqueue_(NULL), task_(NULL), input_objects_(NULL), symtab_(NULL), layout_(NULL), dirpath_(NULL), mapfile_(NULL), this_blocker_(NULL), extra_search_path_(), lock_(NULL), - initialize_lock_(&lock_) + initialize_lock_(&lock_), defsym_defines_set_() { this->current_ = plugins_.end(); } ~Plugin_manager(); + // Returns true if the symbol name is used in the LHS of a defsym. + bool + is_defsym_def(const char* sym_name) const + { + return defsym_defines_set_.find(sym_name) != defsym_defines_set_.end(); + } + // Add a plugin library. void add_plugin(const char* filename) @@ -402,6 +409,10 @@ class Plugin_manager std::string extra_search_path_; Lock* lock_; Initialize_lock initialize_lock_; + + // Keep track of all symbols defined by defsym. + typedef Unordered_set<std::string> Defsym_defines_set; + Defsym_defines_set defsym_defines_set_; }; |