[analyzer] Fix liveness calculation for C++17 structured bindings
authorGeorge Karpenkov <ekarpenkov@apple.com>
Sat, 31 Mar 2018 01:20:06 +0000 (01:20 +0000)
committerGeorge Karpenkov <ekarpenkov@apple.com>
Sat, 31 Mar 2018 01:20:06 +0000 (01:20 +0000)
commit137ca91f52e0eccd866da5f877563d930df30079
tree78e53ff3766fab484000332804ce264cffe66164
parentdb83aceb0686c25c1a5d3db2e776bc8c9b0de3ee
[analyzer] Fix liveness calculation for C++17 structured bindings

C++ structured bindings for non-tuple-types are defined in a peculiar
way, where the resulting declaration is not a VarDecl, but a
BindingDecl.
That means a lot of existing machinery stops working.

rdar://36912381

Differential Revision: https://reviews.llvm.org/D44956

llvm-svn: 328910
clang/include/clang/Analysis/Analyses/LiveVariables.h
clang/lib/Analysis/LiveVariables.cpp
clang/test/Analysis/live-bindings-test.cpp [new file with mode: 0644]