]> granicus.if.org Git - llvm/commitdiff
Merging r310988:
authorHans Wennborg <hans@hanshq.net>
Thu, 17 Aug 2017 16:57:03 +0000 (16:57 +0000)
committerHans Wennborg <hans@hanshq.net>
Thu, 17 Aug 2017 16:57:03 +0000 (16:57 +0000)
------------------------------------------------------------------------
r310988 | mstorsjo | 2017-08-15 22:13:16 -0700 (Tue, 15 Aug 2017) | 8 lines

[COFF] Add SymbolName as a distinct field in COFFImportFile

The previous Name and ExtName aren't enough to convey all the nuances
between weak aliases and stdcall decorated function names.

A test for this will be added in LLD.

Differential Revision: https://reviews.llvm.org/D36544
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_50@311096 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Object/COFFImportFile.h
lib/Object/COFFImportFile.cpp

index 8e215b565fc4181c2fabcf4534a4b6eae235dcfc..f6db943c2de860fdb6b42c56a43c298ad55added 100644 (file)
@@ -73,6 +73,7 @@ private:
 struct COFFShortExport {
   std::string Name;
   std::string ExtName;
+  std::string SymbolName;
 
   uint16_t Ordinal = 0;
   bool Noname = false;
index a515bc8ad16de40c9f0815854ed057adfc816595..83a11cb6db059ef1ed16cd737224e67c7286a3c6 100644 (file)
@@ -587,7 +587,7 @@ std::error_code writeImportLibrary(StringRef ImportName, StringRef Path,
     if (E.Constant)
       ImportType = IMPORT_CONST;
 
-    StringRef SymbolName = E.isWeak() ? E.ExtName : E.Name;
+    StringRef SymbolName = E.SymbolName.empty() ? E.Name : E.SymbolName;
     ImportNameType NameType = getNameType(SymbolName, E.Name, Machine);
     Expected<std::string> Name = E.ExtName.empty()
                                      ? SymbolName