| # RUN: yaml2obj %s -o %t |
| # RUN: llvm-readobj --sframe %t 2>&1 | \ |
| # RUN: FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |
| Size: 0x1000 |
| - Name: .sframe |
| Type: SHT_GNU_SFRAME |
| Flags: [ SHF_ALLOC ] |
| ContentArray: [ |
| 0xe2, 0xde, 0x02, 0x04, # Preamble (magic, version, flags) |
| # Header: |
| 0x03, 0x42, 0x40, 0x00, # ABI, Fixed FP offset, Fixed RA Offset, AUX header length |
| 0x03, 0x00, 0x00, 0x00, # Number of FDEs |
| 0x01, 0x00, 0x00, 0x00, # Number of FREs |
| 0x00, 0x10, 0x00, 0x00, # FRE length |
| 0x00, 0x00, 0x00, 0x00, # FDE offset |
| 0x00, 0x00, 0x00, 0x00, # FRE offset |
| |
| # FDE[0]: |
| 0x00, 0x00, 0xde, 0x00, # Start Address |
| 0xbe, 0x01, 0x00, 0x00, # Size |
| 0x00, 0x00, 0x00, 0x00, # Start FRE Offset |
| 0x01, 0x00, 0x00, 0x00, # Number of FREs |
| 0x00, 0xde, 0xad, 0x00, # Info, RepSize, Padding2 |
| |
| # FDE[1]: |
| 0x00, 0x00, 0xad, 0x00, # Start Address |
| 0xbe, 0x01, 0x00, 0x00, # Size |
| 0x00, 0x00, 0x00, 0x00, # Start FRE Offset |
| 0x00, 0x00, 0x00, 0x00, # Number of FREs |
| 0x00, 0xde, 0xad, 0x00, # Info, RepSize, Padding2 |
| |
| # FDE[2]: |
| 0x00, 0x00, 0xbe, 0x00, # Start Address |
| 0xbe, 0x01, 0x00, 0x00, # Size |
| 0x00, 0x00, 0x00, 0x00, # Start FRE Offset |
| 0x00, 0x00, 0x00, 0x00, # Number of FREs |
| 0x00, 0xde, 0xad, 0x00, # Info, RepSize, Padding2 |
| |
| # FRE[0]: |
| 0x05, 0x02, 0x10, # Start Address, Info, Offset[0] |
| |
| ] |
| - Name: .rela.sframe |
| Type: SHT_RELA |
| Flags: [ SHF_INFO_LINK ] |
| Link: .symtab |
| AddressAlign: 0x8 |
| Info: .sframe |
| Relocations: |
| - Offset: 0x1c |
| Symbol: .text |
| Type: R_X86_64_PC32 |
| Addend: 0x42 |
| - Offset: 0x30 |
| Symbol: .text |
| Type: R_X86_64_PC32 |
| - Offset: 0x30 |
| Symbol: .text |
| Type: R_X86_64_PC32 |
| - Offset: 0x44 |
| Symbol: 4747 |
| Type: R_X86_64_PC32 |
| Symbols: |
| - Name: .text |
| Type: STT_SECTION |
| Section: .text |
| # CHECK-LABEL:SFrame section '.sframe' { |
| # CHECK: ABI: AMD64EndianLittle (0x3) |
| # CHECK: FuncDescEntry [0] { |
| # CHECK-NEXT: PC { |
| # CHECK-NEXT: Relocation: R_X86_64_PC32 |
| # CHECK-NEXT: Symbol Name: .text |
| # CHECK-NEXT: Start Address: 0xDE0042 |
| # CHECK-NEXT: } |
| # CHECK: FREs [ |
| # CHECK-NEXT: Frame Row Entry { |
| # CHECK-NEXT: Start Address: 0xDE0047 |
| # CHECK: FuncDescEntry [1] { |
| # CHECK-NEXT:{{.*}}: warning: '[[FILE]]': more than one relocation at offset 0x30 |
| # CHECK-NEXT: PC: 0xAD0030 |
| # CHECK: FuncDescEntry [2] { |
| # CHECK-NEXT:{{.*}}: warning: '[[FILE]]': unable to read an entry with index 4747 from SHT_SYMTAB section with index {{[0-9]*}}: can't read an entry at 0x{{[0-9a-f]*}}: it goes past the end of the section (0x30) |