From: Martin Storsjo Date: Wed, 16 Aug 2017 05:13:16 +0000 (+0000) Subject: [COFF] Add SymbolName as a distinct field in COFFImportFile X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9c571e912046e9587fee4bca15bd92c9d8bd659a;p=llvm [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/trunk@310988 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Object/COFFImportFile.h b/include/llvm/Object/COFFImportFile.h index 8e215b565fc..f6db943c2de 100644 --- a/include/llvm/Object/COFFImportFile.h +++ b/include/llvm/Object/COFFImportFile.h @@ -73,6 +73,7 @@ private: struct COFFShortExport { std::string Name; std::string ExtName; + std::string SymbolName; uint16_t Ordinal = 0; bool Noname = false; diff --git a/lib/Object/COFFImportFile.cpp b/lib/Object/COFFImportFile.cpp index 670c4bb7dd1..8d0f82e2b92 100644 --- a/lib/Object/COFFImportFile.cpp +++ b/lib/Object/COFFImportFile.cpp @@ -590,7 +590,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 Name = E.ExtName.empty() ? SymbolName