summaryrefslogtreecommitdiffstats
path: root/llvm/test/Analysis/CFLAliasAnalysis
diff options
context:
space:
mode:
authorGeorge Burgess IV <george.burgess.iv@gmail.com>2017-05-31 02:35:26 +0000
committerGeorge Burgess IV <george.burgess.iv@gmail.com>2017-05-31 02:35:26 +0000
commit0a7b9890363e7870cfcc938f8e2117d2a938bfe1 (patch)
tree96f4b9ce823cb9ab1c301662c6d7c0bcbc83474c /llvm/test/Analysis/CFLAliasAnalysis
parentbcd4c6823339461efdc906dea58985c43c7f8bb1 (diff)
downloadbcm5719-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.ll18
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
+}
OpenPOWER on IntegriCloud