llvm/Object/ELF.h: Appease g++-4.7.2.
[oota-llvm.git] / include / llvm / Object / ELF.h
index 99d8deecc6cb3e8d33d5e8373efb0729f434f8cb..0fad59205cfc72e2ca5ad397ad424a9f05416bba 100644 (file)
@@ -140,7 +140,7 @@ public:
   typedef Elf_Verneed_Impl<ELFT> Elf_Verneed;
   typedef Elf_Vernaux_Impl<ELFT> Elf_Vernaux;
   typedef Elf_Versym_Impl<ELFT> Elf_Versym;
-  typedef Elf_Hash<ELFT> Elf_Hash;
+  typedef Elf_Hash_Impl<ELFT> Elf_Hash;
   typedef ELFEntityIterator<const Elf_Dyn> Elf_Dyn_Iter;
   typedef iterator_range<Elf_Dyn_Iter> Elf_Dyn_Range;
   typedef ELFEntityIterator<const Elf_Rela> Elf_Rela_Iter;
@@ -724,11 +724,11 @@ ELFFile<ELFT>::ELFFile(StringRef Object, std::error_code &EC)
 template <class ELFT>
 void ELFFile<ELFT>::scanDynamicTable() {
   // Build load-address to file-offset map.
-  typedef typename IntervalMap<
+  typedef IntervalMap<
       uintX_t, uintptr_t,
       IntervalMapImpl::NodeSizer<uintX_t, uintptr_t>::LeafSize,
       IntervalMapHalfOpenInfo<uintX_t>> LoadMapT;
-  LoadMapT::Allocator Alloc;
+  typename LoadMapT::Allocator Alloc;
   LoadMapT LoadMap(Alloc);
 
   for (Elf_Phdr_Iter PhdrI = program_header_begin(),
@@ -752,7 +752,7 @@ void ELFFile<ELFT>::scanDynamicTable() {
     auto I = LoadMap.find(VAddr);
     if (I == LoadMap.end())
       return nullptr;
-    return base() + I.value() + (VAddr - I.start());
+    return this->base() + I.value() + (VAddr - I.start());
   };
 
   for (Elf_Dyn_Iter DynI = dynamic_table_begin(), DynE = dynamic_table_end();