[obj2yaml] - Rework tool's error reporting logic for ELF target.
authorGeorge Rimar <grimar@accesssoftek.com>
Mon, 15 Jul 2019 10:50:03 +0000 (10:50 +0000)
committerGeorge Rimar <grimar@accesssoftek.com>
Mon, 15 Jul 2019 10:50:03 +0000 (10:50 +0000)
commit309246e4e2fe835051e4cf9cd23533918ad2335a
tree59baf300484f02a1719f1d50826914aa61a3da42
parentda750b1688fb82ca28d89d2dbe08784ed16f978c
[obj2yaml] - Rework tool's error reporting logic for ELF target.

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: 366052
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