diff options
-rw-r--r-- | lld/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/lld/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp b/lld/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp index 5228c649814..abf1f646116 100644 --- a/lld/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp +++ b/lld/lib/ReaderWriter/PECOFF/ReaderImportHeader.cpp @@ -150,35 +150,28 @@ namespace coff { namespace { +uint8_t FuncAtomContent[] = { + 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, // jmp *0x0 + 0x90, 0x90 // nop; nop +}; + /// The defined atom for jump table. class FuncAtom : public COFFLinkerInternalAtom { public: FuncAtom(const File &file, StringRef symbolName) - : COFFLinkerInternalAtom(file, std::vector<uint8_t>(rawContent), - symbolName) {} + : COFFLinkerInternalAtom( + file, + std::vector<uint8_t>(FuncAtomContent, + FuncAtomContent + sizeof(FuncAtomContent)), + symbolName) {} virtual uint64_t ordinal() const { return 0; } virtual Scope scope() const { return scopeGlobal; } virtual ContentType contentType() const { return typeCode; } virtual Alignment alignment() const { return Alignment(1); } virtual ContentPermissions permissions() const { return permR_X; } - -private: - static std::vector<uint8_t> rawContent; }; -// MSVC doesn't seem to like C++11 initializer list, so initialize the -// vector from an array. -namespace { -uint8_t FuncAtomContent[] = { - 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, // jmp *0x0 - 0x90, 0x90 // nop; nop -}; -} // anonymous namespace - -std::vector<uint8_t> FuncAtom::rawContent( - FuncAtomContent, FuncAtomContent + sizeof(FuncAtomContent)); - class FileImportLibrary : public File { public: FileImportLibrary(const LinkingContext &context, |