tools: fix Twine abuse

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.

llvm-svn: 200457
This commit is contained in:
Saleem Abdulrasool 2014-01-30 06:19:27 +00:00
parent 036bc255ce
commit ed0d1ccc95
1 changed files with 10 additions and 10 deletions

View 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,