diff options
Diffstat (limited to 'contrib/llvm-project/lld/COFF/InputFiles.h')
-rw-r--r-- | contrib/llvm-project/lld/COFF/InputFiles.h | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/contrib/llvm-project/lld/COFF/InputFiles.h b/contrib/llvm-project/lld/COFF/InputFiles.h index 50323f596e2c..3fa6819157a9 100644 --- a/contrib/llvm-project/lld/COFF/InputFiles.h +++ b/contrib/llvm-project/lld/COFF/InputFiles.h @@ -144,9 +144,12 @@ public: ArrayRef<SectionChunk *> getDebugChunks() { return debugChunks; } ArrayRef<SectionChunk *> getSXDataChunks() { return sxDataChunks; } ArrayRef<SectionChunk *> getGuardFidChunks() { return guardFidChunks; } + ArrayRef<SectionChunk *> getGuardIATChunks() { return guardIATChunks; } ArrayRef<SectionChunk *> getGuardLJmpChunks() { return guardLJmpChunks; } ArrayRef<Symbol *> getSymbols() { return symbols; } + MutableArrayRef<Symbol *> getMutableSymbols() { return symbols; } + ArrayRef<uint8_t> getDebugSection(StringRef secName); // Returns a Symbol object for the symbolIndex'th symbol in the @@ -191,6 +194,8 @@ public: const coff_section *addrsigSec = nullptr; + const coff_section *callgraphSec = nullptr; + // When using Microsoft precompiled headers, this is the PCH's key. // The same key is used by both the precompiled object, and objects using the // precompiled object. Any difference indicates out-of-date objects. @@ -253,9 +258,10 @@ private: // match the existing symbol and its selection. If either old or new // symbol have selection IMAGE_COMDAT_SELECT_LARGEST, Sym might replace // the existing leader. In that case, Prevailing is set to true. - void handleComdatSelection(COFFSymbolRef sym, - llvm::COFF::COMDATType &selection, - bool &prevailing, DefinedRegular *leader); + void + handleComdatSelection(COFFSymbolRef sym, llvm::COFF::COMDATType &selection, + bool &prevailing, DefinedRegular *leader, + const llvm::object::coff_aux_section_definition *def); llvm::Optional<Symbol *> createDefined(COFFSymbolRef sym, @@ -280,9 +286,11 @@ private: // 32-bit x86. std::vector<SectionChunk *> sxDataChunks; - // Chunks containing symbol table indices of address taken symbols and longjmp - // targets. These are not linked into the final binary when /guard:cf is set. + // Chunks containing symbol table indices of address taken symbols, address + // taken IAT entries, and longjmp targets. These are not linked into the + // final binary when /guard:cf is set. std::vector<SectionChunk *> guardFidChunks; + std::vector<SectionChunk *> guardIATChunks; std::vector<SectionChunk *> guardLJmpChunks; // This vector contains a list of all symbols defined or referenced by this @@ -350,7 +358,7 @@ public: const coff_import_header *hdr; Chunk *location = nullptr; - // We want to eliminate dllimported symbols if no one actually refers them. + // We want to eliminate dllimported symbols if no one actually refers to them. // These "Live" bits are used to keep track of which import library members // are actually in use. // |