diff options
author | George Karpenkov <ekarpenkov@apple.com> | 2018-03-20 00:20:58 +0000 |
---|---|---|
committer | George Karpenkov <ekarpenkov@apple.com> | 2018-03-20 00:20:58 +0000 |
commit | 5ffe52395a39ebc800dcd8a1c9975b89416d770c (patch) | |
tree | 239108d0b8ce0a916ff225fcbbece783b8451316 /clang/test/Analysis/lambdas.cpp | |
parent | 487b0c6b66ce6f2fbd91fc268839bd06f1fdd89d (diff) | |
download | bcm5719-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.cpp | 17 |
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] |