summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/WindowsResourceDumper.cpp
diff options
context:
space:
mode:
authorMarek Sokolowski <mnbvmar@gmail.com>2017-09-20 23:07:39 +0000
committerMarek Sokolowski <mnbvmar@gmail.com>2017-09-20 23:07:39 +0000
commitab9ee73ebc312b631fd0d959a0e4aa850a5592f0 (patch)
treececa4b6a2466b7b3bf2bdf819cd2c825253c690c /llvm/tools/llvm-readobj/WindowsResourceDumper.cpp
parent9e50291065a49e9af300f159a209d101ac151c51 (diff)
downloadbcm5719-llvm-ab9ee73ebc312b631fd0d959a0e4aa850a5592f0.tar.gz
bcm5719-llvm-ab9ee73ebc312b631fd0d959a0e4aa850a5592f0.zip
[llvm-readobj] Fix 'Teach readobj to dump .res files', pt 2.
Another fix-up for r313790. Big-endian hosts swapped byte order in UTF16 words. llvm-svn: 313833
Diffstat (limited to 'llvm/tools/llvm-readobj/WindowsResourceDumper.cpp')
-rw-r--r--llvm/tools/llvm-readobj/WindowsResourceDumper.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/tools/llvm-readobj/WindowsResourceDumper.cpp b/llvm/tools/llvm-readobj/WindowsResourceDumper.cpp
index d1d415d0916..bbe573d9528 100644
--- a/llvm/tools/llvm-readobj/WindowsResourceDumper.cpp
+++ b/llvm/tools/llvm-readobj/WindowsResourceDumper.cpp
@@ -26,8 +26,11 @@ std::string stripUTF16(const ArrayRef<UTF16> &UTF16Str) {
Result.reserve(UTF16Str.size());
for (UTF16 Ch : UTF16Str) {
- if (Ch <= 0xFF)
- Result += Ch;
+ // UTF16Str will have swapped byte order in case of big-endian machines.
+ // Swap it back in such a case.
+ ulittle16_t ChValue = Ch;
+ if (ChValue <= 0xFF)
+ Result += ChValue;
else
Result += '?';
}
OpenPOWER on IntegriCloud