1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/test/Object
Kevin Enderby a6534d0295 Thread Expected<...> up from createMachOObjectFile() to allow llvm-objdump to produce a real error message
Produce the first specific error message for a malformed Mach-O file describing
the problem instead of the generic message for object_error::parse_failed of
"Invalid data was encountered while parsing the file”.  Many more good error
messages will follow after this first one.

This is built on Lang Hames’ great work of adding the ’Error' class for
structured error handling and threading Error through MachOObjectFile
construction.  And making createMachOObjectFile return Expected<...> .

So to to get the error to the llvm-obdump tool, I changed the stack of
these methods to also return Expected<...> :

  object::ObjectFile::createObjectFile()
  object::SymbolicFile::createSymbolicFile()
  object::createBinary()

Then finally in ParseInputMachO() in MachODump.cpp the error can
be reported and the specific error message can be printed in llvm-objdump
and can be seen in the existing test case for the existing malformed binary
but with the updated error message.

Converting these interfaces to Expected<> from ErrorOr<> does involve
touching a number of places. To contain the changes for now use of
errorToErrorCode() and errorOrToExpected() are used where the callers
are yet to be converted.

Also there some were bugs in the existing code that did not deal with the
old ErrorOr<> return values.  So now with Expected<> since they must be
checked and the error handled, I added a TODO and a comment:
“// TODO: Actually report errors helpfully” and a call something like
consumeError(ObjOrErr.takeError()) so the buggy code will not crash
since needed to deal with the Error.

Note there is one fix also needed to lld/COFF/InputFiles.cpp that goes along
with this that I will commit right after this.  So expect lld not to built
after this commit and before the next one.

