[llvm] r254547 - [Hexagon] Remove std::hex in favor of format().

Alexey Samsonov via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 2 15:02:47 PST 2015


Indeed. Switched to format_hex() in r254560, thanks!

On Wed, Dec 2, 2015 at 2:32 PM, Sean Silva <chisophugis at gmail.com> wrote:

> We also have `format_hex` in Support/Format.h
>
> -- Sean Silva
>
> On Wed, Dec 2, 2015 at 1:13 PM, Alexey Samsonov via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Author: samsonov
>> Date: Wed Dec  2 15:13:43 2015
>> New Revision: 254547
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=254547&view=rev
>> Log:
>> [Hexagon] Remove std::hex in favor of format().
>>
>> std::hex is not used anywhere in LLVM code base except for this place,
>> and it has a known undefined behavior (at least in libstdc++ 4.9.3):
>> https://llvm.org/bugs/show_bug.cgi?id=18156, which fires in UBSan
>> bootstrap of LLVM.
>>
>> Modified:
>>     llvm/trunk/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
>>
>> Modified: llvm/trunk/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp?rev=254547&r1=254546&r2=254547&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp Wed Dec
>> 2 15:13:43 2015
>> @@ -38,6 +38,7 @@
>>  #include "llvm/Support/CommandLine.h"
>>  #include "llvm/Support/Debug.h"
>>  #include "llvm/Support/ELF.h"
>> +#include "llvm/Support/Format.h"
>>  #include "llvm/Support/SourceMgr.h"
>>  #include "llvm/Support/MemoryBuffer.h"
>>  #include "llvm/Support/TargetRegistry.h"
>> @@ -1511,14 +1512,15 @@ unsigned HexagonAsmParser::validateTarge
>>  }
>>
>>  void HexagonAsmParser::OutOfRange(SMLoc IDLoc, long long Val, long long
>> Max) {
>> -  std::stringstream errStr;
>> -  errStr << "value " << Val << "(0x" << std::hex << Val << std::dec
>> +  std::string errStr;
>> +  raw_string_ostream ES(errStr);
>> +  ES << "value " << Val << "(" << format("0x%" PRIx64, Val)
>>           << ") out of range: ";
>>    if (Max >= 0)
>> -    errStr << "0-" << Max;
>> +    ES << "0-" << Max;
>>    else
>> -    errStr << Max << "-" << (-Max - 1);
>> -  Error(IDLoc, errStr.str().c_str());
>> +    ES << Max << "-" << (-Max - 1);
>> +  Error(IDLoc, ES.str().c_str());
>>  }
>>
>>  int HexagonAsmParser::processInstruction(MCInst &Inst,
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
>


-- 
Alexey Samsonov
vonosmas at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151202/3d120594/attachment.html>


More information about the llvm-commits mailing list