[llvm] r369747 - [llvm-dlltool] Make sure to strip decorations from ExtName for renamed exports
Martin Storsjo via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 23 04:18:12 PDT 2019
Author: mstorsjo
Date: Fri Aug 23 04:18:11 2019
New Revision: 369747
URL: http://llvm.org/viewvc/llvm-project?rev=369747&view=rev
Log:
[llvm-dlltool] Make sure to strip decorations from ExtName for renamed exports
ExtName should not be decorated, just like Name.
This avoids double decoration on symbols in import libraries
that use = for renaming functions. (Weak aliases, which use ==,
worked fine with respect to decoration.)
Differential Revision: https://reviews.llvm.org/D66617
Modified:
llvm/trunk/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
llvm/trunk/test/tools/llvm-dlltool/coff-decorated.def
Modified: llvm/trunk/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp?rev=369747&r1=369746&r2=369747&view=diff
==============================================================================
--- llvm/trunk/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp (original)
+++ llvm/trunk/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp Fri Aug 23 04:18:11 2019
@@ -171,6 +171,7 @@ int llvm::dlltoolDriverMain(llvm::ArrayR
// 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));
}
}
Modified: llvm/trunk/test/tools/llvm-dlltool/coff-decorated.def
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-dlltool/coff-decorated.def?rev=369747&r1=369746&r2=369747&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-dlltool/coff-decorated.def (original)
+++ llvm/trunk/test/tools/llvm-dlltool/coff-decorated.def Fri Aug 23 04:18:11 2019
@@ -9,6 +9,7 @@ StdcallFunction at 4
@FastcallFunction at 4
StdcallAlias at 4==StdcallFunction at 4
??_7exception@@6B@
+StdcallExportName at 4=StdcallInternalFunction at 4
; CHECK: Name type: noprefix
; CHECK: Symbol: __imp__CdeclFunction
@@ -24,3 +25,5 @@ StdcallAlias at 4==StdcallFunction at 4
; CHECK: Symbol: ??_7exception@@6B@
; CHECK-NM: W _StdcallAlias at 4
; CHECK-NM: U _StdcallFunction at 4
+; CHECK: Symbol: __imp__StdcallExportName at 4{{$}}
+; CHECK: Symbol: _StdcallExportName at 4{{$}}
More information about the llvm-commits
mailing list