summaryrefslogtreecommitdiffstats
path: root/lld/lib/Driver
diff options
context:
space:
mode:
Diffstat (limited to 'lld/lib/Driver')
-rw-r--r--lld/lib/Driver/WinLinkDriver.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/lld/lib/Driver/WinLinkDriver.cpp b/lld/lib/Driver/WinLinkDriver.cpp
index 0c9f177b462..644fc0ac9eb 100644
--- a/lld/lib/Driver/WinLinkDriver.cpp
+++ b/lld/lib/Driver/WinLinkDriver.cpp
@@ -501,10 +501,15 @@ WinLinkDriver::parse(int argc, const char *argv[], PECOFFLinkingContext &ctx,
// symbols given by /include to the dead strip root set, so that it
// won't be removed from the output.
if (ctx.deadStrip()) {
- if (!ctx.entrySymbolName().empty())
- ctx.addDeadStripRoot(ctx.entrySymbolName());
- for (const StringRef symbolName : ctx.initialUndefinedSymbols())
+ StringRef entry = ctx.entrySymbolName();
+ if (!entry.empty()) {
+ ctx.addInitialUndefinedSymbol(entry);
+ ctx.addDeadStripRoot(entry);
+ }
+ for (const StringRef symbolName : ctx.initialUndefinedSymbols()) {
+ ctx.addInitialUndefinedSymbol(entry);
ctx.addDeadStripRoot(symbolName);
+ }
}
// Arguments after "--" are interpreted as filenames even if they
OpenPOWER on IntegriCloud