summaryrefslogtreecommitdiffstats
path: root/lld/COFF/Writer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/COFF/Writer.cpp')
-rw-r--r--lld/COFF/Writer.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/lld/COFF/Writer.cpp b/lld/COFF/Writer.cpp
index 51ed9e10fb4..6fd519779ee 100644
--- a/lld/COFF/Writer.cpp
+++ b/lld/COFF/Writer.cpp
@@ -87,8 +87,8 @@ void OutputSection::writeHeader(uint8_t *Buf) {
}
void Writer::markLive() {
- Entry = cast<Defined>(Symtab->find(Config->EntryName));
- Entry->markLive();
+ for (StringRef Name : Config->GCRoots)
+ cast<Defined>(Symtab->find(Name))->markLive();
for (Chunk *C : Symtab->getChunks())
if (C->isRoot())
C->markLive();
@@ -291,6 +291,7 @@ void Writer::writeHeader() {
PE->Subsystem = Config->Subsystem;
PE->SizeOfImage = SizeOfImage;
PE->SizeOfHeaders = SizeOfHeaders;
+ Defined *Entry = cast<Defined>(Symtab->find(Config->EntryName));
PE->AddressOfEntryPoint = Entry->getRVA();
PE->SizeOfStackReserve = Config->StackReserve;
PE->SizeOfStackCommit = Config->StackCommit;
OpenPOWER on IntegriCloud