aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/lld/COFF/InputFiles.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm-project/lld/COFF/InputFiles.h')
-rw-r--r--contrib/llvm-project/lld/COFF/InputFiles.h20
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.
//