1 ## Check that local private externs -- symbols without N_EXT but with N_PEXT set
2 ## -- are translation-unit-scoped. These symbols may be generated by `ld -r`,
3 ## which emits an object file. Since LLD does not yet support `-r`, we use
4 ## yaml2obj to construct the input.
6 # RUN: rm -rf %t; mkdir %t
7 # RUN: yaml2obj %s > %t/foo.o
8 ## No duplicate symbol conflict since _foo is not extern
9 # RUN: %lld -dylib %t/foo.o %t/foo.o -o %t/foo
10 # RUN: llvm-nm -m %t/foo | FileCheck %s
12 ## Note that the symbols in the output are no longer marked as "was a private
14 # CHECK: (absolute) non-external _bar
15 # CHECK: (absolute) non-external _bar
16 # CHECK: (__DATA,__data) non-external _foo
17 # CHECK: (__DATA,__data) non-external _foo
64 n_type: 0x1E ## N_PEXT | N_SECT
69 n_type: 0x12 ## N_PEXT | N_ABS