aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/COFFImportFile.cpp
diff options
context:
space:
mode:
authorJacek Caban <jacek@codeweavers.com>2024-03-27 11:41:02 +0100
committerGitHub <noreply@github.com>2024-03-27 11:41:02 +0100
commitc9d12664f2f967ec170ed16d9a57af2f48e832c8 (patch)
tree5b110974fd374b7a8315f4ebd52c96c832987278 /llvm/lib/Object/COFFImportFile.cpp
parentcc23ee8250c2eda3f28c4d25c412e68ec78ecbe1 (diff)
downloadllvm-c9d12664f2f967ec170ed16d9a57af2f48e832c8.zip
llvm-c9d12664f2f967ec170ed16d9a57af2f48e832c8.tar.gz
llvm-c9d12664f2f967ec170ed16d9a57af2f48e832c8.tar.bz2
[llvm-dlltool][llvm-lib][COFF] Don't override NONAME exports with demangled ARM64EC symbols. (#86722)
Diffstat (limited to 'llvm/lib/Object/COFFImportFile.cpp')
-rw-r--r--llvm/lib/Object/COFFImportFile.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Object/COFFImportFile.cpp b/llvm/lib/Object/COFFImportFile.cpp
index 8224a14..477c5bf 100644
--- a/llvm/lib/Object/COFFImportFile.cpp
+++ b/llvm/lib/Object/COFFImportFile.cpp
@@ -690,12 +690,12 @@ Error writeImportLibrary(StringRef ImportName, StringRef Path,
if (ImportType == IMPORT_CODE && isArm64EC(M)) {
if (std::optional<std::string> MangledName =
getArm64ECMangledFunctionName(Name)) {
- if (ExportName.empty()) {
+ if (!E.Noname && ExportName.empty()) {
NameType = IMPORT_NAME_EXPORTAS;
ExportName.swap(Name);
}
Name = std::move(*MangledName);
- } else if (ExportName.empty()) {
+ } else if (!E.Noname && ExportName.empty()) {
NameType = IMPORT_NAME_EXPORTAS;
ExportName = std::move(*getArm64ECDemangledFunctionName(Name));
}