diff options
Diffstat (limited to 'gold/symtab.h')
-rw-r--r-- | gold/symtab.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gold/symtab.h b/gold/symtab.h index 5cee458..b26b4e0 100644 --- a/gold/symtab.h +++ b/gold/symtab.h @@ -870,6 +870,19 @@ class Symbol is_cxx_vtable() const { return is_prefix_of("_ZTV", this->name_); } + // Return true if this symbol is protected in a shared object. + // This is not the same as checking if visibility() == elfcpp::STV_PROTECTED, + // because the visibility_ field reflects the symbol's visibility from + // outside the shared object. + bool + is_protected() const + { return this->is_protected_; } + + // Mark this symbol as protected in a shared object. + void + set_is_protected() + { this->is_protected_ = true; } + protected: // Instances of this class should always be created at a specific // size. @@ -1067,6 +1080,10 @@ class Symbol bool undef_binding_weak_ : 1; // True if this symbol is a predefined linker symbol (bit 34). bool is_predefined_ : 1; + // True if this symbol has protected visibility in a shared object (bit 35). + // The visibility_ field will be STV_DEFAULT in this case because we + // must treat it as such from outside the shared object. + bool is_protected_ : 1; }; // The parts of a symbol which are size specific. Using a template |