llvm-svn: 265606
2016-04-06 22:14:09 +00:00
..
AArch64 [ELFYAML] Provide default value 0 for YAML relocation addendum field 2015-01-29 06:56:24 +00:00
AMDGPU Revert "[AMDGPU] llvm-objdump: Minimal HSA Code Object disassembler support." 2016-04-06 16:30:21 +00:00
ARM llvm-nm: Don't print mapping symbols. 2015-06-25 21:00:51 +00:00
Inputs Add a testcase that would have found the bug in r263971. 2016-03-21 21:09:38 +00:00
Lanai [lanai] Add Lanai backend. 2016-03-28 13:09:54 +00:00
Mips [ELF] Explicitly configure sections alignment in the tests. NFC 2015-07-09 18:22:55 +00:00
X86 IRObject: Mark extern_weak as weak. 2016-02-29 14:26:06 +00:00
ar-create.test
ar-error.test
archive-delete.test lit: Add 'cd' support to the internal shell and port some tests 2015-03-02 21:33:18 +00:00
archive-error-tmp.txt Remove "REQUIRES:shell" from tests. They work for me. 2014-11-04 13:41:33 +00:00
archive-extract-dir.test lit: Add 'cd' support to the internal shell and port some tests 2015-03-02 21:33:18 +00:00
archive-extract.test Accept lower case to handle windows error messages. 2015-07-14 22:42:21 +00:00
archive-format.test Trying to fix the windows bots. 2015-07-16 00:38:34 +00:00
archive-long-index.test
archive-move.test lit: Add 'cd' support to the internal shell and port some tests 2015-03-02 21:33:18 +00:00
archive-replace-pos.test
archive-symtab.test Tests: be slightly more specific to avoid conflict with path. 2015-10-26 13:40:03 +00:00
archive-thin-read.test Create thin archive in GNU format to fix test on OS X. 2016-03-31 23:07:50 +00:00
archive-toc.test Fix reading archive members with / in the name. 2015-07-13 23:07:05 +00:00
archive-update.test Stabilize llvm/test/Object/archive-update.test a bit. 2015-12-07 23:15:57 +00:00
check_binary_output.ll
coff-archive-short.test Object, COFF: Cleanup symbol type code, improve binutils compatibility 2014-10-31 05:07:00 +00:00
coff-archive.test llvm-nm: treat weak undefined as undefined. 2015-07-06 21:36:23 +00:00
coff-invalid.test Check that COFF .obj files have sections with zero virtual address spaces. 2015-07-06 14:26:07 +00:00
corrupt.test Represent the dynamic table itself with a DynRegionInfo. 2016-02-17 16:48:00 +00:00
directory.ll
dllimport-globalref.ll Object: Add XFAILed test case for r239560. 2015-06-24 18:03:39 +00:00
dllimport.ll Object: Prepend __imp_ when mangling a dllimport symbol in IRObjectFile. 2015-06-11 21:42:18 +00:00
dyn-rel-relocation.test [llvm-readobj][ELF] Teach llvm-readobj to show dynamic relocation in REL format 2016-01-16 22:40:09 +00:00
dynamic-reloc.test Add a testcase that would have found the bug in r263971. 2016-03-21 21:09:38 +00:00
elf-reloc-no-sym.test
elf-unknown-type.test [Object][ELF] Test unknown type. 2015-01-23 21:58:09 +00:00
invalid.test Change how readobj stores info about dynamic symbols. 2016-02-17 15:38:21 +00:00
kext.test Object: Test for reading kext bundles 2015-02-27 18:58:23 +00:00
lit.local.cfg Change how symbol sizes are handled in lib/Object. 2015-06-24 10:20:30 +00:00
macho-invalid.test Thread Expected<...> up from createMachOObjectFile() to allow llvm-objdump to produce a real error message 2016-04-06 22:14:09 +00:00
mangle-ir.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
mri1.test Re-enable tests in llvm/test/Object, corresponding to line_iterator's 2014-11-04 13:19:29 +00:00
mri2.test llvm-ar: Start adding support for mri scripts. 2014-10-10 18:33:51 +00:00
mri3.test Re-enable tests in llvm/test/Object, corresponding to line_iterator's 2014-11-04 13:19:29 +00:00
mri4.test Re-enable tests in llvm/test/Object, corresponding to line_iterator's 2014-11-04 13:19:29 +00:00
mri5.test llvm-ar: Start adding support for mri scripts. 2014-10-10 18:33:51 +00:00
mri-addlib.test Re-enable tests in llvm/test/Object, corresponding to line_iterator's 2014-11-04 13:19:29 +00:00
mri-addmod.test Re-enable tests in llvm/test/Object, corresponding to line_iterator's 2014-11-04 13:19:29 +00:00
mri-crlf.test Add CRLF support to LineIterator. 2014-11-03 14:09:47 +00:00
nm-archive.test Identify thin archives as archives. 2015-07-22 18:29:39 +00:00
nm-darwin-m.test
nm-error.test
nm-irix6.test [Object] Support reading 64-bit MIPS ELF archives 2015-02-17 18:54:22 +00:00
nm-pe-image.test Update comments. 2015-08-06 20:05:27 +00:00
nm-shared-object.test
nm-trivial-object.test Fix llvm-nm -S option. 2015-05-22 13:28:35 +00:00
nm-universal-binary.test
nm-weak-global-macho.test
no-section-header-string-table.test [Object][ELF] Handle files with no section header string table. 2015-07-21 21:40:33 +00:00
no-section-table.test [llvm-readobj] Dump DT_RELACOUNT correctly. 2016-01-16 06:06:36 +00:00
obj2yaml-coff-long-file-symbol.test
obj2yaml-coff-long-section-name.test obj2yaml, COFF: Handle long section names 2014-10-10 00:17:57 +00:00
obj2yaml-coff-section-aux-symbol.test Add tests for r219479. 2014-10-10 06:59:05 +00:00
obj2yaml-coff-weak-external.test
obj2yaml-sectiongroup.test [obj2yaml/yaml2obj] Add SHT_GROUP support. 2015-02-21 04:28:26 +00:00
obj2yaml.test [llvm-readobj][ELF] Teach llvm-readobj to show arch specific ELF section's flags 2016-01-20 19:15:18 +00:00
objdump-export-list.test [Object] Don't crash on empty export lists. 2014-12-19 02:31:01 +00:00
objdump-file-header.test
objdump-no-sectionheaders.test
objdump-private-headers.test Add mach-o LC_RPATH support to llvm-objdump 2014-12-04 07:37:02 +00:00
objdump-reloc-shared.test Revert "[llvm-objdump] Printing relocations in executable and shared object files. This partially reverts r215844 by removing test objdump-reloc-shared.test which stated GNU objdump doesn't print relocations, it does." 2016-03-21 20:59:15 +00:00
objdump-relocations.test Fix getRelocationValueString to return the symbol name for EM_386. 2014-10-29 18:37:13 +00:00
objdump-section-content.test
objdump-sectionheaders.test
objdump-shndx.test Add a test showing that objdump (and so ObjectFIle) can handle shndx. 2015-08-10 21:00:15 +00:00
objdump-symbol-table.test objdump: Don't print a (always 0) size for MachO symbols. 2015-06-23 15:45:38 +00:00
pr25877.test Handle archives with paths in the names. 2015-12-18 16:07:17 +00:00
readobj-absent.test Avoid SEGFAULT if a requested symbol section is absent. 2015-09-21 19:17:18 +00:00
readobj-elf-versioning.test
readobj-shared-object.test Fix printing of 64 bit values and make test more strict. 2015-10-01 17:57:31 +00:00
readobj.test
relocation-executable.test Reapply r260489. 2016-02-16 15:16:00 +00:00
simple-archive.test
size-trivial-macho.test
stackmap-dump.test [Stackmap] Pre-assemble the stackmap parser test case. (Fix builders). 2015-06-27 03:49:25 +00:00
yaml2obj-coff-invalid-alignment.test [yaml2obj, COFF] Correctly handle section alignment 2016-03-17 05:43:26 +00:00
yaml2obj-coff-multi-doc.test
yaml2obj-elf-alignment.yaml [yaml2obj] Align section content using AddressAlign field's value 2015-07-08 10:12:40 +00:00
yaml2obj-elf-bits-endian.test
yaml2obj-elf-file-headers-with-e_flags.yaml [yaml2obj] Allow yaml2obj tool to recognize EF_MIPS_NAN2008 flag 2014-11-04 13:33:36 +00:00
yaml2obj-elf-file-headers.yaml
yaml2obj-elf-multi-doc.test
yaml2obj-elf-rel-noref.yaml [ELFYAML] Fix handling SHT_NOBITS sections by obj2yaml/yaml2obj tools 2015-07-03 23:00:54 +00:00
yaml2obj-elf-rel.yaml [yaml2obj] Use regex to match sections offsets. NFC 2015-07-08 06:57:24 +00:00
yaml2obj-elf-section-basic.yaml [yaml2obj] Initialize sh_addralign field for the .symtab section 2015-07-09 18:23:02 +00:00
yaml2obj-elf-section-invalid-size.yaml
yaml2obj-elf-symbol-basic.yaml [ELF] Explicitly configure sections alignment in the tests. NFC 2015-07-09 18:22:55 +00:00
yaml2obj-elf-symbol-LocalGlobalWeak.yaml
yaml2obj-elf-symbol-visibility.yaml [llvm-readobj] Decode st_other symbol's flags 2016-03-24 16:10:37 +00:00
yaml2obj-readobj.test