Home | History | Annotate | Download | only in dsymutil
      1 RUN: llvm-dsymutil -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic.macho.x86_64 | FileCheck %s
      2 RUN: llvm-dsymutil -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic-lto.macho.x86_64 | FileCheck %s --check-prefix=CHECK-LTO
      3 RUN: llvm-dsymutil -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic-archive.macho.x86_64 | FileCheck %s --check-prefix=CHECK-ARCHIVE
      4 RUN: llvm-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 
      5 
      6 This test check the basic Dwarf linking process through the debug dumps.
      7 
      8 ================================= Simple link ================================
      9 CHECK: DEBUG MAP OBJECT: {{.*}}basic1.macho.x86_64.o
     10 CHECK: Input compilation unit:
     11 CHECK-NEXT: TAG_compile_unit
     12 CHECK-NOT: TAG
     13 CHECK: AT_name {{.*}}basic1.c
     14 CHECK-NOT: Found valid debug map entry
     15 CHECK: Found valid debug map entry: _main 	0000000000000000 => 0000000100000ea0
     16 CHECK-NEXT: DW_TAG_subprogram
     17 CHECK-NEXT:   DW_AT_name{{.*}}"main"
     18 
     19 CHECK: DEBUG MAP OBJECT: {{.*}}basic2.macho.x86_64.o
     20 CHECK: Input compilation unit:
     21 CHECK-NEXT: TAG_compile_unit
     22 CHECK-NOT: TAG
     23 CHECK: AT_name {{.*}}basic2.c
     24 CHECK-NOT: Found valid debug map entry
     25 CHECK: Found valid debug map entry: _private_int 	0000000000000560 => 0000000100001008
     26 CHECK-NEXT: DW_TAG_variable
     27 CHECK-NEXT:   DW_AT_name {{.*}}"private_int"
     28 CHECK-NOT: Found valid debug map entry
     29 CHECK: Found valid debug map entry: _baz 	0000000000000310 => 0000000100001000
     30 CHECK-NEXT: DW_TAG_variable
     31 CHECK-NEXT:   DW_AT_name {{.*}}"baz"
     32 CHECK-NOT: Found valid debug map entry
     33 CHECK: Found valid debug map entry: _foo 	0000000000000020 => 0000000100000ed0
     34 CHECK-NEXT: DW_TAG_subprogram
     35 CHECK-NEXT:   DW_AT_name {{.*}}"foo"
     36 CHECK-NOT: Found valid debug map entry
     37 CHECK: Found valid debug map entry: _inc 	0000000000000070 => 0000000100000f20
     38 CHECK-NEXT: DW_TAG_subprogram
     39 CHECK-NEXT:   DW_AT_name {{.*}}"inc"
     40 
     41 CHECK: DEBUG MAP OBJECT: {{.*}}basic3.macho.x86_64.o
     42 CHECK: Input compilation unit:
     43 CHECK-NEXT: TAG_compile_unit
     44 CHECK-NOT: TAG
     45 CHECK: AT_name {{.*}}basic3.c
     46 CHECK-NOT: Found valid debug map entry
     47 CHECK: Found valid debug map entry: _val 	0000000000000004 => 0000000100001004
     48 CHECK-NEXT: DW_TAG_variable
     49 CHECK-NEXT:   DW_AT_name {{.*}}"val"
     50 CHECK-NOT: Found valid debug map entry
     51 CHECK: Found valid debug map entry: _bar 	0000000000000020 => 0000000100000f40
     52 CHECK-NEXT: DW_TAG_subprogram
     53 CHECK-NEXT:   DW_AT_name {{.*}}"bar"
     54 CHECK-NOT: Found valid debug map entry
     55 CHECK: Found valid debug map entry: _inc 	0000000000000070 => 0000000100000f90
     56 CHECK-NEXT: DW_TAG_subprogram
     57 CHECK-NEXT:   DW_AT_name {{.*}}"inc")
     58 
     59 
     60 ================================= LTO link ================================
     61 CHECK-LTO: DEBUG MAP OBJECT: {{.*}}basic-lto.macho.x86_64.o
     62 CHECK-LTO: Input compilation unit:
     63 CHECK-LTO-NEXT: TAG_compile_unit
     64 CHECK-LTO-NOT: TAG
     65 CHECK-LTO: AT_name {{.*}}basic1.c
     66 CHECK-LTO: Input compilation unit:
     67 CHECK-LTO-NEXT: TAG_compile_unit
     68 CHECK-LTO-NOT: TAG
     69 CHECK-LTO: AT_name {{.*}}basic2.c
     70 CHECK-LTO: Input compilation unit:
     71 CHECK-LTO-NEXT: TAG_compile_unit
     72 CHECK-LTO-NOT: TAG
     73 CHECK-LTO: AT_name {{.*}}basic3.c
     74 
     75 CHECK-LTO-NOT: Found valid debug map entry
     76 CHECK-LTO: Found valid debug map entry: _main 	0000000000000000 => 0000000100000f40
     77 CHECK-LTO-NEXT: DW_TAG_subprogram
     78 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"main"
     79 CHECK-LTO-NOT: Found valid debug map entry
     80 CHECK-LTO: Found valid debug map entry: _private_int 	00000000000008e8 => 0000000100001008
     81 CHECK-LTO-NEXT: DW_TAG_variable
     82 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"private_int"
     83 CHECK-LTO-NOT: Found valid debug map entry
     84 CHECK-LTO: Found valid debug map entry: _baz 	0000000000000658 => 0000000100001000
     85 CHECK-LTO-NEXT: DW_TAG_variable
     86 CHECK-LTO-NEXT:   DW_AT_name {{.*}} "baz"
     87 CHECK-LTO-NOT: Found valid debug map entry
     88 CHECK-LTO: Found valid debug map entry: _foo 	0000000000000010 => 0000000100000f50
     89 CHECK-LTO-NEXT: DW_TAG_subprogram
     90 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"foo"
     91 CHECK-LTO-NOT: Found valid debug map entry
     92 CHECK-LTO: Found valid debug map entry: _val 	00000000000008ec => 0000000100001004
     93 CHECK-LTO-NEXT: DW_TAG_variable
     94 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"val"
     95 CHECK-LTO-NOT: Found valid debug map entry
     96 CHECK-LTO: Found valid debug map entry: _bar 	0000000000000050 => 0000000100000f90
     97 CHECK-LTO-NEXT: DW_TAG_subprogram
     98 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"bar"
     99 
    100 
    101 ================================= Archive link ================================
    102 CHECK-ARCHIVE: DEBUG MAP OBJECT: {{.*}}basic1.macho.x86_64.o
    103 CHECK-ARCHIVE: Input compilation unit:
    104 CHECK-ARCHIVE-NEXT: TAG_compile_unit
    105 CHECK-ARCHIVE-NOT: TAG
    106 CHECK-ARCHIVE: AT_name {{.*}}basic1.c
    107 CHECK-ARCHIVE-NOT: Found valid debug map entry
    108 CHECK-ARCHIVE: Found valid debug map entry: _main 	0000000000000000 => 0000000100000ea0
    109 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
    110 CHECK-ARCHIVE-NEXT:   DW_AT_name{{.*}}"main"
    111 
    112 CHECK-ARCHIVE: DEBUG MAP OBJECT: {{.*}}libbasic.a(basic2.macho.x86_64.o)
    113 CHECK-ARCHIVE: Input compilation unit:
    114 CHECK-ARCHIVE-NEXT: TAG_compile_unit
    115 CHECK-ARCHIVE-NOT: TAG
    116 CHECK-ARCHIVE: AT_name {{.*}}basic2.c
    117 CHECK-ARCHIVE-NOT: Found valid debug map entry
    118 CHECK-ARCHIVE: Found valid debug map entry: _private_int 	0000000000000560 => 0000000100001004
    119 CHECK-ARCHIVE-NEXT: DW_TAG_variable
    120 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"private_int"
    121 CHECK-ARCHIVE-NOT: Found valid debug map entry
    122 CHECK-ARCHIVE: Found valid debug map entry: _baz 	0000000000000310 => 0000000100001000
    123 CHECK-ARCHIVE-NEXT: DW_TAG_variable
    124 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"baz"
    125 CHECK-ARCHIVE-NOT: Found valid debug map entry
    126 CHECK-ARCHIVE: Found valid debug map entry: _foo 	0000000000000020 => 0000000100000ed0
    127 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
    128 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"foo"
    129 CHECK-ARCHIVE-NOT: Found valid debug map entry
    130 CHECK-ARCHIVE: Found valid debug map entry: _inc 	0000000000000070 => 0000000100000f20
    131 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
    132 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"inc"
    133 
    134 CHECK-ARCHIVE: DEBUG MAP OBJECT: {{.*}}libbasic.a(basic3.macho.x86_64.o)
    135 CHECK-ARCHIVE: Input compilation unit:
    136 CHECK-ARCHIVE-NEXT: TAG_compile_unit
    137 CHECK-ARCHIVE-NOT: TAG
    138 CHECK-ARCHIVE: AT_name {{.*}}basic3.c
    139 CHECK-ARCHIVE-NOT: Found valid debug map entry
    140 CHECK-ARCHIVE: Found valid debug map entry: _val 	0000000000000004 => 0000000100001008
    141 CHECK-ARCHIVE-NEXT: DW_TAG_variable
    142 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"val"
    143 CHECK-ARCHIVE-NOT: Found valid debug map entry
    144 CHECK-ARCHIVE: Found valid debug map entry: _bar 	0000000000000020 => 0000000100000f40
    145 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
    146 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"bar"
    147 CHECK-ARCHIVE-NOT: Found valid debug map entry
    148 CHECK-ARCHIVE: Found valid debug map entry: _inc 	0000000000000070 => 0000000100000f90
    149 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
    150 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"inc")
    151