From 5ffe52395a39ebc800dcd8a1c9975b89416d770c Mon Sep 17 00:00:00 2001 From: George Karpenkov Date: Tue, 20 Mar 2018 00:20:58 +0000 Subject: [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 --- clang/test/Analysis/lambdas.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'clang/test/Analysis/lambdas.cpp') 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] -- cgit v1.2.3