diff options
| author | George Burgess IV <george.burgess.iv@gmail.com> | 2017-05-31 02:35:26 +0000 |
|---|---|---|
| committer | George Burgess IV <george.burgess.iv@gmail.com> | 2017-05-31 02:35:26 +0000 |
| commit | 0a7b9890363e7870cfcc938f8e2117d2a938bfe1 (patch) | |
| tree | 96f4b9ce823cb9ab1c301662c6d7c0bcbc83474c /llvm/test/Analysis/CFLAliasAnalysis | |
| parent | bcd4c6823339461efdc906dea58985c43c7f8bb1 (diff) | |
| download | bcm5719-llvm-0a7b9890363e7870cfcc938f8e2117d2a938bfe1.tar.gz bcm5719-llvm-0a7b9890363e7870cfcc938f8e2117d2a938bfe1.zip | |
[CFLAA] Add missing break; note things are broken.
Thanks to Galina Kistanova for finding the missing break!
When trying to make a test for this, I realized our logic for handling
extractvalue/insertvalue/... is somewhat broken. This makes constructing
a test-case for this missing break nontrivial.
llvm-svn: 304275
Diffstat (limited to 'llvm/test/Analysis/CFLAliasAnalysis')
| -rw-r--r-- | llvm/test/Analysis/CFLAliasAnalysis/Andersen/struct.ll | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/test/Analysis/CFLAliasAnalysis/Andersen/struct.ll b/llvm/test/Analysis/CFLAliasAnalysis/Andersen/struct.ll new file mode 100644 index 00000000000..c1d25c1e3c2 --- /dev/null +++ b/llvm/test/Analysis/CFLAliasAnalysis/Andersen/struct.ll @@ -0,0 +1,18 @@ +; Ensures that our struct ops are sane. + +; RUN: opt < %s -disable-basicaa -cfl-anders-aa -aa-eval -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s +; RUN: opt < %s -aa-pipeline=cfl-anders-aa -passes=aa-eval -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s + +; Since we ignore non-pointer values, we effectively ignore extractvalue +; instructions. This means that %c "doesn't exist" in test_structure's graph, +; so we currently get MayAlias. +; XFAIL: * + +; CHECK-LABEL: Function: test_structure +; CHECK: NoAlias: i64** %c, { i64**, i64** }* %a +define void @test_structure() { + %a = alloca {i64**, i64**}, align 8 + %b = load {i64**, i64**}, {i64**, i64**}* %a + %c = extractvalue {i64**, i64**} %b, 0 + ret void +} |

