| # RUN: llvm-mc -triple i386-pc-linux-gnu -filetype=obj -o %t %s |
| # RUN: llvm-readobj -s -sd < %t | FileCheck %s |
| .section test1 |
| .byte 1 |
| .section test2 |
| .byte 2 |
| .previous |
| .byte 1 |
| .section test2 |
| .byte 2 |
| .previous |
| .byte 1 |
| .section test1 |
| .byte 1 |
| .previous |
| .byte 1 |
| .section test2 |
| .byte 2 |
| .pushsection test3 |
| .byte 3 |
| .pushsection test4 |
| .byte 4 |
| .pushsection test5 |
| .byte 5 |
| .popsection |
| .byte 4 |
| .popsection |
| .byte 3 |
| .popsection |
| .byte 2 |
| .pushsection test3 |
| .byte 3 |
| .pushsection test4 |
| .byte 4 |
| .previous |
| .byte 3 |
| .popsection |
| .byte 3 |
| .previous |
| .byte 2 |
| .section test1 |
| .byte 1 |
| .popsection |
| .byte 2 |
| .previous |
| .byte 1 |
| .previous |
| |
| # CHECK: Sections [ |
| # CHECK: Section { |
| # CHECK: Name: test1 |
| # CHECK-NEXT: Type: SHT_PROGBITS |
| # CHECK-NEXT: Flags [ (0x0) |
| # CHECK-NEXT: ] |
| # CHECK-NEXT: Address: 0x0 |
| # CHECK-NEXT: Offset: 0x34 |
| # CHECK-NEXT: Size: 7 |
| # CHECK-NEXT: Link: 0 |
| # CHECK-NEXT: Info: 0 |
| # CHECK-NEXT: AddressAlignment: 1 |
| # CHECK-NEXT: EntrySize: 0 |
| # CHECK-NEXT: SectionData ( |
| # CHECK-NEXT: 0000: 01010101 010101 |
| # CHECK-NEXT: ) |
| # CHECK-NEXT: } |
| # CHECK: Section { |
| # CHECK: Name: test2 |
| # CHECK-NEXT: Type: SHT_PROGBITS |
| # CHECK-NEXT: Flags [ (0x0) |
| # CHECK-NEXT: ] |
| # CHECK-NEXT: Address: 0x0 |
| # CHECK-NEXT: Offset: 0x3B |
| # CHECK-NEXT: Size: 6 |
| # CHECK-NEXT: Link: 0 |
| # CHECK-NEXT: Info: 0 |
| # CHECK-NEXT: AddressAlignment: 1 |
| # CHECK-NEXT: EntrySize: 0 |
| # CHECK-NEXT: SectionData ( |
| # CHECK-NEXT: 0000: 02020202 0202 |
| # CHECK-NEXT: ) |
| # CHECK-NEXT: } |
| # CHECK: Section { |
| # CHECK: Name: test3 |
| # CHECK-NEXT: Type: SHT_PROGBITS |
| # CHECK-NEXT: Flags [ (0x0) |
| # CHECK-NEXT: ] |
| # CHECK-NEXT: Address: 0x0 |
| # CHECK-NEXT: Offset: 0x41 |
| # CHECK-NEXT: Size: 5 |
| # CHECK-NEXT: Link: 0 |
| # CHECK-NEXT: Info: 0 |
| # CHECK-NEXT: AddressAlignment: 1 |
| # CHECK-NEXT: EntrySize: 0 |
| # CHECK-NEXT: SectionData ( |
| # CHECK-NEXT: 0000: 03030303 03 |
| # CHECK-NEXT: ) |
| # CHECK-NEXT: } |
| # CHECK: Section { |
| # CHECK: Name: test4 |
| # CHECK-NEXT: Type: SHT_PROGBITS |
| # CHECK-NEXT: Flags [ (0x0) |
| # CHECK-NEXT: ] |
| # CHECK-NEXT: Address: 0x0 |
| # CHECK-NEXT: Offset: 0x46 |
| # CHECK-NEXT: Size: 3 |
| # CHECK-NEXT: Link: 0 |
| # CHECK-NEXT: Info: 0 |
| # CHECK-NEXT: AddressAlignment: 1 |
| # CHECK-NEXT: EntrySize: 0 |
| # CHECK-NEXT: SectionData ( |
| # CHECK-NEXT: 0000: 040404 |
| # CHECK-NEXT: ) |
| # CHECK-NEXT: } |
| # CHECK: Section { |
| # CHECK: Name: test5 |
| # CHECK-NEXT: Type: SHT_PROGBITS |
| # CHECK-NEXT: Flags [ (0x0) |
| # CHECK-NEXT: ] |
| # CHECK-NEXT: Address: 0x0 |
| # CHECK-NEXT: Offset: 0x49 |
| # CHECK-NEXT: Size: 1 |
| # CHECK-NEXT: Link: 0 |
| # CHECK-NEXT: Info: 0 |
| # CHECK-NEXT: AddressAlignment: 1 |
| # CHECK-NEXT: EntrySize: 0 |
| # CHECK-NEXT: SectionData ( |
| # CHECK-NEXT: 0000: 05 |
| # CHECK-NEXT: ) |
| # CHECK-NEXT: } |