Index: llvm/trunk/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp =================================================================== --- llvm/trunk/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp +++ llvm/trunk/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp @@ -171,6 +171,7 @@ // By making sure E.SymbolName != E.Name for decorated symbols, // writeImportLibrary writes these symbols with the type // IMPORT_NAME_UNDECORATE. + E.ExtName = E.ExtName.substr(0, E.ExtName.find('@', 1)); } } Index: llvm/trunk/test/tools/llvm-dlltool/coff-decorated.def =================================================================== --- llvm/trunk/test/tools/llvm-dlltool/coff-decorated.def +++ llvm/trunk/test/tools/llvm-dlltool/coff-decorated.def @@ -9,6 +9,7 @@ @FastcallFunction@4 StdcallAlias@4==StdcallFunction@4 ??_7exception@@6B@ +StdcallExportName@4=StdcallInternalFunction@4 ; CHECK: Name type: noprefix ; CHECK: Symbol: __imp__CdeclFunction @@ -24,3 +25,5 @@ ; CHECK: Symbol: ??_7exception@@6B@ ; CHECK-NM: W _StdcallAlias@4 ; CHECK-NM: U _StdcallFunction@4 +; CHECK: Symbol: __imp__StdcallExportName@4{{$}} +; CHECK: Symbol: _StdcallExportName@4{{$}}