diff options
| author | Saleem Abdulrasool <compnerd@compnerd.org> | 2016-08-21 23:05:43 +0000 |
|---|---|---|
| committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2016-08-21 23:05:43 +0000 |
| commit | 9f8bc029bdbcfd9ee76756d2690a59ea746ebe72 (patch) | |
| tree | 5992e5b1106441c5be8f0de4ee6afcbacbf66b2f | |
| parent | 89e375a95eca0942a8de957b7591ff01708828bb (diff) | |
| download | bcm5719-llvm-9f8bc029bdbcfd9ee76756d2690a59ea746ebe72.tar.gz bcm5719-llvm-9f8bc029bdbcfd9ee76756d2690a59ea746ebe72.zip | |
COFF: hoist a local variable
Create a local variable for the rdata section. NFC.
llvm-svn: 279407
| -rw-r--r-- | lld/COFF/Writer.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lld/COFF/Writer.cpp b/lld/COFF/Writer.cpp index ea0dcb4d7aa..1a1018e2076 100644 --- a/lld/COFF/Writer.cpp +++ b/lld/COFF/Writer.cpp @@ -286,25 +286,29 @@ void Writer::createSections() { } void Writer::createMiscChunks() { + OutputSection *RData = createSection(".rdata"); + // Create thunks for locally-dllimported symbols. if (!Symtab->LocalImportChunks.empty()) { - OutputSection *Sec = createSection(".rdata"); for (Chunk *C : Symtab->LocalImportChunks) - Sec->addChunk(C); + RData->addChunk(C); } // Create SEH table. x86-only. if (Config->Machine != I386) return; + std::set<Defined *> Handlers; + for (lld::coff::ObjectFile *File : Symtab->ObjectFiles) { if (!File->SEHCompat) return; for (SymbolBody *B : File->SEHandlers) Handlers.insert(cast<Defined>(B->repl())); } + SEHTable.reset(new SEHTableChunk(Handlers)); - createSection(".rdata")->addChunk(SEHTable.get()); + RData->addChunk(SEHTable.get()); } // Create .idata section for the DLL-imported symbol table. |

