blob: e80d5f6a711b1a2f14c6b4963f3c4de8da397e94 [file] [log] [blame]
## Test various details of llvm-objdump -h/--section-headers for XCOFF.
## Check the -h/--section-headers option prints section headers correctly.
# RUN: yaml2obj %s --docnum=1 -o %t-basic.o
# RUN: llvm-objdump --section-headers %t-basic.o | FileCheck %s
# CHECK: Sections:
# CHECK-NEXT: Idx Name Size VMA Type
# CHECK-NEXT: 0 .text 00000008 00000008 TEXT
# CHECK-NEXT: 1 .data 00000004 00000000 DATA
# CHECK-NEXT: 2 .bss 00000000 00000010 BSS
# CHECK-NEXT: 3 .tdata 00000004 00000000 DATA
# CHECK-NEXT: 4 .tbss 00000000 00000000 BSS
# CHECK-NEXT: 5 .dwline 00000046 00000000 DEBUG
# CHECK-NEXT: 6 .debug 00000046 00000000 DEBUG
--- !XCOFF
FileHeader:
MagicNumber: 0x1DF
Sections:
- Name: .text
Address: 0x8
Size: 0x8
Flags: [ STYP_TEXT ]
- Name: .data
Size: 0x4
Flags: [ STYP_DATA ]
- Name: .bss
Size: 0x0
Address: 0x10
Flags: [ STYP_BSS ]
- Name: .tdata
Size: 0x4
Flags: [ STYP_TDATA ]
- Name: .tbss
Size: 0x0
Flags: [ STYP_TBSS ]
- Name: .dwline
Size: 0x46
Flags: [ STYP_DWARF ]
- Name: .debug
Size: 0x46
Flags: [ STYP_DEBUG ]
## Check the -h/--section-headers option prints long section names.
# RUN: yaml2obj %s --docnum=2 -o %t-longname.o
# RUN: llvm-objdump --section-headers %t-longname.o \
# RUN: | FileCheck %s --check-prefix=LONG
# LONG: Sections:
# LONG-NEXT: Idx Name Size VMA Type
# LONG-NEXT: 0 .dwarnge 00000004 00000000
# LONG-NEXT: 1 .dwpbnms 00000004 00000000
# LONG-NEXT: 2 .dwpbtyp 00000004 00000000
--- !XCOFF
FileHeader:
MagicNumber: 0x1DF
Sections:
- Name: .dwarnge
Size: 0x4
Flags: [ STYP_PAD ]
- Name: .dwpbnms
Size: 0x4
Flags: [ STYP_PAD ]
- Name: .dwpbtyp
Size: 0x4
Flags: [ STYP_PAD ]
## Truncate the file to end before the section header table ends.
# RUN: yaml2obj %s --docnum=3 -o %t-truncate.o
# RUN: %python -c "with open('%/t-truncate.o', 'r+b') as input: input.truncate(20)"
# RUN: not llvm-objdump --section-headers %t-truncate.o 2>&1 \
# RUN: | FileCheck --check-prefix=ERROR %s
# ERROR: The end of the file was unexpectedly encountered: section headers with offset 0x14 and size 0x28 go past the end of the file
--- !XCOFF
FileHeader:
MagicNumber: 0x1DF
Sections:
- Name: .text
Size: 0x8
Flags: [ STYP_TEXT ]