Recommit r366052 "[obj2yaml] - Rework tool's error reporting logic for ELF target."
authorGeorge Rimar <grimar@accesssoftek.com>
Mon, 15 Jul 2019 11:53:39 +0000 (11:53 +0000)
committerGeorge Rimar <grimar@accesssoftek.com>
Mon, 15 Jul 2019 11:53:39 +0000 (11:53 +0000)
commit224816ba169923f4ac9a1e8ac28ce10b991db239
tree15ba71fa1148482dd7f050478fb9881dd3597198
parent8d9b9f6bf2cde253ff89369399a45172b10af512
Recommit r366052 "[obj2yaml] - Rework tool's error reporting logic for ELF target."

No changes, LLD code was updated in r366057.

Original commit message:

ELF.h contains two getSymbol methods
which seems to be used only from obj2yaml.

One of these methods calls another, which in turn
contains untested error message which doesn't
provide enough information.

Problem is that after improving only just that message,
obj2yaml will not show it,
("Error reading file: yaml: Invalid data was
encountered while parsing the file" message will be shown instead),
because internal errors handling of tool is based on ErrorOr<> class which
stores a error code and as a result can only show a predefined error string, what
actually isn't very useful.

In this patch, I rework obj2yaml's error reporting system
for ELF targets to use Error  Expected<> classes.
Also, I improve the error message produced
by getSymbol for demonstration of the new functionality.

Differential revision: https://reviews.llvm.org/D64631

llvm-svn: 366058
llvm/include/llvm/Object/ELF.h
llvm/test/tools/obj2yaml/section-group.test
llvm/test/tools/obj2yaml/special-symbol-indices.yaml
llvm/tools/obj2yaml/elf2yaml.cpp
llvm/tools/obj2yaml/obj2yaml.cpp
llvm/tools/obj2yaml/obj2yaml.h