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)
commit17921d9e219d04afefccbeedd8a485e3357239d4
treecc24b67e2a080f16850baa9d7f892ecffb6a298f
parentd2aab749d10762fb1193f90cbec3da83760dcd8d
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.

llvm-svn: 317680
llvm/lib/Analysis/BasicAliasAnalysis.cpp