diff options
-rw-r--r-- | llvm/tools/llvm-readobj/WindowsResourceDumper.cpp | 7 |
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 += '?'; } |