summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/lambdas.cpp
diff options
context:
space:
mode:
authorGeorge Karpenkov <ekarpenkov@apple.com>2018-03-20 00:20:58 +0000
committerGeorge Karpenkov <ekarpenkov@apple.com>2018-03-20 00:20:58 +0000
commit5ffe52395a39ebc800dcd8a1c9975b89416d770c (patch)
tree239108d0b8ce0a916ff225fcbbece783b8451316 /clang/test/Analysis/lambdas.cpp
parent487b0c6b66ce6f2fbd91fc268839bd06f1fdd89d (diff)
downloadbcm5719-llvm-5ffe52395a39ebc800dcd8a1c9975b89416d770c.tar.gz
bcm5719-llvm-5ffe52395a39ebc800dcd8a1c9975b89416d770c.zip
[analyzer] Fix the assertion failure when static globals are used in lambda by reference
Also use the opportunity to clean up the code and remove unnecessary duplication. rdar://37625895 Differential Revision: https://reviews.llvm.org/D44594 llvm-svn: 327926
Diffstat (limited to 'clang/test/Analysis/lambdas.cpp')
-rw-r--r--clang/test/Analysis/lambdas.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/test/Analysis/lambdas.cpp b/clang/test/Analysis/lambdas.cpp
index 38a2e3a84fb..320ba2aabc2 100644
--- a/clang/test/Analysis/lambdas.cpp
+++ b/clang/test/Analysis/lambdas.cpp
@@ -348,6 +348,23 @@ void testCapturedConstExprFloat() {
lambda();
}
+
+static int b = 0;
+
+int f() {
+ b = 0;
+ auto &bm = b;
+ [&] {
+ bm++;
+ bm++;
+ }();
+ if (bm != 2) {
+ int *y = 0;
+ return *y; // no-warning
+ }
+ return 0;
+}
+
// CHECK: [B2 (ENTRY)]
// CHECK: Succs (1): B1
// CHECK: [B1]
OpenPOWER on IntegriCloud