diff options
author | George Burgess IV <george.burgess.iv@gmail.com> | 2018-05-10 18:37:54 +0000 |
---|---|---|
committer | George Burgess IV <george.burgess.iv@gmail.com> | 2018-05-10 18:37:54 +0000 |
commit | 175400a801340a75c8fcd5c30924540ae84ad90f (patch) | |
tree | 654cb41c77b5a9acdc1283b0db80cb45fe0827ed /clang/lib/Frontend/ModuleDependencyCollector.cpp | |
parent | bf5c84861c738a8ac76c95ff9c5e3dac47df339e (diff) | |
download | bcm5719-llvm-175400a801340a75c8fcd5c30924540ae84ad90f.tar.gz bcm5719-llvm-175400a801340a75c8fcd5c30924540ae84ad90f.zip |
Add regression test for r331976
In general, it's difficult to poke the ConstantExpr code in CFLAA, since
LLVM is so great at eagerly reducing ConstantExprs. :)
Sadly, this only shows a functional difference from before the patch
because CFLAA has some special logic around taking loads of non-pointers
into account. Namely, with the broken select behavior, CFLAA will
completely fail to take note of @g3. Since CFLAA doesn't have any record
about @g3 when we do an alias query for @g3 and %a, it conservatively
answers MayAlias. When we properly take @g3 into account with the new
select logic, we get NoAlias for this query.
I suspect that the aforementioned "special logic" isn't completely
correct, but this test-case should prevent future wonky aliasing results
from appearing for these flavors of ConstantExprs, so I think it's still
worth having.
llvm-svn: 332017
Diffstat (limited to 'clang/lib/Frontend/ModuleDependencyCollector.cpp')
0 files changed, 0 insertions, 0 deletions