xref: /llvm-project/llvm/test/tools/llvm-objdump/XCOFF/disassemble-invalid-traceback-table.test (revision d6d7f7b1d2639a06002779aed5dccf53fee20c6e)
1## Test that parsing of an invalid XCOFF traceback table with a too
2## big function name length causes an out of range error.
3
4# RUN: yaml2obj %s -o %t.o
5# RUN: llvm-objdump -d --traceback-table --symbol-description %t.o 2>&1 | \
6# RUN:   FileCheck -DFILE=%t.o --implicit-check-not="warning:" --check-prefixes=WARN %s
7
8--- !XCOFF
9FileHeader:
10  MagicNumber:       0x1DF
11Sections:
12  - Name:            .text
13    Flags:           [ STYP_TEXT ]
14    SectionData:     "4e8000200000000000002240800102075a000000000000880073666f6f0000000000000000000000"
15Symbols:
16  - Name:            .AddNum
17    Value:           0
18    Section:         .text
19    Type:            0x20
20    StorageClass:    C_EXT
21    AuxEntries:
22      - Type:                   AUX_CSECT
23        SectionOrLength: 0x28
24        SymbolAlignmentAndType: 0x21
25        StorageMappingClass:    XMC_PR
26
27# WARN:      warning: '[[FILE]]': failure parsing traceback table with address: 0x4
28# WARN-NEXT: >>> unexpected end of data at offset 0x24 while reading [0x12, 0x85)
29# WARN-NEXT: >>> Raw traceback table data is:
30# WARN-NEXT:       8: 00 00 22 40
31# WARN-NEXT:       c: 80 01 02 07
32# WARN-NEXT:      10: 5a 00 00 00
33# WARN-NEXT:      14: 00 00 00 88
34# WARN-NEXT:      18: 00 73 66 6f
35# WARN-NEXT:      1c: 6f 00 00 00
36# WARN-NEXT:         ...
37