diff options
author | Jake Ehrlich <jakehehrlich@google.com> | 2017-09-27 00:44:00 +0000 |
---|---|---|
committer | Jake Ehrlich <jakehehrlich@google.com> | 2017-09-27 00:44:00 +0000 |
commit | ed95fce2287472a7df6171fcdcafe854f3218950 (patch) | |
tree | f1ba3272ea79aa5d9d28d2fdbf30d36c7c5dabb8 | |
parent | 99fdfb6a464467aeb8c8935b0aa8d68ba4f902a5 (diff) | |
download | bcm5719-llvm-ed95fce2287472a7df6171fcdcafe854f3218950.tar.gz bcm5719-llvm-ed95fce2287472a7df6171fcdcafe854f3218950.zip |
Reland: [llvm-objcopy] Add support for dynamic relocations
This change adds support for dynamic relocations (allocated
SHT_REL/SHT_RELA sections with a dynamic symbol table as their link).
I had to reland this because of a I wasn't initilizing some pointers.
llvm-svn: 314263
-rw-r--r-- | llvm/tools/llvm-objcopy/Object.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/llvm/tools/llvm-objcopy/Object.h b/llvm/tools/llvm-objcopy/Object.h index 41c9d7b4a3b..02aeeca7706 100644 --- a/llvm/tools/llvm-objcopy/Object.h +++ b/llvm/tools/llvm-objcopy/Object.h @@ -148,7 +148,7 @@ enum SymbolShndxType { struct Symbol { uint8_t Binding; - SectionBase *DefinedIn; + SectionBase *DefinedIn = nullptr; SymbolShndxType ShndxType; uint32_t Index; llvm::StringRef Name; @@ -163,7 +163,7 @@ struct Symbol { class SymbolTableSection : public SectionBase { protected: std::vector<std::unique_ptr<Symbol>> Symbols; - StringTableSection *SymbolNames; + StringTableSection *SymbolNames = nullptr; public: void setStrTab(StringTableSection *StrTab) { SymbolNames = StrTab; } @@ -185,7 +185,7 @@ template <class ELFT> class SymbolTableSectionImpl : public SymbolTableSection { }; struct Relocation { - const Symbol *RelocSymbol; + const Symbol *RelocSymbol = nullptr; uint64_t Offset; uint64_t Addend; uint32_t Type; @@ -193,8 +193,8 @@ struct Relocation { template <class SymTabType> class RelocationSectionBase : public SectionBase { private: - SymTabType *Symbols; - SectionBase *SecToApplyRel; + SymTabType *Symbols = nullptr; + SectionBase *SecToApplyRel = nullptr; public: void setSymTab(SymTabType *StrTab) { Symbols = StrTab; } @@ -226,7 +226,7 @@ public: class SectionWithStrTab : public Section { private: - StringTableSection *StrTab; + StringTableSection *StrTab = nullptr; public: SectionWithStrTab(llvm::ArrayRef<uint8_t> Data) : Section(Data) {} @@ -285,8 +285,8 @@ private: SectionTableRef readSectionHeaders(const llvm::object::ELFFile<ELFT> &ElfFile); protected: - StringTableSection *SectionNames; - SymbolTableSection *SymbolTable; + StringTableSection *SectionNames = nullptr; + SymbolTableSection *SymbolTable = nullptr; std::vector<SecPtr> Sections; std::vector<SegPtr> Segments; |