1
1
# REQUIRES: x86
2
2
# RUN: llvm-mc -triple=x86_64-windows-msvc %s -filetype=obj -o %t.obj
3
- # RUN: lld-link -out:%t.exe -entry:main %t.obj -debug:dwarf
3
+ # RUN: lld-link -machine:x64 -def:%S/Inputs/library.def -implib:%t.lib
4
+ # RUN: lld-link -out:%t.exe -entry:main %t.obj %t.lib -debug:dwarf
4
5
# RUN: llvm-readobj --string-table %t.exe | FileCheck %s
6
+ # RUN: llvm-nm %t.exe | FileCheck %s --check-prefix=SYMBOLS
7
+
8
+ # Note, for this test to have the intended test coverage, the imported symbol
9
+ # "function" needs to be such that the symbol name itself is <= 8 chars, while
10
+ # "__imp_"+name is >8 chars.
5
11
6
12
# CHECK: StringTable {
7
- # CHECK-NEXT: Length: 87
13
+ # CHECK-NEXT: Length: 102
8
14
# CHECK-NEXT: [ 4] .debug_abbrev
9
15
# CHECK-NEXT: [ 12] .debug_line
10
16
# CHECK-NEXT: [ 1e] long_name_symbolz
11
17
# CHECK-NEXT: [ 30] .debug_abbrez
12
- # CHECK-NEXT: [ 3e] __impl_long_name_symbolA
18
+ # CHECK-NEXT: [ 3e] __imp_function
19
+ # CHECK-NEXT: [ 4d] __impl_long_name_symbolA
13
20
# CHECK-NEXT: }
14
21
22
+ # SYMBOLS: 140001000 N .debug_abbrez
23
+ # SYMBOLS-NEXT: 140002070 R __imp_function
24
+ # SYMBOLS-NEXT: 140001000 t __impl_long_name_symbolA
25
+ # SYMBOLS-NEXT: 140001010 T function
26
+ # SYMBOLS-NEXT: 140001000 t long_name_symbolA
27
+ # SYMBOLS-NEXT: 140001000 t long_name_symbolz
28
+ # SYMBOLS-NEXT: 140001000 T main
29
+ # SYMBOLS-NEXT: 140001000 t name_symbolA
15
30
16
31
.global main
17
32
.text
@@ -21,6 +36,7 @@ long_name_symbolA:
21
36
__impl_long_name_symbolA:
22
37
name_symbolA:
23
38
.debug_abbrez:
39
+ call function
24
40
ret
25
41
26
42
.section .debug_abbrev,"dr"
0 commit comments