basic-linking.test 6.5 KB

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