CFG: Add CFGElement for automatic variables that leave the scope
authorMatthias Gehre <M.Gehre@gmx.de>
Wed, 12 Jul 2017 07:04:19 +0000 (07:04 +0000)
committerMatthias Gehre <M.Gehre@gmx.de>
Wed, 12 Jul 2017 07:04:19 +0000 (07:04 +0000)
commit351c218d15720158b1de0fc3b1d552e5e5f3302a
tree8998245d3df51828137c0c702671240a4ff2e580
parent3a5d082a05845bd396b74c1b90064627a39d6989
CFG: Add CFGElement for automatic variables that leave the scope

Summary:
This mimics the implementation for the implicit destructors. The
generation of this scope leaving elements is hidden behind
a flag to the CFGBuilder, thus it should not affect existing code.

Currently, I'm missing a test (it's implicitly tested by the clang-tidy
lifetime checker that I'm proposing).
I though about a test using debug.DumpCFG, but then I would
have to add an option to StaticAnalyzer/Core/AnalyzerOptions
to enable the scope leaving CFGElement,
which would only be useful to that particular test.

Any other ideas how I could make a test for this feature?

Reviewers: krememek, jordan_rose

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D15031

llvm-svn: 307759
12 files changed:
clang/include/clang/Analysis/AnalysisContext.h
clang/include/clang/Analysis/CFG.h
clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
clang/lib/Analysis/AnalysisDeclContext.cpp
clang/lib/Analysis/CFG.cpp
clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp
clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
clang/test/Analysis/analyzer-config.c
clang/test/Analysis/analyzer-config.cpp
clang/test/Analysis/lifetime-cfg-output.cpp [new file with mode: 0644]