[PATCH] D66617: [llvm-dlltool] Make sure to strip decorations from ExtName for renamed exports
Martin Storsjö via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 22 13:26:59 PDT 2019
mstorsjo created this revision.
mstorsjo added reviewers: rnk, ruiu, pcc, jacek.
Herald added subscribers: dexonsmith, steven_wu, inglorion, mehdi_amini.
Herald added a project: LLVM.
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.)
Repository:
rL LLVM
https://reviews.llvm.org/D66617
Files:
lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
test/tools/llvm-dlltool/coff-decorated.def
Index: test/tools/llvm-dlltool/coff-decorated.def
===================================================================
--- test/tools/llvm-dlltool/coff-decorated.def
+++ test/tools/llvm-dlltool/coff-decorated.def
@@ -9,6 +9,7 @@
@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 @@
; 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{{$}}
Index: lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
===================================================================
--- lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
+++ lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
@@ -161,6 +161,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));
}
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D66617.216698.patch
Type: text/x-patch
Size: 1127 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190822/abc73072/attachment.bin>
More information about the llvm-commits
mailing list