Index: llvm/lib/Analysis/BasicAliasAnalysis.cpp =================================================================== --- llvm/lib/Analysis/BasicAliasAnalysis.cpp +++ llvm/lib/Analysis/BasicAliasAnalysis.cpp @@ -1293,6 +1293,8 @@ AliasResult BasicAAResult::aliasPHI(const PHINode *PN, LocationSize PNSize, const Value *V2, LocationSize V2Size, AAQueryInfo &AAQI) { + if (!PN->getNumIncomingValues()) + return AliasResult::NoAlias; // If the values are PHIs in the same block, we can do a more precise // as well as efficient check: just check for aliases between the values // on corresponding edges. Index: llvm/test/Transforms/JumpThreading/aa-crash-phi-no-args.ll =================================================================== --- llvm/test/Transforms/JumpThreading/aa-crash-phi-no-args.ll +++ llvm/test/Transforms/JumpThreading/aa-crash-phi-no-args.ll @@ -1,4 +1,3 @@ -; XFAIL: * ; REQUIRES: asserts ; RUN: opt -jump-threading -aa-pipeline basic-aa -S -disable-output %s ; RUN: opt -passes=jump-threading -aa-pipeline basic-aa -S -disable-output %s