## Check that local private externs -- symbols without N_EXT but with N_PEXT set
## -- are translation-unit-scoped. These symbols may be generated by `ld -r`,
## which emits an object file. Since LLD does not yet support `-r`, we use
## yaml2obj to construct the input.

# RUN: rm -rf %t; mkdir %t
# RUN: yaml2obj %s > %t/foo.o
## No duplicate symbol conflict since _foo is not extern
# RUN: %lld -dylib %t/foo.o %t/foo.o -o %t/foo
# RUN: llvm-nm -m %t/foo | FileCheck %s

## Note that the symbols in the output are no longer marked as "was a private
## external".
# CHECK: (absolute) non-external _bar
# CHECK: (absolute) non-external _bar
# CHECK: (__DATA,__data) non-external _foo
# CHECK: (__DATA,__data) non-external _foo

--- !mach-o
FileHeader:
  magic:           0xFEEDFACF
  cputype:         0x1000007
  cpusubtype:      0x3
  filetype:        0x1
  ncmds:           2
  sizeofcmds:      208
  flags:           0x0
  reserved:        0x0
LoadCommands:
  - cmd:             LC_SEGMENT_64
    cmdsize:         152
    segname:         ''
    vmaddr:          0
    vmsize:          0
    fileoff:         272
    filesize:        0
    maxprot:         7
    initprot:        7
    nsects:          1
    flags:           0
    Sections:
      - sectname:        __data
        segname:         __DATA
        addr:            0x0
        size:            0
        offset:          0x110
        align:           0
        reloff:          0x0
        nreloc:          0
        flags:           0x0
        reserved1:       0x0
        reserved2:       0x0
        reserved3:       0x0
        content:         ''
  - cmd:             LC_SYMTAB
    cmdsize:         24
    symoff:          272
    nsyms:           2
    stroff:          304
    strsize:         16
LinkEditData:
  NameList:
    - n_strx:          2 ## _foo
      n_type:          0x1E ## N_PEXT | N_SECT
      n_sect:          1
      n_desc:          32
      n_value:         0
    - n_strx:          7 ## _bar
      n_type:          0x12 ## N_PEXT | N_ABS
      n_sect:          0
      n_desc:          0
      n_value:         291
  StringTable:
    - ' '
    - _foo
    - _bar
    - ''
    - ''
    - ''
    - ''
...
