1RUN: dsymutil -oso-prepend-path %p/../Inputs %p/../Inputs/private/tmp/common/common.x86_64 -f -o - | llvm-dwarfdump -debug-info - | FileCheck %s 2RUN: dsymutil -oso-prepend-path %p/../Inputs %p/../Inputs/private/tmp/common/common.x86_64 -dump-debug-map | FileCheck %s --check-prefix DEBUGMAP 3 4RUN: dsymutil --linker parallel -oso-prepend-path %p/../Inputs %p/../Inputs/private/tmp/common/common.x86_64 -f -o - | llvm-dwarfdump -debug-info - | FileCheck %s 5RUN: dsymutil --linker parallel -oso-prepend-path %p/../Inputs %p/../Inputs/private/tmp/common/common.x86_64 -dump-debug-map | FileCheck %s --check-prefix DEBUGMAP 6 7The test was compiled from two source files: 8$ cd /private/tmp/common 9$ cat common1.c 10int i[1000]; 11int main() { 12 return i[1]; 13} 14$ cat common2.c 15extern int i[1000]; 16int bar() { 17 return i[0]; 18} 19$ clang -fcommon -g -c common1.c -o common1.o 20$ clang -fcommon -g -c common2.c -o common2.o 21$ clang -fcommon -g common1.o common2.o -o common.x86_64 22 23CHECK: DW_TAG_compile_unit 24CHECK: DW_TAG_variable 25CHECK-NOT: {{NULL|DW_TAG}} 26CHECK: DW_AT_name{{.*}}"i" 27CHECK-NOT: {{NULL|DW_TAG}} 28CHECK: DW_AT_location{{.*}}DW_OP_addr 0x100001000) 29 30CHECK: DW_TAG_compile_unit 31CHECK: DW_TAG_variable 32CHECK-NOT: {{NULL|DW_TAG}} 33CHECK: DW_AT_name{{.*}}"i" 34CHECK-NOT: {{NULL|DW_TAG}} 35CHECK: DW_AT_location{{.*}}DW_OP_addr 0x100001000) 36 37DEBUGMAP: filename:{{.*}}common1.o 38DEBUGMAP: symbols: 39DEBUGMAP: sym: _i, binAddr: 0x100001000, size: 0x0 40DEBUGMAP: filename:{{.*}}common2.o 41DEBUGMAP: symbols: 42DEBUGMAP: sym: _i, binAddr: 0x100001000, size: 0x0 43