aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-11-05 02:17:33 +0000
committerTed Kremenek <kremenek@apple.com>2009-11-05 02:17:33 +0000
commitb01f06ca72362d527bb65fbf018ac53df575ded1 (patch)
treec11479782e1dd182789f6ca4ae67764f019c49b0
parentad451ccdbf00199b223081552aaf1a798c7a7d3b (diff)
AnalysisManager: Don't rely on PathDiagnosicClients flushing their diagnostics when they are destroyed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86110 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Analysis/PathSensitive/AnalysisManager.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/clang/Analysis/PathSensitive/AnalysisManager.h b/include/clang/Analysis/PathSensitive/AnalysisManager.h
index 1a64f56ee8..488334623b 100644
--- a/include/clang/Analysis/PathSensitive/AnalysisManager.h
+++ b/include/clang/Analysis/PathSensitive/AnalysisManager.h
@@ -66,6 +66,8 @@ public:
VisualizeEGDot(vizdot), VisualizeEGUbi(vizubi), PurgeDead(purge),
EagerlyAssume(eager), TrimGraph(trim) {}
+ ~AnalysisManager() { FlushDiagnostics(); }
+
void ClearContexts() {
LocCtxMgr.clear();
AnaCtxMgr.clear();
@@ -98,6 +100,11 @@ public:
virtual PathDiagnosticClient *getPathDiagnosticClient() {
return PD.get();
}
+
+ void FlushDiagnostics() {
+ if (PD.get())
+ PD->FlushDiagnostics();
+ }
bool shouldVisualizeGraphviz() const { return VisualizeEGDot; }