diff options
Diffstat (limited to 'lld/lib/Core/Resolver.cpp')
| -rw-r--r-- | lld/lib/Core/Resolver.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/lld/lib/Core/Resolver.cpp b/lld/lib/Core/Resolver.cpp index ff80d687e37..f642e0d7b48 100644 --- a/lld/lib/Core/Resolver.cpp +++ b/lld/lib/Core/Resolver.cpp @@ -247,11 +247,9 @@ void Resolver::doDefinedAtom(const DefinedAtom &atom) { _symbolTable.add(atom); } - if (_context.deadStrip()) { - // add to set of dead-strip-roots, all symbols that - // the compiler marks as don't strip - if (atom.deadStrip() == DefinedAtom::deadStripNever) - _deadStripRoots.insert(&atom); + // An atom that should never be dead-stripped is a dead-strip root. + if (_context.deadStrip() && atom.deadStrip() == DefinedAtom::deadStripNever) { + _deadStripRoots.insert(&atom); } } |

