[llvm] r305314 - Improve error messages in order to help with fixing a big-endian bug.
Eric Beckmann via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 13 11:17:37 PDT 2017
Author: ecbeckmann
Date: Tue Jun 13 13:17:36 2017
New Revision: 305314
URL: http://llvm.org/viewvc/llvm-project?rev=305314&view=rev
Log:
Improve error messages in order to help with fixing a big-endian bug.
Summary: Added output to stderr so that we can actually see what is happening when the test fails on big endian.
Reviewers: zturner
Subscribers: llvm-commits, hiraditya
Differential Revision: https://reviews.llvm.org/D34155
Modified:
llvm/trunk/include/llvm/Object/WindowsResource.h
llvm/trunk/lib/Object/WindowsResource.cpp
llvm/trunk/test/tools/llvm-cvtres/combined.test
llvm/trunk/test/tools/llvm-cvtres/object.test
llvm/trunk/tools/llvm-cvtres/llvm-cvtres.cpp
Modified: llvm/trunk/include/llvm/Object/WindowsResource.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/WindowsResource.h?rev=305314&r1=305313&r2=305314&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Object/WindowsResource.h (original)
+++ llvm/trunk/include/llvm/Object/WindowsResource.h Tue Jun 13 13:17:36 2017
@@ -118,7 +118,7 @@ public:
class TreeNode;
WindowsResourceParser();
Error parse(WindowsResource *WR);
- void printTree() const;
+ void printTree(raw_ostream &OS) const;
const TreeNode &getTree() const { return Root; }
const ArrayRef<std::vector<uint8_t>> getData() const { return Data; }
const ArrayRef<std::vector<UTF16>> getStringTable() const {
Modified: llvm/trunk/lib/Object/WindowsResource.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/WindowsResource.cpp?rev=305314&r1=305313&r2=305314&view=diff
==============================================================================
--- llvm/trunk/lib/Object/WindowsResource.cpp (original)
+++ llvm/trunk/lib/Object/WindowsResource.cpp Tue Jun 13 13:17:36 2017
@@ -70,7 +70,7 @@ ResourceEntryRef::ResourceEntryRef(Binar
const WindowsResource *Owner, Error &Err)
: Reader(Ref), OwningRes(Owner) {
if (loadNext())
- Err = make_error<GenericBinaryError>("Could not read first entry.",
+ Err = make_error<GenericBinaryError>("Could not read first entry.\n",
object_error::unexpected_eof);
}
@@ -156,8 +156,8 @@ Error WindowsResourceParser::parse(Windo
return Error::success();
}
-void WindowsResourceParser::printTree() const {
- ScopedPrinter Writer(outs());
+void WindowsResourceParser::printTree(raw_ostream &OS) const {
+ ScopedPrinter Writer(OS);
Root.print(Writer, "Resource Tree");
}
Modified: llvm/trunk/test/tools/llvm-cvtres/combined.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-cvtres/combined.test?rev=305314&r1=305313&r2=305314&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-cvtres/combined.test (original)
+++ llvm/trunk/test/tools/llvm-cvtres/combined.test Tue Jun 13 13:17:36 2017
@@ -8,7 +8,7 @@
// > cvtres /machine:X86 /readonly /nologo /out:combined.obj.coff \
// languages.res test_resource.res
-RUN: llvm-cvtres /out:%t %p/Inputs/languages.res %p/Inputs/test_resource.res
+RUN: llvm-cvtres /verbose /out:%t %p/Inputs/languages.res %p/Inputs/test_resource.res
RUN: llvm-readobj -coff-resources -section-data %t | FileCheck %s
CHECK: Resources [
Modified: llvm/trunk/test/tools/llvm-cvtres/object.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-cvtres/object.test?rev=305314&r1=305313&r2=305314&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-cvtres/object.test (original)
+++ llvm/trunk/test/tools/llvm-cvtres/object.test Tue Jun 13 13:17:36 2017
@@ -7,7 +7,7 @@
// > cvtres /machine:X86 /readonly /nologo /out:test_resource.obj.coff \
// test_resource.res
-RUN: llvm-cvtres /out:%t %p/Inputs/test_resource.res
+RUN: llvm-cvtres /verbose /out:%t %p/Inputs/test_resource.res
RUN: llvm-readobj -coff-resources -section-data %t | FileCheck %s
CHECK: Resources [
Modified: llvm/trunk/tools/llvm-cvtres/llvm-cvtres.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-cvtres/llvm-cvtres.cpp?rev=305314&r1=305313&r2=305314&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-cvtres/llvm-cvtres.cpp (original)
+++ llvm/trunk/tools/llvm-cvtres/llvm-cvtres.cpp Tue Jun 13 13:17:36 2017
@@ -191,11 +191,23 @@ int main(int argc_, const char *argv_[])
error(Parser.parse(RF));
}
- if (Verbose)
- Parser.printTree();
+ if (Verbose) {
+ Parser.printTree(outs());
+ Parser.printTree(errs());
+ }
error(
llvm::object::writeWindowsResourceCOFF(OutputFile, MachineType, Parser));
+ if (Verbose) {
+ Expected<object::OwningBinary<object::Binary>> BinaryOrErr =
+ object::createBinary(OutputFile);
+ if (!BinaryOrErr)
+ reportError(OutputFile, errorToErrorCode(BinaryOrErr.takeError()));
+ Binary &Binary = *BinaryOrErr.get().getBinary();
+ ScopedPrinter W(errs());
+ W.printBinaryBlock("Output File Raw Data", Binary.getData());
+ }
+
return 0;
}
More information about the llvm-commits
mailing list