summaryrefslogtreecommitdiff
path: root/test/Analysis/BasicAA/tail-byval.ll
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2018-08-18 08:26:46 +0000
committerDimitry Andric <dim@FreeBSD.org>2018-08-18 08:26:46 +0000
commitd0a9cbdae159210824ddf2da138e2dcaecbe1cd4 (patch)
treec539e15a2dbf52df82eb2a72fb6581db604faab4 /test/Analysis/BasicAA/tail-byval.ll
parentac3a3c134038429abacef8c5d8069674f98d6b34 (diff)
Notes
Diffstat (limited to 'test/Analysis/BasicAA/tail-byval.ll')
-rw-r--r--test/Analysis/BasicAA/tail-byval.ll15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/Analysis/BasicAA/tail-byval.ll b/test/Analysis/BasicAA/tail-byval.ll
new file mode 100644
index 0000000000000..0aa8dfdaedff2
--- /dev/null
+++ b/test/Analysis/BasicAA/tail-byval.ll
@@ -0,0 +1,15 @@
+; RUN: opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output < %s 2>&1 | FileCheck %s
+
+declare void @takebyval(i32* byval %p)
+
+define i32 @tailbyval() {
+entry:
+ %p = alloca i32
+ store i32 42, i32* %p
+ tail call void @takebyval(i32* byval %p)
+ %rv = load i32, i32* %p
+ ret i32 %rv
+}
+; FIXME: This should be Just Ref.
+; CHECK-LABEL: Function: tailbyval: 1 pointers, 1 call sites
+; CHECK-NEXT: Both ModRef: Ptr: i32* %p <-> tail call void @takebyval(i32* byval %p)