From: Danil Malyshev Date: Tue, 10 Apr 2012 01:54:44 +0000 (+0000) Subject: Add a constructor for DataRefImpl and remove excess initialization. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=3fd9b8422328a60664a5c631ec9519b58017fcbc;p=oota-llvm.git Add a constructor for DataRefImpl and remove excess initialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154371 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Object/ELF.h b/include/llvm/Object/ELF.h index d33f317c6b9..cb013b9414b 100644 --- a/include/llvm/Object/ELF.h +++ b/include/llvm/Object/ELF.h @@ -290,9 +290,7 @@ class DynRefImpl { const OwningType *OwningObject; public: - DynRefImpl() : OwningObject(NULL) { - std::memset(&DynPimpl, 0, sizeof(DynPimpl)); - } + DynRefImpl() : OwningObject(NULL) { } DynRefImpl(DataRefImpl DynP, const OwningType *Owner); @@ -1108,7 +1106,6 @@ template relocation_iterator ELFObjectFile ::getSectionRelBegin(DataRefImpl Sec) const { DataRefImpl RelData; - memset(&RelData, 0, sizeof(RelData)); const Elf_Shdr *sec = reinterpret_cast(Sec.p); typename RelocMap_t::const_iterator ittr = SectionRelocMap.find(sec); if (sec != 0 && ittr != SectionRelocMap.end()) { @@ -1123,7 +1120,6 @@ template relocation_iterator ELFObjectFile ::getSectionRelEnd(DataRefImpl Sec) const { DataRefImpl RelData; - memset(&RelData, 0, sizeof(RelData)); const Elf_Shdr *sec = reinterpret_cast(Sec.p); typename RelocMap_t::const_iterator ittr = SectionRelocMap.find(sec); if (sec != 0 && ittr != SectionRelocMap.end()) { @@ -1626,7 +1622,6 @@ template symbol_iterator ELFObjectFile ::begin_symbols() const { DataRefImpl SymbolData; - memset(&SymbolData, 0, sizeof(SymbolData)); if (SymbolTableSections.size() <= 1) { SymbolData.d.a = std::numeric_limits::max(); SymbolData.d.b = std::numeric_limits::max(); @@ -1641,7 +1636,6 @@ template symbol_iterator ELFObjectFile ::end_symbols() const { DataRefImpl SymbolData; - memset(&SymbolData, 0, sizeof(SymbolData)); SymbolData.d.a = std::numeric_limits::max(); SymbolData.d.b = std::numeric_limits::max(); return symbol_iterator(SymbolRef(SymbolData, this)); @@ -1651,7 +1645,6 @@ template symbol_iterator ELFObjectFile ::begin_dynamic_symbols() const { DataRefImpl SymbolData; - memset(&SymbolData, 0, sizeof(SymbolData)); if (SymbolTableSections[0] == NULL) { SymbolData.d.a = std::numeric_limits::max(); SymbolData.d.b = std::numeric_limits::max(); @@ -1666,7 +1659,6 @@ template symbol_iterator ELFObjectFile ::end_dynamic_symbols() const { DataRefImpl SymbolData; - memset(&SymbolData, 0, sizeof(SymbolData)); SymbolData.d.a = std::numeric_limits::max(); SymbolData.d.b = std::numeric_limits::max(); return symbol_iterator(SymbolRef(SymbolData, this)); @@ -1676,7 +1668,6 @@ template section_iterator ELFObjectFile ::begin_sections() const { DataRefImpl ret; - memset(&ret, 0, sizeof(DataRefImpl)); ret.p = reinterpret_cast(base() + Header->e_shoff); return section_iterator(SectionRef(ret, this)); } @@ -1685,7 +1676,6 @@ template section_iterator ELFObjectFile ::end_sections() const { DataRefImpl ret; - memset(&ret, 0, sizeof(DataRefImpl)); ret.p = reinterpret_cast(base() + Header->e_shoff + (Header->e_shentsize*getNumSections())); @@ -1696,7 +1686,6 @@ template typename ELFObjectFile::dyn_iterator ELFObjectFile::begin_dynamic_table() const { DataRefImpl DynData; - memset(&DynData, 0, sizeof(DynData)); if (dot_dynamic_sec == NULL || dot_dynamic_sec->sh_size == 0) { DynData.d.a = std::numeric_limits::max(); } else { @@ -1710,7 +1699,6 @@ typename ELFObjectFile::dyn_iterator ELFObjectFile ::end_dynamic_table() const { DataRefImpl DynData; - memset(&DynData, 0, sizeof(DynData)); DynData.d.a = std::numeric_limits::max(); return dyn_iterator(DynRef(DynData, this)); } diff --git a/include/llvm/Object/ObjectFile.h b/include/llvm/Object/ObjectFile.h index 09eb7fc75e6..d8cda81533c 100644 --- a/include/llvm/Object/ObjectFile.h +++ b/include/llvm/Object/ObjectFile.h @@ -38,6 +38,9 @@ union DataRefImpl { uint32_t a, b; } d; uintptr_t p; + DataRefImpl() { + std::memset(this, 0, sizeof(DataRefImpl)); + } }; template @@ -94,9 +97,7 @@ class RelocationRef { const ObjectFile *OwningObject; public: - RelocationRef() : OwningObject(NULL) { - std::memset(&RelocationPimpl, 0, sizeof(RelocationPimpl)); - } + RelocationRef() : OwningObject(NULL) { } RelocationRef(DataRefImpl RelocationP, const ObjectFile *Owner); @@ -136,9 +137,7 @@ class SectionRef { const ObjectFile *OwningObject; public: - SectionRef() : OwningObject(NULL) { - std::memset(&SectionPimpl, 0, sizeof(SectionPimpl)); - } + SectionRef() : OwningObject(NULL) { } SectionRef(DataRefImpl SectionP, const ObjectFile *Owner); @@ -175,9 +174,7 @@ class SymbolRef { const ObjectFile *OwningObject; public: - SymbolRef() : OwningObject(NULL) { - std::memset(&SymbolPimpl, 0, sizeof(SymbolPimpl)); - } + SymbolRef() : OwningObject(NULL) { } enum Type { ST_Unknown, // Type not specified @@ -236,9 +233,7 @@ class LibraryRef { const ObjectFile *OwningObject; public: - LibraryRef() : OwningObject(NULL) { - std::memset(&LibraryPimpl, 0, sizeof(LibraryPimpl)); - } + LibraryRef() : OwningObject(NULL) { } LibraryRef(DataRefImpl LibraryP, const ObjectFile *Owner); diff --git a/lib/Object/COFFObjectFile.cpp b/lib/Object/COFFObjectFile.cpp index b8ba90535ea..53b15d07ea4 100644 --- a/lib/Object/COFFObjectFile.cpp +++ b/lib/Object/COFFObjectFile.cpp @@ -282,7 +282,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(sec); Result = section_iterator(SectionRef(Sec, this)); } @@ -374,7 +373,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 @@ -386,7 +384,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 @@ -470,7 +467,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(SymbolTable); return symbol_iterator(SymbolRef(ret, this)); } @@ -478,7 +474,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(StringTable); return symbol_iterator(SymbolRef(ret, this)); } @@ -511,14 +506,12 @@ StringRef COFFObjectFile::getLoadName() const { section_iterator COFFObjectFile::begin_sections() const { DataRefImpl ret; - std::memset(&ret, 0, sizeof(DataRefImpl)); ret.p = reinterpret_cast(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(SectionTable + Header->NumberOfSections); return section_iterator(SectionRef(ret, this)); } @@ -669,7 +662,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(SymbolTable + R->SymbolTableIndex); Res = SymbolRef(Symb, this); return object_error::success; @@ -749,7 +741,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(symb); StringRef symname; if (error_code ec = getSymbolName(sym, symname)) return ec; diff --git a/lib/Object/MachOObjectFile.cpp b/lib/Object/MachOObjectFile.cpp index 819409e3a14..ac90d5ccb4c 100644 --- a/lib/Object/MachOObjectFile.cpp +++ b/lib/Object/MachOObjectFile.cpp @@ -34,7 +34,6 @@ MachOObjectFile::MachOObjectFile(MemoryBuffer *Object, MachOObject *MOO, MachOObj(MOO), RegisteredStringTable(std::numeric_limits::max()) { DataRefImpl DRI; - DRI.d.a = DRI.d.b = 0; moveToNextSection(DRI); uint32_t LoadCommandCount = MachOObj->getHeader().NumLoadCommands; while (DRI.d.a < LoadCommandCount) { @@ -355,7 +354,6 @@ error_code MachOObjectFile::getSymbolType(DataRefImpl Symb, symbol_iterator MachOObjectFile::begin_symbols() const { // DRI.d.a = segment number; DRI.d.b = symbol index. DataRefImpl DRI; - DRI.d.a = DRI.d.b = 0; moveToNextSymbol(DRI); return symbol_iterator(SymbolRef(DRI, this)); } @@ -363,7 +361,6 @@ symbol_iterator MachOObjectFile::begin_symbols() const { symbol_iterator MachOObjectFile::end_symbols() const { DataRefImpl DRI; DRI.d.a = MachOObj->getHeader().NumLoadCommands; - DRI.d.b = 0; return symbol_iterator(SymbolRef(DRI, this)); } @@ -601,7 +598,6 @@ error_code MachOObjectFile::sectionContainsSymbol(DataRefImpl Sec, relocation_iterator MachOObjectFile::getSectionRelBegin(DataRefImpl Sec) const { DataRefImpl ret; - ret.d.a = 0; ret.d.b = getSectionIndex(Sec); return relocation_iterator(RelocationRef(ret, this)); } @@ -624,7 +620,6 @@ relocation_iterator MachOObjectFile::getSectionRelEnd(DataRefImpl Sec) const { section_iterator MachOObjectFile::begin_sections() const { DataRefImpl DRI; - DRI.d.a = DRI.d.b = 0; moveToNextSection(DRI); return section_iterator(SectionRef(DRI, this)); } @@ -632,7 +627,6 @@ section_iterator MachOObjectFile::begin_sections() const { section_iterator MachOObjectFile::end_sections() const { DataRefImpl DRI; DRI.d.a = MachOObj->getHeader().NumLoadCommands; - DRI.d.b = 0; return section_iterator(SectionRef(DRI, this)); } @@ -708,7 +702,6 @@ error_code MachOObjectFile::getRelocationSymbol(DataRefImpl Rel, bool isExtern = (RE->Word1 >> 27) & 1; DataRefImpl Sym; - Sym.d.a = Sym.d.b = 0; moveToNextSymbol(Sym); if (isExtern) { for (unsigned i = 0; i < SymbolIdx; i++) {