Index: llvm/lib/IR/Globals.cpp =================================================================== --- llvm/lib/IR/Globals.cpp +++ llvm/lib/IR/Globals.cpp @@ -354,6 +354,7 @@ case Instruction::PtrToInt: case Instruction::BitCast: case Instruction::GetElementPtr: + case Instruction::AddrSpaceCast: return findBaseObject(CE->getOperand(0), Aliases, Op); default: break; Index: llvm/test/Assembler/ifunc-addrspacecast.ll =================================================================== --- /dev/null +++ llvm/test/Assembler/ifunc-addrspacecast.ll @@ -0,0 +1,9 @@ +; RUN: llvm-as < %s | llvm-dis | FileCheck %s + +; CHECK: @ifunc_addrspacecast_as1_to_as0 = ifunc void (), addrspacecast (ptr addrspace(1) @resolver_as1 to ptr) +@ifunc_addrspacecast_as1_to_as0 = ifunc void (), ptr addrspacecast (ptr addrspace(1) @resolver_as1 to ptr) + +; CHECK: define ptr @resolver_as1() addrspace(1) { +define ptr @resolver_as1() addrspace(1) { + ret ptr null +}