When clang-wpa was restored in r112014, it wasn't added back to the
examples/ Makefile or CMakeLists.txt, so it was never actually built,
and has been busted by API changes since August 2011.
From d8fde24f4450cdbb168aa7b73aa5a7ed2e77d689 Mon Sep 17 00:00:00 2001
From: nobled <[email protected]>
Date: Mon, 20 Feb 2012 17:19:22 +0000
Subject: [PATCH 1/2] examples/clang-wpa: adapt to API changes

When clang-wpa was restored in r112014, it wasn't added back to the
examples/ Makefile or CMakeLists.txt, so it was never actually built,
and has been busted by API changes since August 2011:

- Replacement of registerCheckers() with createCheckerManager() in r137758
- Removal of TransferFuncs from ExprEngine's constructor in r138998
- Removal of the TransferFuncs.h header entirely in r139003
- Rename of Diagnostic -> DiagnosticsEngine in r140478
- Replacement of AnalyzerOpts bool 'PurgeDead' with enum 'AnalysisPurgeOpt'
  in r140838
- Removal of AnalysisManager::getStackFrame() in r142739
---
 examples/wpa/clang-wpa.cpp |   22 +++++++++++-----------
 1 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/examples/wpa/clang-wpa.cpp b/examples/wpa/clang-wpa.cpp
index b1119e1..c6176cf 100644
--- a/examples/wpa/clang-wpa.cpp
+++ b/examples/wpa/clang-wpa.cpp
@@ -17,7 +17,6 @@
 #include "clang/StaticAnalyzer/Frontend/CheckerRegistration.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/TransferFuncs.h"
 #include "clang/StaticAnalyzer/Core/CheckerManager.h"
 #include "clang/StaticAnalyzer/Checkers/LocalCheckers.h"
 #include "clang/Frontend/ASTUnit.h"
@@ -65,7 +64,7 @@ public:
     return AST->getPreprocessor();
   }
 
-  virtual Diagnostic &getDiagnostic() {
+  virtual DiagnosticsEngine &getDiagnostic() {
     return AST->getDiagnostics();
   }
 
@@ -90,7 +89,7 @@ int main(int argc, char **argv) {
     return 0;
 
   DiagnosticOptions DiagOpts;
-  IntrusiveRefCntPtr<Diagnostic> Diags
+  IntrusiveRefCntPtr<DiagnosticsEngine> Diags
     = CompilerInstance::createDiagnostics(DiagOpts, argc, argv);
   for (unsigned i = 0, e = InputFilenames.size(); i != e; ++i) {
     const std::string &InFile = InputFilenames[i];
@@ -155,8 +154,9 @@ int main(int argc, char **argv) {
     Opts.CheckersControlList.push_back(std::make_pair("cocoa", true));
 
   OwningPtr<ento::CheckerManager> checkerMgr;
-  checkerMgr.reset(ento::registerCheckers(Opts, PP.getLangOptions(),
-                                          PP.getDiagnostics()));
+  ArrayRef<std::string> Plugins; // Empty.
+  checkerMgr.reset(ento::createCheckerManager(Opts, PP.getLangOptions(),
+                                              Plugins, PP.getDiagnostics()));
 
   using namespace clang::ento;
   AnalysisManager AMgr(TU->getASTContext(), PP.getDiagnostics(),
@@ -165,17 +165,17 @@ int main(int argc, char **argv) {
                        CreateRangeConstraintManager, checkerMgr.get(), &Idxer,
                        Opts.MaxNodes, Opts.MaxLoop,
                        Opts.VisualizeEGDot, Opts.VisualizeEGUbi,
-                       Opts.PurgeDead, Opts.EagerlyAssume,
+                       Opts.AnalysisPurgeOpt, Opts.EagerlyAssume,
                        Opts.TrimGraph, Opts.InlineCall,
                        Opts.UnoptimizedCFG, Opts.CFGAddImplicitDtors,
                        Opts.CFGAddInitializers,
                        Opts.EagerlyTrimEGraph);
 
-  TransferFuncs* TF = MakeCFRefCountTF(AMgr.getASTContext(), /*GC*/false,
-                                         AMgr.getLangOptions());
-  ExprEngine Eng(AMgr, TF);
+  ExprEngine Eng(AMgr, /*GC*/false);
+
+  AnalysisDeclContextManager &ADCM = AMgr.getAnalysisDeclContextManager();
+
+  Eng.ExecuteWorkList(ADCM.getStackFrame(FD, TU), AMgr.getMaxNodes());
 
-  Eng.ExecuteWorkList(AMgr.getStackFrame(FD, TU), AMgr.getMaxNodes());
-  
   return 0;
 }
-- 
1.7.4.1

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to