| Alexander Shaposhnikov | 6ecc6e6 | 2018-03-21 19:53:44 +0000 | [diff] [blame] | 1 | # RUN: yaml2obj %s > %t |
| 2 | # RUN: llvm-objcopy -remove-section=.text.bar %t %t2 |
| 3 | # RUN: llvm-readobj -elf-section-groups %t2 | FileCheck %s |
| 4 | |
| 5 | # In this test the section .text.bar is getting removed, as a result, |
| 6 | # the indices of the sections which go after .text.bar will change, |
| 7 | # thus the fields Link, Info and the content of .group should be updated. |
| 8 | |
| 9 | # CHECK: Name: .group |
| 10 | # CHECK-NEXT: Index: 1 |
| 11 | # CHECK-NEXT: Link: 3 |
| 12 | # CHECK-NEXT: Info: 2 |
| 13 | # CHECK-NEXT: Type: COMDAT (0x1) |
| 14 | # CHECK-NEXT: Signature: foo |
| 15 | # CHECK: .text.foo (2) |
| 16 | |
| 17 | --- !ELF |
| 18 | FileHeader: |
| 19 | Class: ELFCLASS64 |
| 20 | Data: ELFDATA2MSB |
| 21 | Type: ET_REL |
| 22 | Machine: EM_X86_64 |
| 23 | Sections: |
| 24 | - Name: .group |
| 25 | Type: SHT_GROUP |
| 26 | Link: .symtab |
| 27 | AddressAlign: 0x0000000000000004 |
| 28 | Info: foo |
| 29 | Members: |
| 30 | - SectionOrType: GRP_COMDAT |
| 31 | - SectionOrType: .text.foo |
| 32 | - Name: .text.bar |
| 33 | Type: SHT_PROGBITS |
| 34 | Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |
| 35 | AddressAlign: 0x0000000000000010 |
| 36 | - Name: .text.foo |
| 37 | Type: SHT_PROGBITS |
| 38 | Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] |
| 39 | AddressAlign: 0x0000000000000010 |
| 40 | Symbols: |
| 41 | Local: |
| 42 | - Name: .text.bar |
| 43 | Type: STT_SECTION |
| 44 | Section: .text.bar |
| 45 | - Name: .text.foo |
| 46 | Type: STT_SECTION |
| 47 | Section: .text.foo |
| 48 | Weak: |
| 49 | - Name: bar |
| 50 | Type: STT_FUNC |
| 51 | Section: .text.bar |
| 52 | Size: 0x0000000000000000 |
| 53 | - Name: foo |
| 54 | Type: STT_FUNC |
| 55 | Section: .text.foo |
| 56 | Size: 0x0000000000000000 |