[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