summaryrefslogtreecommitdiffstats
path: root/llvm/tools
diff options
context:
space:
mode:
authorEric Beckmann <ecbeckmann@google.com>2017-05-08 02:47:42 +0000
committerEric Beckmann <ecbeckmann@google.com>2017-05-08 02:47:42 +0000
commitcd704cb6c4290643f232dc7e22b938705909dd6f (patch)
treeb8cd0a66575686431853009444902f12db064edb /llvm/tools
parent521a739f5ffdb006bd2f5f4952c54fdfe25fff2e (diff)
downloadbcm5719-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.cpp10
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];
OpenPOWER on IntegriCloud