[llvm] r313912 - [llvm-readobj] Fix big-endian byte swap in WindowsResourceDumper.
Marek Sokolowski via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 21 13:36:38 PDT 2017
Author: mnbvmar
Date: Thu Sep 21 13:36:38 2017
New Revision: 313912
URL: http://llvm.org/viewvc/llvm-project?rev=313912&view=rev
Log:
[llvm-readobj] Fix big-endian byte swap in WindowsResourceDumper.
The previous version of dumper implemented UTF-16 byte swap incorrectly
on big-endian machines. This now gets fixed.
Thanks to Bill Seurer for testing the patch locally.
Differential Review: https://reviews.llvm.org/D38150
Modified:
llvm/trunk/tools/llvm-readobj/WindowsResourceDumper.cpp
Modified: llvm/trunk/tools/llvm-readobj/WindowsResourceDumper.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-readobj/WindowsResourceDumper.cpp?rev=313912&r1=313911&r2=313912&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-readobj/WindowsResourceDumper.cpp (original)
+++ llvm/trunk/tools/llvm-readobj/WindowsResourceDumper.cpp Thu Sep 21 13:36:38 2017
@@ -29,7 +29,7 @@ std::string stripUTF16(const ArrayRef<UT
for (UTF16 Ch : UTF16Str) {
// UTF16Str will have swapped byte order in case of big-endian machines.
// Swap it back in such a case.
- support::ulittle16_t ChValue(Ch);
+ uint16_t ChValue = support::endian::byte_swap(Ch, support::little);
if (ChValue <= 0xFF)
Result += ChValue;
else
More information about the llvm-commits
mailing list