Revert "[asan-assembly-instrumentation] Prologue and epilogue are moved out from...
[oota-llvm.git] / tools / llvm-vtabledump / llvm-vtabledump.cpp
index ce2e9b6ddffac025c86aa50d83278234f6bd2302..f089d586c49dd14bd142736a0ee209a538a83dc8 100644 (file)
@@ -15,7 +15,6 @@
 #include "llvm-vtabledump.h"
 #include "Error.h"
 #include "llvm/ADT/ArrayRef.h"
-#include "llvm/ADT/StringMap.h"
 #include "llvm/Object/Archive.h"
 #include "llvm/Object/ObjectFile.h"
 #include "llvm/Support/Debug.h"
@@ -71,7 +70,7 @@ static void reportError(StringRef Input, std::error_code EC) {
 
 static void dumpVTables(const ObjectFile *Obj) {
   std::map<std::pair<StringRef, uint64_t>, StringRef> VFTableEntries;
-  StringMap<ArrayRef<aligned_little32_t>> VBTables;
+  std::map<StringRef, ArrayRef<aligned_little32_t>> VBTables;
   for (const object::SymbolRef &Sym : Obj->symbols()) {
     StringRef SymName;
     if (error(Sym.getName(SymName)))
@@ -126,12 +125,13 @@ static void dumpVTables(const ObjectFile *Obj) {
     StringRef SymName = VFTableEntry.second;
     outs() << VFTableName << '[' << Offset << "]: " << SymName << '\n';
   }
-  for (const StringMapEntry<ArrayRef<aligned_little32_t>> &VBTable : VBTables) {
-    StringRef VBTableName = VBTable.getKey();
+  for (const std::pair<StringRef, ArrayRef<aligned_little32_t>> &VBTable :
+       VBTables) {
+    StringRef VBTableName = VBTable.first;
     uint32_t Idx = 0;
-    for (aligned_little32_t Offset : VBTable.getValue()) {
+    for (aligned_little32_t Offset : VBTable.second) {
       outs() << VBTableName << '[' << Idx << "]: " << Offset << '\n';
-      Idx += sizeof(aligned_little32_t);
+      Idx += sizeof(Offset);
     }
   }
 }
@@ -164,16 +164,16 @@ static void dumpInput(StringRef File) {
   }
 
   // Attempt to open the binary.
-  ErrorOr<Binary *> BinaryOrErr = createBinary(File);
+  ErrorOr<OwningBinary<Binary>> BinaryOrErr = createBinary(File);
   if (std::error_code EC = BinaryOrErr.getError()) {
     reportError(File, EC);
     return;
   }
-  std::unique_ptr<Binary> Binary(BinaryOrErr.get());
+  Binary &Binary = *BinaryOrErr.get().getBinary();
 
-  if (Archive *Arc = dyn_cast<Archive>(Binary.get()))
+  if (Archive *Arc = dyn_cast<Archive>(&Binary))
     dumpArchive(Arc);
-  else if (ObjectFile *Obj = dyn_cast<ObjectFile>(Binary.get()))
+  else if (ObjectFile *Obj = dyn_cast<ObjectFile>(&Binary))
     dumpVTables(Obj);
   else
     reportError(File, vtabledump_error::unrecognized_file_format);