diff --git a/llvm/lib/Analysis/GlobalsModRef.cpp b/llvm/lib/Analysis/GlobalsModRef.cpp --- a/llvm/lib/Analysis/GlobalsModRef.cpp +++ b/llvm/lib/Analysis/GlobalsModRef.cpp @@ -526,6 +526,8 @@ FI.setMayReadAnyGlobal(); } else { FI.addModRefInfo(ModRefInfo::ModRef); + if (!F->isIntrinsic() && !F->onlyAccessesArgMemory()) + FI.setMayReadAnyGlobal(); // Can't say anything useful unless it's an intrinsic - they don't // read or write global variables of the kind considered here. KnowNothing = !F->isIntrinsic();