From: Marek Sokolowski Date: Wed, 20 Sep 2017 23:07:39 +0000 (+0000) Subject: [llvm-readobj] Fix 'Teach readobj to dump .res files', pt 2. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bf41ef78ca1e20e9eb48ed32aa38f20f633b2377;p=llvm [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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313833 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/llvm-readobj/WindowsResourceDumper.cpp b/tools/llvm-readobj/WindowsResourceDumper.cpp index d1d415d0916..bbe573d9528 100644 --- a/tools/llvm-readobj/WindowsResourceDumper.cpp +++ b/tools/llvm-readobj/WindowsResourceDumper.cpp @@ -26,8 +26,11 @@ std::string stripUTF16(const ArrayRef &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 += '?'; }