| RUN: dsymutil -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic.macho.x86_64 | FileCheck %s | |
| RUN: dsymutil -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic-lto.macho.x86_64 | FileCheck %s --check-prefix=CHECK-LTO | |
| RUN: dsymutil -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic-archive.macho.x86_64 | FileCheck %s --check-prefix=CHECK-ARCHIVE | |
| RUN: dsymutil -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic.macho.x86_64 %p/Inputs/basic-lto.macho.x86_64 %p/Inputs/basic-archive.macho.x86_64 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-LTO --check-prefix=CHECK-ARCHIVE | |
| This test check the basic Dwarf linking process through the debug dumps. | |
| ================================= Simple link ================================ | |
| CHECK: DEBUG MAP OBJECT: {{.*}}basic1.macho.x86_64.o | |
| CHECK: Input compilation unit: | |
| CHECK-NEXT: TAG_compile_unit | |
| CHECK-NOT: TAG | |
| CHECK: AT_name {{.*}}basic1.c | |
| CHECK: DEBUG MAP OBJECT: {{.*}}basic2.macho.x86_64.o | |
| CHECK: Input compilation unit: | |
| CHECK-NEXT: TAG_compile_unit | |
| CHECK-NOT: TAG | |
| CHECK: AT_name {{.*}}basic2.c | |
| CHECK: DEBUG MAP OBJECT: {{.*}}basic3.macho.x86_64.o | |
| CHECK: Input compilation unit: | |
| CHECK-NEXT: TAG_compile_unit | |
| CHECK-NOT: TAG | |
| CHECK: AT_name {{.*}}basic3.c | |
| CHECK-NOT: Found valid debug map entry | |
| CHECK: Found valid debug map entry: _main 0000000000000000 => 0000000100000ea0 | |
| CHECK-NEXT: DW_TAG_subprogram | |
| CHECK-NEXT: DW_AT_name{{.*}}"main" | |
| CHECK: Found valid debug map entry: _private_int 0000000000000560 => 0000000100001008 | |
| CHECK-NEXT: DW_TAG_variable | |
| CHECK-NEXT: DW_AT_name {{.*}}"private_int" | |
| CHECK-NOT: Found valid debug map entry | |
| CHECK: Found valid debug map entry: _baz 0000000000000310 => 0000000100001000 | |
| CHECK-NEXT: DW_TAG_variable | |
| CHECK-NEXT: DW_AT_name {{.*}}"baz" | |
| CHECK-NOT: Found valid debug map entry | |
| CHECK: Found valid debug map entry: _foo 0000000000000020 => 0000000100000ed0 | |
| CHECK-NEXT: DW_TAG_subprogram | |
| CHECK-NEXT: DW_AT_name {{.*}}"foo" | |
| CHECK-NOT: Found valid debug map entry | |
| CHECK: Found valid debug map entry: _inc 0000000000000070 => 0000000100000f20 | |
| CHECK-NEXT: DW_TAG_subprogram | |
| CHECK-NEXT: DW_AT_name {{.*}}"inc" | |
| CHECK-NOT: Found valid debug map entry | |
| CHECK: Found valid debug map entry: _val ffffffffffffffff => 0000000100001004 | |
| CHECK-NEXT: DW_TAG_variable | |
| CHECK-NEXT: DW_AT_name {{.*}}"val" | |
| CHECK-NOT: Found valid debug map entry | |
| CHECK: Found valid debug map entry: _bar 0000000000000020 => 0000000100000f40 | |
| CHECK-NEXT: DW_TAG_subprogram | |
| CHECK-NEXT: DW_AT_name {{.*}}"bar" | |
| CHECK-NOT: Found valid debug map entry | |
| CHECK: Found valid debug map entry: _inc 0000000000000070 => 0000000100000f90 | |
| CHECK-NEXT: DW_TAG_subprogram | |
| CHECK-NEXT: DW_AT_name {{.*}}"inc") | |
| ================================= LTO link ================================ | |
| CHECK-LTO: DEBUG MAP OBJECT: {{.*}}basic-lto.macho.x86_64.o | |
| CHECK-LTO: Input compilation unit: | |
| CHECK-LTO-NEXT: TAG_compile_unit | |
| CHECK-LTO-NOT: TAG | |
| CHECK-LTO: AT_name {{.*}}basic1.c | |
| CHECK-LTO: Input compilation unit: | |
| CHECK-LTO-NEXT: TAG_compile_unit | |
| CHECK-LTO-NOT: TAG | |
| CHECK-LTO: AT_name {{.*}}basic2.c | |
| CHECK-LTO: Input compilation unit: | |
| CHECK-LTO-NEXT: TAG_compile_unit | |
| CHECK-LTO-NOT: TAG | |
| CHECK-LTO: AT_name {{.*}}basic3.c | |
| CHECK-LTO-NOT: Found valid debug map entry | |
| CHECK-LTO: Found valid debug map entry: _main 0000000000000000 => 0000000100000f40 | |
| CHECK-LTO-NEXT: DW_TAG_subprogram | |
| CHECK-LTO-NEXT: DW_AT_name {{.*}}"main" | |
| CHECK-LTO-NOT: Found valid debug map entry | |
| CHECK-LTO: Found valid debug map entry: _private_int 00000000000008e8 => 0000000100001008 | |
| CHECK-LTO-NEXT: DW_TAG_variable | |
| CHECK-LTO-NEXT: DW_AT_name {{.*}}"private_int" | |
| CHECK-LTO-NOT: Found valid debug map entry | |
| CHECK-LTO: Found valid debug map entry: _baz 0000000000000658 => 0000000100001000 | |
| CHECK-LTO-NEXT: DW_TAG_variable | |
| CHECK-LTO-NEXT: DW_AT_name {{.*}} "baz" | |
| CHECK-LTO-NOT: Found valid debug map entry | |
| CHECK-LTO: Found valid debug map entry: _foo 0000000000000010 => 0000000100000f50 | |
| CHECK-LTO-NEXT: DW_TAG_subprogram | |
| CHECK-LTO-NEXT: DW_AT_name {{.*}}"foo" | |
| CHECK-LTO-NOT: Found valid debug map entry | |
| CHECK-LTO: Found valid debug map entry: _val 00000000000008ec => 0000000100001004 | |
| CHECK-LTO-NEXT: DW_TAG_variable | |
| CHECK-LTO-NEXT: DW_AT_name {{.*}}"val" | |
| CHECK-LTO-NOT: Found valid debug map entry | |
| CHECK-LTO: Found valid debug map entry: _bar 0000000000000050 => 0000000100000f90 | |
| CHECK-LTO-NEXT: DW_TAG_subprogram | |
| CHECK-LTO-NEXT: DW_AT_name {{.*}}"bar" | |
| ================================= Archive link ================================ | |
| CHECK-ARCHIVE: DEBUG MAP OBJECT: {{.*}}basic1.macho.x86_64.o | |
| CHECK-ARCHIVE: Input compilation unit: | |
| CHECK-ARCHIVE-NEXT: TAG_compile_unit | |
| CHECK-ARCHIVE-NOT: TAG | |
| CHECK-ARCHIVE: AT_name {{.*}}basic1.c | |
| CHECK-ARCHIVE: DEBUG MAP OBJECT: {{.*}}libbasic.a(basic2.macho.x86_64.o) | |
| CHECK-ARCHIVE: Input compilation unit: | |
| CHECK-ARCHIVE-NEXT: TAG_compile_unit | |
| CHECK-ARCHIVE-NOT: TAG | |
| CHECK-ARCHIVE: AT_name {{.*}}basic2.c | |
| CHECK-ARCHIVE: DEBUG MAP OBJECT: {{.*}}libbasic.a(basic3.macho.x86_64.o) | |
| CHECK-ARCHIVE: Input compilation unit: | |
| CHECK-ARCHIVE-NEXT: TAG_compile_unit | |
| CHECK-ARCHIVE-NOT: TAG | |
| CHECK-ARCHIVE: AT_name {{.*}}basic3.c | |
| CHECK-ARCHIVE-NOT: Found valid debug map entry | |
| CHECK-ARCHIVE: Found valid debug map entry: _main 0000000000000000 => 0000000100000ea0 | |
| CHECK-ARCHIVE-NEXT: DW_TAG_subprogram | |
| CHECK-ARCHIVE-NEXT: DW_AT_name{{.*}}"main" | |
| CHECK-ARCHIVE-NOT: Found valid debug map entry | |
| CHECK-ARCHIVE: Found valid debug map entry: _private_int 0000000000000560 => 0000000100001004 | |
| CHECK-ARCHIVE-NEXT: DW_TAG_variable | |
| CHECK-ARCHIVE-NEXT: DW_AT_name {{.*}}"private_int" | |
| CHECK-ARCHIVE-NOT: Found valid debug map entry | |
| CHECK-ARCHIVE: Found valid debug map entry: _baz 0000000000000310 => 0000000100001000 | |
| CHECK-ARCHIVE-NEXT: DW_TAG_variable | |
| CHECK-ARCHIVE-NEXT: DW_AT_name {{.*}}"baz" | |
| CHECK-ARCHIVE-NOT: Found valid debug map entry | |
| CHECK-ARCHIVE: Found valid debug map entry: _foo 0000000000000020 => 0000000100000ed0 | |
| CHECK-ARCHIVE-NEXT: DW_TAG_subprogram | |
| CHECK-ARCHIVE-NEXT: DW_AT_name {{.*}}"foo" | |
| CHECK-ARCHIVE-NOT: Found valid debug map entry | |
| CHECK-ARCHIVE: Found valid debug map entry: _inc 0000000000000070 => 0000000100000f20 | |
| CHECK-ARCHIVE-NEXT: DW_TAG_subprogram | |
| CHECK-ARCHIVE-NEXT: DW_AT_name {{.*}}"inc" | |
| CHECK-ARCHIVE-NOT: Found valid debug map entry | |
| CHECK-ARCHIVE: Found valid debug map entry: _val ffffffffffffffff => 0000000100001008 | |
| CHECK-ARCHIVE-NEXT: DW_TAG_variable | |
| CHECK-ARCHIVE-NEXT: DW_AT_name {{.*}}"val" | |
| CHECK-ARCHIVE-NOT: Found valid debug map entry | |
| CHECK-ARCHIVE: Found valid debug map entry: _bar 0000000000000020 => 0000000100000f40 | |
| CHECK-ARCHIVE-NEXT: DW_TAG_subprogram | |
| CHECK-ARCHIVE-NEXT: DW_AT_name {{.*}}"bar" | |
| CHECK-ARCHIVE-NOT: Found valid debug map entry | |
| CHECK-ARCHIVE: Found valid debug map entry: _inc 0000000000000070 => 0000000100000f90 | |
| CHECK-ARCHIVE-NEXT: DW_TAG_subprogram | |
| CHECK-ARCHIVE-NEXT: DW_AT_name {{.*}}"inc") |