When looking for temporary dtors while building the CFG, do not walk into
authorRichard Smith <richard-llvm@metafoo.co.uk>
Sun, 27 Jul 2014 05:12:49 +0000 (05:12 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Sun, 27 Jul 2014 05:12:49 +0000 (05:12 +0000)
commit4137af286f7f547ee81349da5130e4b155232531
treeee90aa915e221c46e354d86c236ec09ccf33b69e
parentf1b4b8bf798661e5ff7dd91642055dda1175d472
When looking for temporary dtors while building the CFG, do not walk into
lambda expressions (other than their capture initializers) nor blocks. Do walk
into default argument expressions and default initializer expressions.

These bugs were causing us to produce broken CFGs whenever a lambda expression
was used to initialize a libstdc++ std::function object!

llvm-svn: 214050
clang/include/clang/AST/ExprCXX.h
clang/lib/Analysis/CFG.cpp
clang/test/SemaCXX/return-noreturn.cpp