diff options
Diffstat (limited to 'lib/Object/COFFObjectFile.cpp')
-rw-r--r-- | lib/Object/COFFObjectFile.cpp | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/lib/Object/COFFObjectFile.cpp b/lib/Object/COFFObjectFile.cpp index ec26096abe..8024ac81dd 100644 --- a/lib/Object/COFFObjectFile.cpp +++ b/lib/Object/COFFObjectFile.cpp @@ -284,7 +284,6 @@ error_code COFFObjectFile::getSymbolSection(DataRefImpl Symb, const coff_section *sec = 0; if (error_code ec = getSection(symb->SectionNumber, sec)) return ec; DataRefImpl Sec; - std::memset(&Sec, 0, sizeof(Sec)); Sec.p = reinterpret_cast<uintptr_t>(sec); Result = section_iterator(SectionRef(Sec, this)); } @@ -359,6 +358,27 @@ error_code COFFObjectFile::isSectionBSS(DataRefImpl Sec, return object_error::success; } +error_code COFFObjectFile::isSectionRequiredForExecution(DataRefImpl Sec, + bool &Result) const { + // FIXME: Unimplemented + Result = true; + return object_error::success; +} + +error_code COFFObjectFile::isSectionVirtual(DataRefImpl Sec, + bool &Result) const { + const coff_section *sec = toSec(Sec); + Result = sec->Characteristics & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA; + return object_error::success; +} + +error_code COFFObjectFile::isSectionZeroInit(DataRefImpl Sec, + bool &Result) const { + // FIXME: Unimplemented + Result = false; + return object_error::success; +} + error_code COFFObjectFile::sectionContainsSymbol(DataRefImpl Sec, DataRefImpl Symb, bool &Result) const { @@ -376,7 +396,6 @@ error_code COFFObjectFile::sectionContainsSymbol(DataRefImpl Sec, relocation_iterator COFFObjectFile::getSectionRelBegin(DataRefImpl Sec) const { const coff_section *sec = toSec(Sec); DataRefImpl ret; - std::memset(&ret, 0, sizeof(ret)); if (sec->NumberOfRelocations == 0) ret.p = 0; else @@ -388,7 +407,6 @@ relocation_iterator COFFObjectFile::getSectionRelBegin(DataRefImpl Sec) const { relocation_iterator COFFObjectFile::getSectionRelEnd(DataRefImpl Sec) const { const coff_section *sec = toSec(Sec); DataRefImpl ret; - std::memset(&ret, 0, sizeof(ret)); if (sec->NumberOfRelocations == 0) ret.p = 0; else @@ -472,7 +490,6 @@ COFFObjectFile::COFFObjectFile(MemoryBuffer *Object, error_code &ec) symbol_iterator COFFObjectFile::begin_symbols() const { DataRefImpl ret; - std::memset(&ret, 0, sizeof(DataRefImpl)); ret.p = reinterpret_cast<intptr_t>(SymbolTable); return symbol_iterator(SymbolRef(ret, this)); } @@ -480,7 +497,6 @@ symbol_iterator COFFObjectFile::begin_symbols() const { symbol_iterator COFFObjectFile::end_symbols() const { // The symbol table ends where the string table begins. DataRefImpl ret; - std::memset(&ret, 0, sizeof(DataRefImpl)); ret.p = reinterpret_cast<intptr_t>(StringTable); return symbol_iterator(SymbolRef(ret, this)); } @@ -513,14 +529,12 @@ StringRef COFFObjectFile::getLoadName() const { section_iterator COFFObjectFile::begin_sections() const { DataRefImpl ret; - std::memset(&ret, 0, sizeof(DataRefImpl)); ret.p = reinterpret_cast<intptr_t>(SectionTable); return section_iterator(SectionRef(ret, this)); } section_iterator COFFObjectFile::end_sections() const { DataRefImpl ret; - std::memset(&ret, 0, sizeof(DataRefImpl)); ret.p = reinterpret_cast<intptr_t>(SectionTable + Header->NumberOfSections); return section_iterator(SectionRef(ret, this)); } @@ -671,7 +685,6 @@ error_code COFFObjectFile::getRelocationSymbol(DataRefImpl Rel, SymbolRef &Res) const { const coff_relocation* R = toRel(Rel); DataRefImpl Symb; - std::memset(&Symb, 0, sizeof(Symb)); Symb.p = reinterpret_cast<uintptr_t>(SymbolTable + R->SymbolTableIndex); Res = SymbolRef(Symb, this); return object_error::success; @@ -751,7 +764,6 @@ error_code COFFObjectFile::getRelocationValueString(DataRefImpl Rel, const coff_symbol *symb = 0; if (error_code ec = getSymbol(reloc->SymbolTableIndex, symb)) return ec; DataRefImpl sym; - ::memset(&sym, 0, sizeof(sym)); sym.p = reinterpret_cast<uintptr_t>(symb); StringRef symname; if (error_code ec = getSymbolName(sym, symname)) return ec; |