diff --git a/llvm/lib/IR/Globals.cpp b/llvm/lib/IR/Globals.cpp --- a/llvm/lib/IR/Globals.cpp +++ b/llvm/lib/IR/Globals.cpp @@ -444,6 +444,8 @@ findBaseObject(const Constant *C, DenseSet &Aliases) { if (auto *GO = dyn_cast(C)) return GO; + if (auto *GI = dyn_cast(C)) + return findBaseObject(GI->getOperand(0), Aliases); if (auto *GA = dyn_cast(C)) if (Aliases.insert(GA).second) return findBaseObject(GA->getOperand(0), Aliases);