https://github.com/llvmbot created 
https://github.com/llvm/llvm-project/pull/154928

Backport a6fcd1a6632a57e1b670dd607dac97ff3bd2d33a

Requested by: @cjacek

>From 4ad7d672ba75b5371c29e4ff6684136759370924 Mon Sep 17 00:00:00 2001
From: Jacek Caban <ja...@codeweavers.com>
Date: Fri, 22 Aug 2025 04:05:19 -0700
Subject: [PATCH] [LLD][COFF] Set isUsedInRegularObj for target symbols in
 resolveAlternateNames (#154837)

Fixes: #154595

Prior to commit bbc8346e6bb543b0a87f52114fed7d766446bee1, this flag was
set by `insert()` from `addUndefined()`. Set it explicitly now.

(cherry picked from commit a6fcd1a6632a57e1b670dd607dac97ff3bd2d33a)
---
 lld/COFF/SymbolTable.cpp           |  1 +
 lld/test/COFF/alternatename-lto.ll | 25 +++++++++++++++++++++++++
 2 files changed, 26 insertions(+)
 create mode 100644 lld/test/COFF/alternatename-lto.ll

diff --git a/lld/COFF/SymbolTable.cpp b/lld/COFF/SymbolTable.cpp
index 189e75dfc3ff5..d15e0c24410c6 100644
--- a/lld/COFF/SymbolTable.cpp
+++ b/lld/COFF/SymbolTable.cpp
@@ -1374,6 +1374,7 @@ void SymbolTable::resolveAlternateNames() {
       auto toUndef = dyn_cast<Undefined>(toSym);
       if (toUndef && (!toUndef->weakAlias || toUndef->isAntiDep))
         continue;
+      toSym->isUsedInRegularObj = true;
       if (toSym->isLazy())
         forceLazy(toSym);
       u->setWeakAlias(toSym);
diff --git a/lld/test/COFF/alternatename-lto.ll 
b/lld/test/COFF/alternatename-lto.ll
new file mode 100644
index 0000000000000..c3666cd3501df
--- /dev/null
+++ b/lld/test/COFF/alternatename-lto.ll
@@ -0,0 +1,25 @@
+; REQUIRES: x86
+; RUN: mkdir -p %t.dir
+; RUN: llvm-as -o %t.obj %s
+; RUN: lld-link -out:%t.dll -dll -noentry %t.obj -export:test
+
+target datalayout = 
"e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-windows-msvc19.33.0"
+
+$alt = comdat any
+
+@alt = weak_odr dso_local global i32 0, comdat, align 4
+@ext = external dso_local global i32, align 4
+
+; Function Attrs: noinline nounwind optnone uwtable
+define dso_local i32 @test() #0 {
+entry:
+  %0 = load i32, ptr @ext, align 4
+  ret i32 %0
+}
+
+attributes #0 = { noinline nounwind optnone uwtable }
+
+!llvm.linker.options = !{!0}
+
+!0 = !{!"/alternatename:ext=alt"}

_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to