From eb1ff93d02b5f17b6b409e83c6d9be585f4a04b3 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Mon, 18 Dec 2017 20:12:21 +0000 Subject: Vendor import of lld trunk r321017: https://llvm.org/svn/llvm-project/lld/trunk@321017 --- COFF/MarkLive.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'COFF/MarkLive.cpp') diff --git a/COFF/MarkLive.cpp b/COFF/MarkLive.cpp index a2756e5c89e0..01be60d12d82 100644 --- a/COFF/MarkLive.cpp +++ b/COFF/MarkLive.cpp @@ -18,7 +18,7 @@ namespace coff { // Set live bit on for each reachable chunk. Unmarked (unreachable) // COMDAT chunks will be ignored by Writer, so they will be excluded // from the final output. -void markLive(const std::vector &Chunks) { +void markLive(ArrayRef Chunks) { // We build up a worklist of sections which have been marked as live. We only // push into the worklist when we discover an unmarked section, and we mark // as we push, so sections never appear twice in the list. @@ -37,7 +37,7 @@ void markLive(const std::vector &Chunks) { Worklist.push_back(C); }; - auto AddSym = [&](SymbolBody *B) { + auto AddSym = [&](Symbol *B) { if (auto *Sym = dyn_cast(B)) Enqueue(Sym->getChunk()); else if (auto *Sym = dyn_cast(B)) @@ -47,23 +47,17 @@ void markLive(const std::vector &Chunks) { }; // Add GC root chunks. - for (SymbolBody *B : Config->GCRoot) + for (Symbol *B : Config->GCRoot) AddSym(B); while (!Worklist.empty()) { SectionChunk *SC = Worklist.pop_back_val(); - - // If this section was discarded, there are relocations referring to - // discarded sections. Ignore these sections to avoid crashing. They will be - // diagnosed during relocation processing. - if (SC->isDiscarded()) - continue; - assert(SC->isLive() && "We mark as live when pushing onto the worklist!"); // Mark all symbols listed in the relocation table for this section. - for (SymbolBody *B : SC->symbols()) - AddSym(B); + for (Symbol *B : SC->symbols()) + if (B) + AddSym(B); // Mark associative sections if any. for (SectionChunk *C : SC->children()) -- cgit v1.3