[analyzer] Lambda capture non-POD type array
authorisuckatcs <65320245+isuckatcs@users.noreply.github.com>
Sun, 17 Jul 2022 17:04:45 +0000 (19:04 +0200)
committerisuckatcs <65320245+isuckatcs@users.noreply.github.com>
Tue, 26 Jul 2022 07:40:25 +0000 (09:40 +0200)
commit996b092c5e170786572e925345e502e5376feaee
tree05e215cd58914dda884fb0a44bd3efff172b3e7c
parentae72cc72d7064fe0a71d41e0660a1cb6147de46a
[analyzer] Lambda capture non-POD type array

This patch introduces a new `ConstructionContext` for
lambda capture. This `ConstructionContext` allows the
analyzer to construct the captured object directly into
it's final region, and makes it possible to capture
non-POD arrays.

Differential Revision: https://reviews.llvm.org/D129967
clang/include/clang/Analysis/CFG.h
clang/include/clang/Analysis/ConstructionContext.h
clang/lib/Analysis/CFG.cpp
clang/lib/Analysis/ConstructionContext.cpp
clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
clang/test/Analysis/array-init-loop.cpp
clang/test/Analysis/lambdas.cpp