summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj
diff options
context:
space:
mode:
authorEric Beckmann <ecbeckmann@google.com>2017-05-08 01:48:55 +0000
committerEric Beckmann <ecbeckmann@google.com>2017-05-08 01:48:55 +0000
commit626680a09e5031234eb98b9c42ebba4636294aef (patch)
treedd9ce1ac773ca25b3fe52452c875b5fee78273c5 /llvm/tools/llvm-readobj
parentef40748260b2fadd11cb174d0326d742d7353d9b (diff)
downloadbcm5719-llvm-626680a09e5031234eb98b9c42ebba4636294aef.tar.gz
bcm5719-llvm-626680a09e5031234eb98b9c42ebba4636294aef.zip
Hopefully one last commit to fix this patch, addresses string reference
issues. llvm-svn: 302395
Diffstat (limited to 'llvm/tools/llvm-readobj')
-rw-r--r--llvm/tools/llvm-readobj/COFFDumper.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/tools/llvm-readobj/COFFDumper.cpp b/llvm/tools/llvm-readobj/COFFDumper.cpp
index 64fd60ea209..9ffa8292738 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);
OpenPOWER on IntegriCloud