[llvm] f31bc66 - [IR] Handle addrspacecast in findBaseObject() (#162076)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 6 07:18:17 PDT 2025
Author: Nikita Popov
Date: 2025-10-06T16:18:12+02:00
New Revision: f31bc666f42bb6bf0a3312a1d2ec230c390e8171
URL: https://github.com/llvm/llvm-project/commit/f31bc666f42bb6bf0a3312a1d2ec230c390e8171
DIFF: https://github.com/llvm/llvm-project/commit/f31bc666f42bb6bf0a3312a1d2ec230c390e8171.diff
LOG: [IR] Handle addrspacecast in findBaseObject() (#162076)
Make findBaseObject() look through addrspacecast, so that
getAliaseeObject() works with an aliasee that uses and addrspacecast.
This fixes a crash during module summary index emission.
Fixes https://github.com/llvm/llvm-project/issues/161646.
Added:
llvm/test/Bitcode/thinlto-alias-addrspacecast.ll
Modified:
llvm/lib/IR/Globals.cpp
Removed:
################################################################################
diff --git a/llvm/lib/IR/Globals.cpp b/llvm/lib/IR/Globals.cpp
index 1a7a5c5fbad6b..c3a472b0cc66d 100644
--- a/llvm/lib/IR/Globals.cpp
+++ b/llvm/lib/IR/Globals.cpp
@@ -419,6 +419,7 @@ findBaseObject(const Constant *C, DenseSet<const GlobalAlias *> &Aliases,
case Instruction::PtrToAddr:
case Instruction::PtrToInt:
case Instruction::BitCast:
+ case Instruction::AddrSpaceCast:
case Instruction::GetElementPtr:
return findBaseObject(CE->getOperand(0), Aliases, Op);
default:
diff --git a/llvm/test/Bitcode/thinlto-alias-addrspacecast.ll b/llvm/test/Bitcode/thinlto-alias-addrspacecast.ll
new file mode 100644
index 0000000000000..fe4f05e138c8a
--- /dev/null
+++ b/llvm/test/Bitcode/thinlto-alias-addrspacecast.ll
@@ -0,0 +1,7 @@
+; RUN: opt -module-summary < %s | llvm-dis | FileCheck %s
+
+ at __oclc_ABI_version = linkonce_odr hidden addrspace(4) constant i32 500, align 4
+ at _ZL20__oclc_ABI_version__ = internal alias i32, addrspacecast (ptr addrspace(4) @__oclc_ABI_version to ptr)
+
+; CHECK: ^1 = gv: (name: "__oclc_ABI_version", summaries: (variable: (module: ^0, flags: {{.*}})))
+; CHECK: ^2 = gv: (name: "_ZL20__oclc_ABI_version__", summaries: (alias: (module: ^0, flags: {{.*}}, aliasee: ^1)))
More information about the llvm-commits
mailing list