tools: fix Twine abuse
authorSaleem Abdulrasool <compnerd@compnerd.org>
Thu, 30 Jan 2014 06:19:27 +0000 (06:19 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Thu, 30 Jan 2014 06:19:27 +0000 (06:19 +0000)
utohexstr provides a temporary string, making it unsafe to use with the Twine
interface which will not copy the string.  Switch to using std::string.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200457 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-readobj/ARMAttributeParser.cpp

index 26b8f6e91acdaf43e1017827c6656a3ce529e77d..5857547be78bebf5d5f182706c2bc05b872b2274 100644 (file)
@@ -317,16 +317,16 @@ void ARMAttributeParser::ABI_align_needed(AttrType Tag, const uint8_t *Data,
 
   uint64_t Value = ParseInteger(Data, Offset);
 
-  Twine Description;
+  std::string Description;
   if (Value < countof(Strings))
-    Description = StringRef(Strings[Value]);
+    Description = std::string(Strings[Value]);
   else if (Value <= 12)
-    Description = Twine("8-byte alignment, ") + utostr(1 << Value)
-                + Twine("-byte extended alignment");
+    Description = std::string("8-byte alignment, ") + utostr(1 << Value)
+                + std::string("-byte extended alignment");
   else
     Description = "Invalid";
 
-  PrintAttribute(Tag, Value, Description.str());
+  PrintAttribute(Tag, Value, Description);
 }
 
 void ARMAttributeParser::ABI_align_preserved(AttrType Tag, const uint8_t *Data,
@@ -338,16 +338,16 @@ void ARMAttributeParser::ABI_align_preserved(AttrType Tag, const uint8_t *Data,
 
   uint64_t Value = ParseInteger(Data, Offset);
 
-  Twine Description;
+  std::string Description;
   if (Value < countof(Strings))
-    Description = StringRef(Strings[Value]);
+    Description = std::string(Strings[Value]);
   else if (Value <= 12)
-    Description = Twine("8-byte stack alignment, ") + utostr(1 << Value)
-                + Twine("-byte data alignment");
+    Description = std::string("8-byte stack alignment, ") + utostr(1 << Value)
+                + std::string("-byte data alignment");
   else
     Description = "Invalid";
 
-  PrintAttribute(Tag, Value, Description.str());
+  PrintAttribute(Tag, Value, Description);
 }
 
 void ARMAttributeParser::ABI_enum_size(AttrType Tag, const uint8_t *Data,