From 20aad04cccb722a06010a0643e3c7765ee26e175 Mon Sep 17 00:00:00 2001 From: Nuno Lopes Date: Wed, 6 Sep 2017 16:55:31 +0000 Subject: [PATCH] Fix PR33878: BasicAA incorrectly assumes different address spaces don't alias Remove code that assumed that a nullptr of address space != 0 couldnt alias with a non-null pointer. This is incorrect, since nothing can be concluded about a null pointer in an address space != 0. This code was written before address spaces were introduced Differential Revision: https://reviews.llvm.org/D37518 llvm-svn: 312648 --- lib/Analysis/BasicAliasAnalysis.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lib/Analysis/BasicAliasAnalysis.cpp b/lib/Analysis/BasicAliasAnalysis.cpp index 84eb7699a0f..3909e6b44aa 100644 --- a/lib/Analysis/BasicAliasAnalysis.cpp +++ b/lib/Analysis/BasicAliasAnalysis.cpp @@ -1590,11 +1590,6 @@ AliasResult BasicAAResult::aliasCheck(const Value *V1, uint64_t V1Size, (isa(O2) && isIdentifiedFunctionLocal(O1))) return NoAlias; - // Most objects can't alias null. - if ((isa(O2) && isKnownNonNull(O1)) || - (isa(O1) && isKnownNonNull(O2))) - return NoAlias; - // If one pointer is the result of a call/invoke or load and the other is a // non-escaping local object within the same function, then we know the // object couldn't escape to a point where the call could return it.