| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 
 | # RUN: yaml2obj %s > %t
# RUN: cp %t %t1
# RUN: llvm-objcopy --strip-unneeded %t %t2
# Verify that llvm-objcopy has not modified the input.
# RUN: cmp %t %t1
# RUN: llvm-readobj -symbols %t2 | FileCheck %s
# Verify that llvm-strip modifies the symbol table the same way.
# RUN: llvm-strip --strip-unneeded %t
# RUN: cmp %t %t2
!ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_X86_64
Sections:
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    Address:         0x1000
    AddressAlign:    0x0000000000000010
    Size:            64
  - Name:            .group
    Type:            SHT_GROUP
    Link:            .symtab
    AddressAlign:    0x0000000000000004
    Info:            barfoo
    Members:
      - SectionOrType:   GRP_COMDAT
      - SectionOrType:   .text
  - Name:            .rel.text
    Type:            SHT_REL
    Link:            .symtab
    Info:            .text
    Relocations:
      - Offset: 0x1000
        Symbol: foo
        Type:   R_X86_64_PC32
Symbols:
  Local:
    - Name:     foo
      Type:     STT_FUNC
      Section:  .text
      Value:    0x1000
      Size:     8
    - Name:     bar
      Type:     STT_FUNC
      Size:     8
      Section:  .text
      Value:    0x1008
    - Name:     barfoo
      Type:     STT_FUNC
      Size:     8
      Section:  .text
      Value:    0x1010
    - Name:     fileSymbol
      Type:     STT_FILE
    - Name:     sectionSymbol
      Type:     STT_SECTION
  Weak:
    - Name:     baz
      Type:     STT_FUNC
      Size:     8
      Section:  .text
      Value:    0x1018
    - Name:     foobaz
      Type:     STT_FUNC
  Global:
    - Name:     foobar
      Type:     STT_FUNC
    - Name:     barbaz
      Type:     STT_FUNC
      Size:     8
      Section:  .text
      Value:    0x1020
#CHECK: Symbols [
#CHECK-NEXT:  Symbol {
#CHECK-NEXT:    Name:
#CHECK-NEXT:    Value: 0x0
#CHECK-NEXT:    Size: 0
#CHECK-NEXT:    Binding: Local
#CHECK-NEXT:    Type: None
#CHECK-NEXT:    Other: 0
#CHECK-NEXT:    Section: Undefined
#CHECK-NEXT:  }
#CHECK-NEXT:  Symbol {
#CHECK-NEXT:    Name: foo
#CHECK-NEXT:    Value: 0x1000
#CHECK-NEXT:    Size: 8
#CHECK-NEXT:    Binding: Local
#CHECK-NEXT:    Type: Function
#CHECK-NEXT:    Other: 0
#CHECK-NEXT:    Section: .text
#CHECK-NEXT:  }
#CHECK-NEXT:  Symbol {
#CHECK-NEXT:    Name: barfoo
#CHECK-NEXT:    Value: 0x1010
#CHECK-NEXT:    Size: 8
#CHECK-NEXT:    Binding: Local
#CHECK-NEXT:    Type: Function
#CHECK-NEXT:    Other: 0
#CHECK-NEXT:    Section: .text
#CHECK-NEXT:  }
#CHECK-NEXT:  Symbol {
#CHECK-NEXT:    Name: fileSymbol
#CHECK-NEXT:    Value: 0x0
#CHECK-NEXT:    Size: 0
#CHECK-NEXT:    Binding: Local
#CHECK-NEXT:    Type: File
#CHECK-NEXT:    Other: 0
#CHECK-NEXT:    Section: Undefined
#CHECK-NEXT:  }
#CHECK-NEXT:  Symbol {
#CHECK-NEXT:    Name: sectionSymbol
#CHECK-NEXT:    Value: 0x0
#CHECK-NEXT:    Size: 0
#CHECK-NEXT:    Binding: Local
#CHECK-NEXT:    Type: Section
#CHECK-NEXT:    Other: 0
#CHECK-NEXT:    Section: Undefined
#CHECK-NEXT:  }
#CHECK-NEXT:  Symbol {
#CHECK-NEXT:    Name: barbaz
#CHECK-NEXT:    Value: 0x1020
#CHECK-NEXT:    Size: 8
#CHECK-NEXT:    Binding: Global
#CHECK-NEXT:    Type: Function
#CHECK-NEXT:    Other: 0
#CHECK-NEXT:    Section: .text
#CHECK-NEXT:  }
#CHECK-NEXT:  Symbol {
#CHECK-NEXT:    Name: baz
#CHECK-NEXT:    Value: 0x1018
#CHECK-NEXT:    Size: 8
#CHECK-NEXT:    Binding: Weak
#CHECK-NEXT:    Type: Function
#CHECK-NEXT:    Other: 0
#CHECK-NEXT:    Section: .text
#CHECK-NEXT:  }
#CHECK-NEXT:]
 |