[llvm-readobj] Change errors to warnings for symbol section name dumping
authorJames Henderson <jh7370@my.bristol.ac.uk>
Mon, 4 Nov 2019 12:00:39 +0000 (12:00 +0000)
committerJames Henderson <jh7370@my.bristol.ac.uk>
Mon, 4 Nov 2019 12:04:04 +0000 (12:04 +0000)
commitef85f47595a905475d3e7b8d1441ed69cb226d9c
treef71a6b98acd2dc26b41339396b5f381c2fa8c79e
parent31ed36d0447def348af7b1d27daceb57d063382f
[llvm-readobj] Change errors to warnings for symbol section name dumping

Also only print each such warning once.

LLVM-style output will now print "<?>" for sections it cannot identify,
e.g. because the section index is invalid. GNU output continues to print
the raw index. In both cases where the st_shndx value is SHN_XINDEX and
the index cannot be looked up in the SHT_SYMTAB_SHNDX section (e.g.
because it is missing), the symbol is printed like other symbols with
st_shndx >= SHN_LORESERVE.

Reviewed by: grimar, MaskRay

Differential Revision: https://reviews.llvm.org/D69671
llvm/test/Object/invalid.test
llvm/test/tools/llvm-readobj/elf-section-symbols.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/elf-symbol-shndx.test
llvm/test/tools/yaml2obj/dynamic-symbols.yaml
llvm/test/tools/yaml2obj/elf-sht-symtab-shndx.yaml
llvm/tools/llvm-readobj/ELFDumper.cpp