Index: lld/COFF/Symbols.cpp =================================================================== --- lld/COFF/Symbols.cpp +++ lld/COFF/Symbols.cpp @@ -35,9 +35,7 @@ prefix = "__declspec(dllimport) "; if (config->machine == I386) demangleInput.consume_front("_"); - std::string demangled = demangle(demangleInput); - if (demangled != demangleInput) - return prefix + demangled; + return prefix + demangle(demangleInput); } return symName; } Index: lld/test/COFF/delayimports-error.test =================================================================== --- lld/test/COFF/delayimports-error.test +++ lld/test/COFF/delayimports-error.test @@ -7,7 +7,7 @@ # RUN: /alternatename:__delayLoadHelper2=main /opt:noref >& %t.log # RUN: FileCheck %s < %t.log -# CHECK: cannot delay-load foo.dll due to import of data: __imp_datasym +# CHECK: cannot delay-load foo.dll due to import of data: __declspec(dllimport) datasym --- !COFF header: Index: lld/test/COFF/duplicate.test =================================================================== --- lld/test/COFF/duplicate.test +++ lld/test/COFF/duplicate.test @@ -9,5 +9,5 @@ RUN: llc -mtriple x86_64-windows-msvc -filetype obj -o gamma.obj %S/Inputs/gamma.ll RUN: not lld-link /out:gamma.exe /subsystem:console /entry:mainCRTStartup gamma.obj alpha.lib 2>&1 | FileCheck %s -check-prefix CHECK-GAMMA -CHECK-GAMMA: error: duplicate symbol: __imp_f in {{.*}}gamma.obj and in alpha.dll +CHECK-GAMMA: error: duplicate symbol: __declspec(dllimport) f in {{.*}}gamma.obj and in alpha.dll Index: lld/test/COFF/libcall-archive.ll =================================================================== --- lld/test/COFF/libcall-archive.ll +++ lld/test/COFF/libcall-archive.ll @@ -6,9 +6,9 @@ ; RUN: llvm-ar rcs %t.a %t2.obj %t3.obj ; RUN: lld-link -out:%t.exe -subsystem:console -entry:start -safeseh:no -lldmap:- %t.obj %t.a | FileCheck %s -; CHECK-NOT: ___sync_val_compare_and_swap_8 -; CHECK: _start -; CHECK: _memcpy +; CHECK-NOT: __sync_val_compare_and_swap_8 +; CHECK: start +; CHECK: memcpy target datalayout = "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:32-n8:16:32-a:0:32-S32" target triple = "i686-unknown-windows" Index: lld/test/COFF/undefined-symbol-itanium-i386.s =================================================================== --- lld/test/COFF/undefined-symbol-itanium-i386.s +++ lld/test/COFF/undefined-symbol-itanium-i386.s @@ -10,18 +10,18 @@ # NODEMANGLE: error: undefined symbol: _Z3fooi # CHECK: error: undefined symbol: foo(int) -# CHECK-NEXT: >>> referenced by {{.*}}.o:(_main) -# CHECK-NEXT: >>> referenced by {{.*}}.o:(_main) +# CHECK-NEXT: >>> referenced by {{.*}}.o:(main) +# CHECK-NEXT: >>> referenced by {{.*}}.o:(main) # CHECK-EMPTY: # CHECK-NEXT: error: undefined symbol: bar(char const*) -# CHECK-NEXT: >>> referenced by {{.*}}.o:(_main) -# CHECK-NEXT: >>> referenced by {{.*}}.o:(_f1) +# CHECK-NEXT: >>> referenced by {{.*}}.o:(main) +# CHECK-NEXT: >>> referenced by {{.*}}.o:(f1) # CHECK-EMPTY: # CHECK-NEXT: error: undefined symbol: __declspec(dllimport) baz() -# CHECK-NEXT: >>> referenced by {{.*}}.o:(_f2) +# CHECK-NEXT: >>> referenced by {{.*}}.o:(f2) # CHECK-EMPTY: -# CHECK-NEXT: error: undefined symbol: _Z3fooi -# CHECK-NEXT: >>> referenced by {{.*}}.o:(_f2) +# CHECK-NEXT: error: undefined symbol: Z3fooi +# CHECK-NEXT: >>> referenced by {{.*}}.o:(f2) .section .text,"xr",one_only,_main .globl _main Index: lld/test/COFF/undefined-symbol.s =================================================================== --- lld/test/COFF/undefined-symbol.s +++ lld/test/COFF/undefined-symbol.s @@ -20,7 +20,7 @@ # CHECK-NEXT: error: undefined symbol: __declspec(dllimport) int __cdecl baz(void) # CHECK-NEXT: >>> referenced by {{.*}}.obj:(f2) # CHECK-EMPTY: -# CHECK-NEXT: error: undefined symbol: __imp_undecorated +# CHECK-NEXT: error: undefined symbol: __declspec(dllimport) undecorated # CHECK-NEXT: >>> referenced by {{.*}}.obj:(f2) .section .text,"xr",one_only,main