# REQUIRES: x86 # RUN: llvm-mc -triple=x86_64-windows-msvc %s -filetype=obj -o %t.obj # RUN: lld-link -machine:x64 -def:%S/Inputs/library.def -implib:%t.lib # RUN: lld-link -out:%t.exe -entry:main %t.obj %t.lib -debug:dwarf # RUN: llvm-readobj --string-table %t.exe | FileCheck %s # RUN: llvm-nm %t.exe | FileCheck %s --check-prefix=SYMBOLS # Note, for this test to have the intended test coverage, the imported symbol # "function" needs to be such that the symbol name itself is <= 8 chars, while # "__imp_"+name is >8 chars. # CHECK: StringTable { # CHECK-NEXT: Length: 102 # CHECK-NEXT: [ 4] .debug_abbrev # CHECK-NEXT: [ 12] .debug_line # CHECK-NEXT: [ 1e] long_name_symbolz # CHECK-NEXT: [ 30] .debug_abbrez # CHECK-NEXT: [ 3e] __imp_function # CHECK-NEXT: [ 4d] __impl_long_name_symbolA # CHECK-NEXT: } # SYMBOLS: 140001000 N .debug_abbrez # SYMBOLS-NEXT: 140002070 R __imp_function # SYMBOLS-NEXT: 140001000 t __impl_long_name_symbolA # SYMBOLS-NEXT: 140001010 T function # SYMBOLS-NEXT: 140001000 t long_name_symbolA # SYMBOLS-NEXT: 140001000 t long_name_symbolz # SYMBOLS-NEXT: 140001000 T main # SYMBOLS-NEXT: 140001000 t name_symbolA .global main .text main: long_name_symbolz: long_name_symbolA: __impl_long_name_symbolA: name_symbolA: .debug_abbrez: call function ret .section .debug_abbrev,"dr" .byte 0 .section .debug_line,"dr" .byte 0