diff options
author | Eric Beckmann <ecbeckmann@google.com> | 2017-05-08 02:47:42 +0000 |
---|---|---|
committer | Eric Beckmann <ecbeckmann@google.com> | 2017-05-08 02:47:42 +0000 |
commit | cd704cb6c4290643f232dc7e22b938705909dd6f (patch) | |
tree | b8cd0a66575686431853009444902f12db064edb /llvm/tools | |
parent | 521a739f5ffdb006bd2f5f4952c54fdfe25fff2e (diff) | |
download | bcm5719-llvm-cd704cb6c4290643f232dc7e22b938705909dd6f.tar.gz bcm5719-llvm-cd704cb6c4290643f232dc7e22b938705909dd6f.zip |
Hopefully one last commit to fix this patch, addresses string reference
issues.
llvm-svn: 302401
Diffstat (limited to 'llvm/tools')
-rw-r--r-- | llvm/tools/llvm-readobj/COFFDumper.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/tools/llvm-readobj/COFFDumper.cpp b/llvm/tools/llvm-readobj/COFFDumper.cpp index 64fd60ea209..049af2c4f07 100644 --- a/llvm/tools/llvm-readobj/COFFDumper.cpp +++ b/llvm/tools/llvm-readobj/COFFDumper.cpp @@ -44,6 +44,7 @@ #include "llvm/Support/BinaryByteStream.h" #include "llvm/Support/BinaryStreamReader.h" #include "llvm/Support/COFF.h" +#include "llvm/Support/ConvertUTF.h" #include "llvm/Support/Casting.h" #include "llvm/Support/Compiler.h" #include "llvm/Support/DataExtractor.h" @@ -1560,9 +1561,12 @@ void COFFDumper::printResourceDirectoryTable( SmallString<20> IDStr; raw_svector_ostream OS(IDStr); if (i < Table.NumberOfNameEntries) { - StringRef EntryNameString = unwrapOrError(RSF.getEntryNameString(Entry)); + ArrayRef<UTF16> RawEntryNameString = unwrapOrError(RSF.getEntryNameString(Entry)); + std::string EntryNameString; + if (!llvm::convertUTF16ToUTF8String(RawEntryNameString, EntryNameString)) + error(object_error::parse_failed); OS << ": "; - OS << EntryNameString.str(); + OS << EntryNameString; } else { if (Level == "Type") { ScopedPrinter Printer(OS); @@ -1594,7 +1598,7 @@ void COFFDumper::printResourceDirectoryTable( ErrorOr<const coff_resource_dir_entry &> COFFDumper::getResourceDirectoryTableEntry(const coff_resource_dir_table &Table, uint32_t Index) { - if (Index >= Table.NumberOfNameEntries + Table.NumberOfIDEntries) + if (Index >= (uint32_t)(Table.NumberOfNameEntries + Table.NumberOfIDEntries)) return object_error::parse_failed; auto TablePtr = reinterpret_cast<const coff_resource_dir_entry *>(&Table + 1); return TablePtr[Index]; |