diff options
Diffstat (limited to 'lld/ELF')
-rw-r--r-- | lld/ELF/Symbols.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lld/ELF/Symbols.cpp b/lld/ELF/Symbols.cpp index cf2d6d0d25d..d3f6cc619ce 100644 --- a/lld/ELF/Symbols.cpp +++ b/lld/ELF/Symbols.cpp @@ -357,8 +357,9 @@ uint8_t Symbol::computeBinding() const { bool Symbol::includeInDynsym() const { if (computeBinding() == STB_LOCAL) return false; - return ExportDynamic || body()->isShared() || - (body()->isUndefined() && Config->Shared); + if (body()->isUndefined()) + return Config->Shared; + return ExportDynamic || body()->isShared(); } // Print out a log message for --trace-symbol. |