mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-15 16:09:57 +00:00
7b677dd986
MachO and COFF quite reasonably only define the size for common symbols. We used to try to figure out the "size" by computing the gap from one symbol to the next. This would not be correct in general, since a part of a section can belong to no visible symbol (padding, private globals). It was also really expensive, since we would walk every symbol to find the size of one. If a caller really wants this, it can sort all the symbols once and get all the gaps ("size") in O(n log n) instead of O(n^2). On MachO this also has the advantage of centralizing all the checks for an invalid n_sect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238028 91177308-0d34-0410-b5e6-96231b3b80d8
39 lines
2.0 KiB
Plaintext
39 lines
2.0 KiB
Plaintext
// No crash, might not be totally invalid
|
|
RUN: llvm-objdump -private-headers %p/Inputs/macho-invalid-zero-ncmds
|
|
|
|
RUN: not llvm-objdump -private-headers %p/Inputs/macho64-invalid-incomplete-load-command 2>&1 \
|
|
RUN: | FileCheck -check-prefix INCOMPLETE-LOADC %s
|
|
|
|
RUN: not llvm-objdump -private-headers %p/Inputs/macho-invalid-too-small-load-command 2>&1 \
|
|
RUN: | FileCheck -check-prefix SMALL-LOADC-SIZE %s
|
|
RUN: not llvm-objdump -private-headers %p/Inputs/macho64-invalid-too-small-load-command 2>&1 \
|
|
RUN: | FileCheck -check-prefix SMALL-LOADC-SIZE %s
|
|
|
|
RUN: not llvm-objdump -private-headers %p/Inputs/macho-invalid-too-small-segment-load-command 2>&1 \
|
|
RUN: | FileCheck -check-prefix SMALL-SEGLOADC-SIZE %s
|
|
RUN: not llvm-objdump -private-headers %p/Inputs/macho64-invalid-too-small-segment-load-command 2>&1 \
|
|
RUN: | FileCheck -check-prefix SMALL-SEGLOADC-SIZE %s
|
|
|
|
RUN: not llvm-objdump -private-headers %p/Inputs/macho-invalid-no-size-for-sections 2>&1 \
|
|
RUN: | FileCheck -check-prefix TOO-MANY-SECTS %s
|
|
RUN: not llvm-objdump -private-headers %p/Inputs/macho64-invalid-no-size-for-sections 2>&1 \
|
|
RUN: | FileCheck -check-prefix TOO-MANY-SECTS %s
|
|
|
|
RUN: not llvm-objdump -t %p/Inputs/macho-invalid-bad-symbol-index 2>&1 \
|
|
RUN: | FileCheck -check-prefix BAD-SYMBOL %s
|
|
|
|
RUN: not llvm-objdump -t %p/Inputs/macho-invalid-symbol-name-past-eof 2>&1 \
|
|
RUN: | FileCheck -check-prefix NAME-PAST-EOF %s
|
|
|
|
RUN: not llvm-nm %p/Inputs/macho-invalid-section-index-getSectionRawName 2>&1 \
|
|
RUN: | FileCheck -check-prefix INVALID-SECTION-IDX-SYMBOL-SEC %s
|
|
|
|
SMALL-LOADC-SIZE: Load command with size < 8 bytes
|
|
SMALL-SEGLOADC-SIZE: Segment load command size is too small
|
|
INCOMPLETE-LOADC: Malformed MachO file
|
|
TOO-MANY-SECTS: Number of sections too large for size of load command
|
|
BAD-SYMBOL: Requested symbol index is out of range
|
|
NAME-PAST-EOF: Symbol name entry points before beginning or past end of file
|
|
|
|
INVALID-SECTION-IDX-SYMBOL-SEC: getSymbolSection: Invalid section index
|