]> granicus.if.org Git - llvm/commit
BasicAA: fix bug where we would return partialalias instead of noalias
authorNuno Lopes <nunoplopes@sapo.pt>
Wed, 8 Nov 2017 10:59:00 +0000 (10:59 +0000)
committerNuno Lopes <nunoplopes@sapo.pt>
Wed, 8 Nov 2017 10:59:00 +0000 (10:59 +0000)
commit4514930eb0a4dba443c3ebd32f108dcf410970f6
tree8e152ad8c2e08a83f65acee942116fa647674a0c
parent4d211caa3764ce1f205e8bc8cfa579735633fb59
BasicAA: fix bug where we would return partialalias instead of noalias
My fix is conservative and will make us return may-alias instead.

The test case is:
check(gep(x, 0), n, gep(x, n), -1)  with  n == sizeof(x)

Here, the first value accesses the whole object, but the second access
doesn't access anything. The semantics of -1 is read until the end of the
object, which in this case means read nothing.

No test case, since isn't trivial to exploit this one, but I've proved it correct.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317680 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/BasicAliasAnalysis.cpp