summaryrefslogtreecommitdiffstats
path: root/llvm/test/Analysis/ValueTracking/known-nonnull-at.ll
diff options
context:
space:
mode:
authorPiotr Padlewski <piotr.padlewski@gmail.com>2018-05-23 09:16:44 +0000
committerPiotr Padlewski <piotr.padlewski@gmail.com>2018-05-23 09:16:44 +0000
commitd6f7346a4b4bdbdfef9ba7a5b8619e42091e2440 (patch)
tree9c009d37ea6f02879925ab71d94ac81a32701753 /llvm/test/Analysis/ValueTracking/known-nonnull-at.ll
parenteb13d3d22e9bd303b4065b372a692cd04e4b8cc1 (diff)
downloadbcm5719-llvm-d6f7346a4b4bdbdfef9ba7a5b8619e42091e2440.tar.gz
bcm5719-llvm-d6f7346a4b4bdbdfef9ba7a5b8619e42091e2440.zip
Fix aliasing of launder.invariant.group
Summary: Patch for capture tracking broke bootstrap of clang with -fstict-vtable-pointers which resulted in debbugging nightmare. It was fixed https://reviews.llvm.org/D46900 but as it turned out, there were other parts like inliner (computing of noalias metadata) that I found after bootstraping with enabled assertions. Reviewers: hfinkel, rsmith, chandlerc, amharc, kuhar Subscribers: JDevlieghere, eraman, llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D47088 llvm-svn: 333070
Diffstat (limited to 'llvm/test/Analysis/ValueTracking/known-nonnull-at.ll')
-rw-r--r--llvm/test/Analysis/ValueTracking/known-nonnull-at.ll21
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/test/Analysis/ValueTracking/known-nonnull-at.ll b/llvm/test/Analysis/ValueTracking/known-nonnull-at.ll
index 93ef4f8c4c4..00eea73ca2d 100644
--- a/llvm/test/Analysis/ValueTracking/known-nonnull-at.ll
+++ b/llvm/test/Analysis/ValueTracking/known-nonnull-at.ll
@@ -98,3 +98,24 @@ exc:
unreachable
}
+declare i8* @returningPtr(i8* returned %p)
+
+define i1 @nonnullReturnTest(i8* nonnull %x) {
+; CHECK-LABEL: @nonnullReturnTest(
+; CHECK-NEXT: %x2 = call i8* @returningPtr(i8* %x)
+; CHECK-NEXT: ret i1 false
+ %x2 = call i8* @returningPtr(i8* %x)
+ %null_check = icmp eq i8* %x2, null
+ ret i1 %null_check
+}
+
+define i1 @unknownReturnTest(i8* %x) {
+; CHECK-LABEL: @unknownReturnTest(
+; CHECK-NEXT: %x2 = call i8* @returningPtr(i8* %x)
+; CHECK-NEXT: %null_check = icmp eq i8* %x2, null
+; CHECK-NEXT: ret i1 %null_check
+ %x2 = call i8* @returningPtr(i8* %x)
+ %null_check = icmp eq i8* %x2, null
+ ret i1 %null_check
+}
+
OpenPOWER on IntegriCloud