]> granicus.if.org Git - clang/commitdiff
Rename AnalysisContext to AnalysisDeclContext. Not only is this name more accurate...
authorTed Kremenek <kremenek@apple.com>
Mon, 24 Oct 2011 01:32:45 +0000 (01:32 +0000)
committerTed Kremenek <kremenek@apple.com>
Mon, 24 Oct 2011 01:32:45 +0000 (01:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142782 91177308-0d34-0410-b5e6-96231b3b80d8

38 files changed:
include/clang/Analysis/Analyses/LiveVariables.h
include/clang/Analysis/Analyses/PostOrderCFGView.h
include/clang/Analysis/Analyses/ReachableCode.h
include/clang/Analysis/Analyses/ThreadSafety.h
include/clang/Analysis/Analyses/UninitializedValues.h
include/clang/Analysis/AnalysisContext.h
include/clang/Analysis/ProgramPoint.h
include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
lib/Analysis/AnalysisContext.cpp
lib/Analysis/CMakeLists.txt
lib/Analysis/LiveVariables.cpp
lib/Analysis/PostOrderCFGView.cpp
lib/Analysis/ReachableCode.cpp
lib/Analysis/ThreadSafety.cpp
lib/Analysis/UninitializedValues.cpp
lib/Sema/AnalysisBasedWarnings.cpp
lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp
lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp
lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp
lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp
lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp
lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp
lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp
lib/StaticAnalyzer/Core/AnalysisManager.cpp
lib/StaticAnalyzer/Core/CoreEngine.cpp
lib/StaticAnalyzer/Core/ExprEngine.cpp
lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
lib/StaticAnalyzer/Core/MemRegion.cpp
lib/StaticAnalyzer/Core/PathDiagnostic.cpp
lib/StaticAnalyzer/Core/SValBuilder.cpp
lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
test/Analysis/inline3.c
test/SemaCXX/missing-header.cpp

index 302ae1c41f95bb05a1af1dd180617e7c04616762..42e56b26e028ccb55cb17476ae26df0a5756397f 100644 (file)
@@ -70,7 +70,7 @@ public:
   virtual ~LiveVariables();
   
   /// Compute the liveness information for a given CFG.
-  static LiveVariables *computeLiveness(AnalysisContext &analysisContext,
+  static LiveVariables *computeLiveness(AnalysisDeclContext &analysisContext,
                                         bool killAtAssign);
   
   /// Return true if a variable is live at the end of a
@@ -93,7 +93,7 @@ public:
 
   void runOnAllBlocks(Observer &obs);
   
-  static LiveVariables *create(AnalysisContext &analysisContext) {
+  static LiveVariables *create(AnalysisDeclContext &analysisContext) {
     return computeLiveness(analysisContext, true);
   }
   
@@ -106,7 +106,7 @@ private:
   
 class RelaxedLiveVariables : public LiveVariables {
 public:
-  static LiveVariables *create(AnalysisContext &analysisContext) {
+  static LiveVariables *create(AnalysisDeclContext &analysisContext) {
     return computeLiveness(analysisContext, false);
   }
   
index 089134331274f1ef3e4c963d1f5580303876bf38..6c7eaf90144087a728f353cf0c6679d9efae1fcc 100644 (file)
@@ -101,7 +101,7 @@ public:
   // Used by AnalyisContext to construct this object.
   static const void *getTag();
 
-  static PostOrderCFGView *create(AnalysisContext &analysisContext);
+  static PostOrderCFGView *create(AnalysisDeclContext &analysisContext);
 };
   
 } // end clang namespace
index 6cf7fa42ff45e6ae33d419451345fffd76714401..a5dba6eefe233714d414b022d1dcad78c2e9a387 100644 (file)
@@ -25,7 +25,7 @@ namespace llvm {
 }
 
 namespace clang {
-  class AnalysisContext;
+  class AnalysisDeclContext;
   class CFGBlock;
 }
 
@@ -48,7 +48,7 @@ public:
 unsigned ScanReachableFromBlock(const CFGBlock *Start,
                                 llvm::BitVector &Reachable);
 
-void FindUnreachableCode(AnalysisContext &AC, Callback &CB);
+void FindUnreachableCode(AnalysisDeclContext &AC, Callback &CB);
 
 }} // end namespace clang::reachable_code
 
index 72a7ebb83afac522db85b55a2bb84cf809672a22..b2e71bca7312797d3006600279d855799b8ae675 100644 (file)
@@ -143,7 +143,7 @@ public:
 /// We traverse the blocks in the CFG, compute the set of mutexes that are held
 /// at the end of each block, and issue warnings for thread safety violations.
 /// Each block in the CFG is traversed exactly once.
-void runThreadSafetyAnalysis(AnalysisContext &AC, ThreadSafetyHandler &Handler);
+void runThreadSafetyAnalysis(AnalysisDeclContext &AC, ThreadSafetyHandler &Handler);
 
 /// \brief Helper function that returns a LockKind required for the given level
 /// of access.
index e2e4f35043eec209e96e0b38a12d9a9ee04edbdb..de057eb4bfea0d5905a0b1916db8d5e3f6129f43 100644 (file)
@@ -17,7 +17,7 @@
 
 namespace clang {
 
-class AnalysisContext;
+class AnalysisDeclContext;
 class CFG;  
 class DeclContext;
 class Expr;
@@ -45,7 +45,7 @@ struct UninitVariablesAnalysisStats {
 };
 
 void runUninitializedVariablesAnalysis(const DeclContext &dc, const CFG &cfg,
-                                       AnalysisContext &ac,
+                                       AnalysisDeclContext &ac,
                                        UninitVariablesHandler &handler,
                                        UninitVariablesAnalysisStats &stats);
 
index e769f7f8cf5ac6047de28e85a6559187124c1cdf..1c7f0755129dcd7ba2700a7ee777e519f5fa779c 100644 (file)
@@ -7,7 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 //
-// This file defines AnalysisContext, a class that manages the analysis context
+// This file defines AnalysisDeclContext, a class that manages the analysis context
 // data for path sensitive analysis.
 //
 //===----------------------------------------------------------------------===//
@@ -38,13 +38,13 @@ class PseudoConstantAnalysis;
 class ImplicitParamDecl;
 class LocationContextManager;
 class StackFrameContext;
-class AnalysisContextManager;
+class AnalysisDeclContextManager;
 class LocationContext;  
 
 namespace idx { class TranslationUnit; }
 
 /// The base class of a hierarchy of objects representing analyses tied
-/// to AnalysisContext.
+/// to AnalysisDeclContext.
 class ManagedAnalysis {
 protected:
   ManagedAnalysis() {}
@@ -58,18 +58,18 @@ public:
   // Which returns a fixed pointer address to distinguish classes of
   // analysis objects.  They also need to implement:
   //
-  //  static [Derived*] create(AnalysisContext &Ctx);
+  //  static [Derived*] create(AnalysisDeclContext &Ctx);
   //
-  // which creates the analysis object given an AnalysisContext.
+  // which creates the analysis object given an AnalysisDeclContext.
 };
   
   
-/// AnalysisContext contains the context data for the function or method under
+/// AnalysisDeclContext contains the context data for the function or method under
 /// analysis.
-class AnalysisContext {
-  /// Backpoint to the AnalysisManager object that created this AnalysisContext.
+class AnalysisDeclContext {
+  /// Backpoint to the AnalysisManager object that created this AnalysisDeclContext.
   /// This may be null.
-  AnalysisContextManager *Manager;
+  AnalysisDeclContextManager *Manager;
   
   const Decl *D;
 
@@ -98,16 +98,16 @@ class AnalysisContext {
   void *ManagedAnalyses;
 
 public:
-  AnalysisContext(AnalysisContextManager *Mgr,
+  AnalysisDeclContext(AnalysisDeclContextManager *Mgr,
                   const Decl *D,
                   idx::TranslationUnit *TU);
 
-  AnalysisContext(AnalysisContextManager *Mgr,
+  AnalysisDeclContext(AnalysisDeclContextManager *Mgr,
                   const Decl *D,
                   idx::TranslationUnit *TU,
                   const CFG::BuildOptions &BuildOptions);
 
-  ~AnalysisContext();
+  ~AnalysisDeclContext();
 
   ASTContext &getASTContext() { return D->getASTContext(); }
   const Decl *getDecl() const { return D; }
@@ -163,7 +163,7 @@ public:
     getReferencedBlockVars(const BlockDecl *BD);
 
   /// Return the ImplicitParamDecl* associated with 'self' if this
-  /// AnalysisContext wraps an ObjCMethodDecl.  Returns NULL otherwise.
+  /// AnalysisDeclContext wraps an ObjCMethodDecl.  Returns NULL otherwise.
   const ImplicitParamDecl *getSelfDecl() const;
   
   const StackFrameContext *getStackFrame(LocationContext const *Parent,
@@ -195,13 +195,13 @@ public:
 private:
   ContextKind Kind;
 
-  // AnalysisContext can't be const since some methods may modify its member.
-  AnalysisContext *Ctx;
+  // AnalysisDeclContext can't be const since some methods may modify its member.
+  AnalysisDeclContext *Ctx;
 
   const LocationContext *Parent;
 
 protected:
-  LocationContext(ContextKind k, AnalysisContext *ctx,
+  LocationContext(ContextKind k, AnalysisDeclContext *ctx,
                   const LocationContext *parent)
     : Kind(k), Ctx(ctx), Parent(parent) {}
 
@@ -210,7 +210,7 @@ public:
 
   ContextKind getKind() const { return Kind; }
 
-  AnalysisContext *getAnalysisContext() const { return Ctx; }
+  AnalysisDeclContext *getAnalysisDeclContext() const { return Ctx; }
 
   idx::TranslationUnit *getTranslationUnit() const { 
     return Ctx->getTranslationUnit(); 
@@ -220,17 +220,17 @@ public:
 
   bool isParentOf(const LocationContext *LC) const;
 
-  const Decl *getDecl() const { return getAnalysisContext()->getDecl(); }
+  const Decl *getDecl() const { return getAnalysisDeclContext()->getDecl(); }
 
-  CFG *getCFG() const { return getAnalysisContext()->getCFG(); }
+  CFG *getCFG() const { return getAnalysisDeclContext()->getCFG(); }
 
   template <typename T>
   T *getAnalysis() const {
-    return getAnalysisContext()->getAnalysis<T>();
+    return getAnalysisDeclContext()->getAnalysis<T>();
   }
 
   ParentMap &getParentMap() const {
-    return getAnalysisContext()->getParentMap();
+    return getAnalysisDeclContext()->getParentMap();
   }
 
   const ImplicitParamDecl *getSelfDecl() const {
@@ -248,7 +248,7 @@ public:
 public:
   static void ProfileCommon(llvm::FoldingSetNodeID &ID,
                             ContextKind ck,
-                            AnalysisContext *ctx,
+                            AnalysisDeclContext *ctx,
                             const LocationContext *parent,
                             const void *data);
 };
@@ -264,7 +264,7 @@ class StackFrameContext : public LocationContext {
   unsigned Index;
 
   friend class LocationContextManager;
-  StackFrameContext(AnalysisContext *ctx, const LocationContext *parent,
+  StackFrameContext(AnalysisDeclContext *ctx, const LocationContext *parent,
                     const Stmt *s, const CFGBlock *blk, 
                     unsigned idx)
     : LocationContext(StackFrame, ctx, parent), CallSite(s),
@@ -281,7 +281,7 @@ public:
 
   void Profile(llvm::FoldingSetNodeID &ID);
 
-  static void Profile(llvm::FoldingSetNodeID &ID, AnalysisContext *ctx,
+  static void Profile(llvm::FoldingSetNodeID &ID, AnalysisDeclContext *ctx,
                       const LocationContext *parent, const Stmt *s,
                       const CFGBlock *blk, unsigned idx) {
     ProfileCommon(ID, StackFrame, ctx, parent, s);
@@ -298,7 +298,7 @@ class ScopeContext : public LocationContext {
   const Stmt *Enter;
 
   friend class LocationContextManager;
-  ScopeContext(AnalysisContext *ctx, const LocationContext *parent,
+  ScopeContext(AnalysisDeclContext *ctx, const LocationContext *parent,
                const Stmt *s)
     : LocationContext(Scope, ctx, parent), Enter(s) {}
 
@@ -307,7 +307,7 @@ public:
 
   void Profile(llvm::FoldingSetNodeID &ID);
 
-  static void Profile(llvm::FoldingSetNodeID &ID, AnalysisContext *ctx,
+  static void Profile(llvm::FoldingSetNodeID &ID, AnalysisDeclContext *ctx,
                       const LocationContext *parent, const Stmt *s) {
     ProfileCommon(ID, Scope, ctx, parent, s);
   }
@@ -324,7 +324,7 @@ class BlockInvocationContext : public LocationContext {
 
   friend class LocationContextManager;
 
-  BlockInvocationContext(AnalysisContext *ctx, const LocationContext *parent,
+  BlockInvocationContext(AnalysisDeclContext *ctx, const LocationContext *parent,
                          const BlockDecl *bd)
     : LocationContext(Block, ctx, parent), BD(bd) {}
 
@@ -335,7 +335,7 @@ public:
 
   void Profile(llvm::FoldingSetNodeID &ID);
 
-  static void Profile(llvm::FoldingSetNodeID &ID, AnalysisContext *ctx,
+  static void Profile(llvm::FoldingSetNodeID &ID, AnalysisDeclContext *ctx,
                       const LocationContext *parent, const BlockDecl *bd) {
     ProfileCommon(ID, Block, ctx, parent, bd);
   }
@@ -350,12 +350,12 @@ class LocationContextManager {
 public:
   ~LocationContextManager();
 
-  const StackFrameContext *getStackFrame(AnalysisContext *ctx,
+  const StackFrameContext *getStackFrame(AnalysisDeclContext *ctx,
                                          const LocationContext *parent,
                                          const Stmt *s,
                                          const CFGBlock *blk, unsigned idx);
 
-  const ScopeContext *getScope(AnalysisContext *ctx,
+  const ScopeContext *getScope(AnalysisDeclContext *ctx,
                                const LocationContext *parent,
                                const Stmt *s);
 
@@ -363,26 +363,26 @@ public:
   void clear();
 private:
   template <typename LOC, typename DATA>
-  const LOC *getLocationContext(AnalysisContext *ctx,
+  const LOC *getLocationContext(AnalysisDeclContext *ctx,
                                 const LocationContext *parent,
                                 const DATA *d);
 };
 
-class AnalysisContextManager {
-  typedef llvm::DenseMap<const Decl*, AnalysisContext*> ContextMap;
+class AnalysisDeclContextManager {
+  typedef llvm::DenseMap<const Decl*, AnalysisDeclContext*> ContextMap;
   
   ContextMap Contexts;
   LocationContextManager LocContexts;
   CFG::BuildOptions cfgBuildOptions;
   
 public:
-  AnalysisContextManager(bool useUnoptimizedCFG = false,
+  AnalysisDeclContextManager(bool useUnoptimizedCFG = false,
                          bool addImplicitDtors = false,
                          bool addInitializers = false);
   
-  ~AnalysisContextManager();
+  ~AnalysisDeclContextManager();
   
-  AnalysisContext *getContext(const Decl *D, idx::TranslationUnit *TU = 0);
+  AnalysisDeclContext *getContext(const Decl *D, idx::TranslationUnit *TU = 0);
   
   bool getUseUnoptimizedCFG() const {
     return !cfgBuildOptions.PruneTriviallyFalseEdges;
@@ -392,7 +392,7 @@ public:
     return cfgBuildOptions;
   }
   
-  const StackFrameContext *getStackFrame(AnalysisContext *Ctx,
+  const StackFrameContext *getStackFrame(AnalysisDeclContext *Ctx,
                                          LocationContext const *Parent,
                                          const Stmt *S,
                                          const CFGBlock *Blk,
@@ -416,11 +416,11 @@ public:
   }
 
   
-  /// Discard all previously created AnalysisContexts.
+  /// Discard all previously created AnalysisDeclContexts.
   void clear();
 
 private:
-  friend class AnalysisContext;
+  friend class AnalysisDeclContext;
 
   LocationContextManager &getLocationContextManager() {
     return LocContexts;
index 7ec4ecd41b2b73ad783cb60225dea3900a52335e..78a4f8928ba32f602bf28d60779e5b1c7308b26c 100644 (file)
@@ -28,7 +28,7 @@
 
 namespace clang {
 
-class AnalysisContext;
+class AnalysisDeclContext;
 class FunctionDecl;
 class LocationContext;
 class ProgramPointTag;
index 406be3cc4bd4be6041bbc51632b48d9c7c538244..5a004746b78e5974619e74b6038f98f8c4464c0d 100644 (file)
@@ -24,7 +24,7 @@
 
 namespace clang {
 
-class AnalysisContext;
+class AnalysisDeclContext;
 class BinaryOperator;
 class CompoundStmt;
 class Decl;
@@ -89,8 +89,8 @@ public:
   PathDiagnosticRange() : isPoint(false) {}
 };
 
-typedef llvm::PointerUnion<const LocationContext*, AnalysisContext*>
-                                                   LocationOrAnalysisContext;
+typedef llvm::PointerUnion<const LocationContext*, AnalysisDeclContext*>
+                                                   LocationOrAnalysisDeclContext;
 
 class PathDiagnosticLocation {
 private:
@@ -111,10 +111,10 @@ private:
 
   FullSourceLoc
     genLocation(SourceLocation L = SourceLocation(),
-                LocationOrAnalysisContext LAC = (AnalysisContext*)0) const;
+                LocationOrAnalysisDeclContext LAC = (AnalysisDeclContext*)0) const;
 
   PathDiagnosticRange
-    genRange(LocationOrAnalysisContext LAC = (AnalysisContext*)0) const;
+    genRange(LocationOrAnalysisDeclContext LAC = (AnalysisDeclContext*)0) const;
 
 public:
   /// Create an invalid location.
@@ -124,7 +124,7 @@ public:
   /// Create a location corresponding to the given statement.
   PathDiagnosticLocation(const Stmt *s,
                          const SourceManager &sm,
-                         LocationOrAnalysisContext lac)
+                         LocationOrAnalysisDeclContext lac)
     : K(StmtK), S(s), D(0), SM(&sm),
       Loc(genLocation(SourceLocation(), lac)),
       Range(genRange(lac)) {
@@ -153,7 +153,7 @@ public:
   /// Create a location for the beginning of the statement.
   static PathDiagnosticLocation createBegin(const Stmt *S,
                                             const SourceManager &SM,
-                                            const LocationOrAnalysisContext LAC);
+                                            const LocationOrAnalysisDeclContext LAC);
 
   /// Create the location for the operator of the binary expression.
   /// Assumes the statement has a valid location.
index 2af16d96e3109b90c63232ba87f56030633ff8ad..e6af93fbd1a025f321152c4781406ca04eb51ab1 100644 (file)
@@ -31,7 +31,7 @@ namespace ento {
   class CheckerManager;
 
 class AnalysisManager : public BugReporterData {
-  AnalysisContextManager AnaCtxMgr;
+  AnalysisDeclContextManager AnaCtxMgr;
 
   ASTContext &Ctx;
   DiagnosticsEngine &Diags;
@@ -99,7 +99,7 @@ public:
     AnaCtxMgr.clear();
   }
   
-  AnalysisContextManager& getAnalysisContextManager() {
+  AnalysisDeclContextManager& getAnalysisDeclContextManager() {
     return AnaCtxMgr;
   }
 
@@ -164,7 +164,7 @@ public:
 
   bool hasIndexer() const { return Idxer != 0; }
 
-  AnalysisContext *getAnalysisContextInAnotherTU(const Decl *D);
+  AnalysisDeclContext *getAnalysisDeclContextInAnotherTU(const Decl *D);
 
   CFG *getCFG(Decl const *D) {
     return AnaCtxMgr.getContext(D)->getCFG();
@@ -179,11 +179,11 @@ public:
     return AnaCtxMgr.getContext(D)->getParentMap();
   }
 
-  AnalysisContext *getAnalysisContext(const Decl *D) {
+  AnalysisDeclContext *getAnalysisDeclContext(const Decl *D) {
     return AnaCtxMgr.getContext(D);
   }
 
-  AnalysisContext *getAnalysisContext(const Decl *D, idx::TranslationUnit *TU) {
+  AnalysisDeclContext *getAnalysisDeclContext(const Decl *D, idx::TranslationUnit *TU) {
     return AnaCtxMgr.getContext(D, TU);
   }
 
index 55ba42c737e39273d1f2fed7964395e46514a2a4..ad587ae928d445c1c850c51a757632b88ad2c8fd 100644 (file)
@@ -147,8 +147,8 @@ public:
     Eng.getBugReporter().EmitReport(R);
   }
 
-  AnalysisContext *getCurrentAnalysisContext() const {
-    return Pred->getLocationContext()->getAnalysisContext();
+  AnalysisDeclContext *getCurrentAnalysisDeclContext() const {
+    return Pred->getLocationContext()->getAnalysisDeclContext();
   }
 
 private:
index 6aec0d641f198d283b7b6f92a83d2f9a6868586b..07b2cedbd00703330159ec42a45ef08ff7924094 100644 (file)
@@ -28,7 +28,7 @@
 
 namespace clang {
 
-class AnalysisContextManager;
+class AnalysisDeclContextManager;
 class ObjCForCollectionStmt;
   
 namespace ento {
@@ -40,7 +40,7 @@ class ObjCMessage;
 class ExprEngine : public SubEngine {
   AnalysisManager &AMgr;
   
-  AnalysisContextManager &AnalysisContexts;
+  AnalysisDeclContextManager &AnalysisDeclContexts;
 
   CoreEngine Engine;
 
index c9941fe90c24c2fa01e2efd5ba26c1f8429ef837..ced75982b706bb0edd3f448e40a2b78a9b38ae79 100644 (file)
@@ -448,11 +448,11 @@ class BlockTextRegion : public CodeTextRegion {
   friend class MemRegionManager;
 
   const BlockDecl *BD;
-  AnalysisContext *AC;
+  AnalysisDeclContext *AC;
   CanQualType locTy;
 
   BlockTextRegion(const BlockDecl *bd, CanQualType lTy,
-                  AnalysisContext *ac, const MemRegion* sreg)
+                  AnalysisDeclContext *ac, const MemRegion* sreg)
     : CodeTextRegion(sreg, BlockTextRegionKind), BD(bd), AC(ac), locTy(lTy) {}
 
 public:
@@ -464,14 +464,14 @@ public:
     return BD;
   }
 
-  AnalysisContext *getAnalysisContext() const { return AC; }
+  AnalysisDeclContext *getAnalysisDeclContext() const { return AC; }
     
   virtual void dumpToStream(raw_ostream &os) const;
   
   void Profile(llvm::FoldingSetNodeID& ID) const;
   
   static void ProfileRegion(llvm::FoldingSetNodeID& ID, const BlockDecl *BD,
-                            CanQualType, const AnalysisContext*,
+                            CanQualType, const AnalysisDeclContext*,
                             const MemRegion*);
   
   static bool classof(const MemRegion* R) {
@@ -1038,7 +1038,7 @@ public:
   const FunctionTextRegion *getFunctionTextRegion(const FunctionDecl *FD);
   const BlockTextRegion *getBlockTextRegion(const BlockDecl *BD,
                                             CanQualType locTy,
-                                            AnalysisContext *AC);
+                                            AnalysisDeclContext *AC);
   
   /// getBlockDataRegion - Get the memory region associated with an instance
   ///  of a block.  Unlike many other MemRegions, the LocationContext*
index 424917eba9124ba7843fa5ceee7c3933bc7eb0ca..680f2c405060da1e7fa6028cf779e6b0e25db960 100644 (file)
@@ -1,4 +1,4 @@
-//== AnalysisContext.cpp - Analysis context for Path Sens analysis -*- C++ -*-//
+//== AnalysisDeclContext.cpp - Analysis context for Path Sens analysis -*- C++ -*-//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -7,7 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 //
-// This file defines AnalysisContext, a class that manages the analysis context
+// This file defines AnalysisDeclContext, a class that manages the analysis context
 // data for path sensitive analysis.
 //
 //===----------------------------------------------------------------------===//
@@ -32,7 +32,7 @@ using namespace clang;
 
 typedef llvm::DenseMap<const void *, ManagedAnalysis *> ManagedAnalysisMap;
 
-AnalysisContext::AnalysisContext(AnalysisContextManager *Mgr,
+AnalysisDeclContext::AnalysisDeclContext(AnalysisDeclContextManager *Mgr,
                                  const Decl *d,
                                  idx::TranslationUnit *tu,
                                  const CFG::BuildOptions &buildOptions)
@@ -49,7 +49,7 @@ AnalysisContext::AnalysisContext(AnalysisContextManager *Mgr,
   cfgBuildOptions.forcedBlkExprs = &forcedBlkExprs;
 }
 
-AnalysisContext::AnalysisContext(AnalysisContextManager *Mgr,
+AnalysisDeclContext::AnalysisDeclContext(AnalysisDeclContextManager *Mgr,
                                  const Decl *d,
                                  idx::TranslationUnit *tu)
 : Manager(Mgr),
@@ -64,7 +64,7 @@ AnalysisContext::AnalysisContext(AnalysisContextManager *Mgr,
   cfgBuildOptions.forcedBlkExprs = &forcedBlkExprs;
 }
 
-AnalysisContextManager::AnalysisContextManager(bool useUnoptimizedCFG,
+AnalysisDeclContextManager::AnalysisDeclContextManager(bool useUnoptimizedCFG,
                                                bool addImplicitDtors,
                                                bool addInitializers) {
   cfgBuildOptions.PruneTriviallyFalseEdges = !useUnoptimizedCFG;
@@ -72,13 +72,13 @@ AnalysisContextManager::AnalysisContextManager(bool useUnoptimizedCFG,
   cfgBuildOptions.AddInitializers = addInitializers;
 }
 
-void AnalysisContextManager::clear() {
+void AnalysisDeclContextManager::clear() {
   for (ContextMap::iterator I = Contexts.begin(), E = Contexts.end(); I!=E; ++I)
     delete I->second;
   Contexts.clear();
 }
 
-Stmt *AnalysisContext::getBody() const {
+Stmt *AnalysisDeclContext::getBody() const {
   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
     return FD->getBody();
   else if (const ObjCMethodDecl *MD = dyn_cast<ObjCMethodDecl>(D))
@@ -92,14 +92,14 @@ Stmt *AnalysisContext::getBody() const {
   llvm_unreachable("unknown code decl");
 }
 
-const ImplicitParamDecl *AnalysisContext::getSelfDecl() const {
+const ImplicitParamDecl *AnalysisDeclContext::getSelfDecl() const {
   if (const ObjCMethodDecl *MD = dyn_cast<ObjCMethodDecl>(D))
     return MD->getSelfDecl();
 
   return NULL;
 }
 
-void AnalysisContext::registerForcedBlockExpression(const Stmt *stmt) {
+void AnalysisDeclContext::registerForcedBlockExpression(const Stmt *stmt) {
   if (!forcedBlkExprs)
     forcedBlkExprs = new CFG::BuildOptions::ForcedBlkExprs();
   // Default construct an entry for 'stmt'.
@@ -109,7 +109,7 @@ void AnalysisContext::registerForcedBlockExpression(const Stmt *stmt) {
 }
 
 const CFGBlock *
-AnalysisContext::getBlockForRegisteredExpression(const Stmt *stmt) {
+AnalysisDeclContext::getBlockForRegisteredExpression(const Stmt *stmt) {
   assert(forcedBlkExprs);
   if (const Expr *e = dyn_cast<Expr>(stmt))
     stmt = e->IgnoreParens();
@@ -119,7 +119,7 @@ AnalysisContext::getBlockForRegisteredExpression(const Stmt *stmt) {
   return itr->second;
 }
 
-CFG *AnalysisContext::getCFG() {
+CFG *AnalysisDeclContext::getCFG() {
   if (!cfgBuildOptions.PruneTriviallyFalseEdges)
     return getUnoptimizedCFG();
 
@@ -133,7 +133,7 @@ CFG *AnalysisContext::getCFG() {
   return cfg.get();
 }
 
-CFG *AnalysisContext::getUnoptimizedCFG() {
+CFG *AnalysisDeclContext::getUnoptimizedCFG() {
   if (!builtCompleteCFG) {
     SaveAndRestore<bool> NotPrune(cfgBuildOptions.PruneTriviallyFalseEdges,
                                   false);
@@ -146,7 +146,7 @@ CFG *AnalysisContext::getUnoptimizedCFG() {
   return completeCFG.get();
 }
 
-CFGStmtMap *AnalysisContext::getCFGStmtMap() {
+CFGStmtMap *AnalysisDeclContext::getCFGStmtMap() {
   if (cfgStmtMap)
     return cfgStmtMap.get();
   
@@ -158,7 +158,7 @@ CFGStmtMap *AnalysisContext::getCFGStmtMap() {
   return 0;
 }
 
-CFGReverseBlockReachabilityAnalysis *AnalysisContext::getCFGReachablityAnalysis() {
+CFGReverseBlockReachabilityAnalysis *AnalysisDeclContext::getCFGReachablityAnalysis() {
   if (CFA)
     return CFA.get();
   
@@ -170,39 +170,39 @@ CFGReverseBlockReachabilityAnalysis *AnalysisContext::getCFGReachablityAnalysis(
   return 0;
 }
 
-void AnalysisContext::dumpCFG() {
+void AnalysisDeclContext::dumpCFG() {
     getCFG()->dump(getASTContext().getLangOptions());
 }
 
-ParentMap &AnalysisContext::getParentMap() {
+ParentMap &AnalysisDeclContext::getParentMap() {
   if (!PM)
     PM.reset(new ParentMap(getBody()));
   return *PM;
 }
 
-PseudoConstantAnalysis *AnalysisContext::getPseudoConstantAnalysis() {
+PseudoConstantAnalysis *AnalysisDeclContext::getPseudoConstantAnalysis() {
   if (!PCA)
     PCA.reset(new PseudoConstantAnalysis(getBody()));
   return PCA.get();
 }
 
-AnalysisContext *AnalysisContextManager::getContext(const Decl *D,
+AnalysisDeclContext *AnalysisDeclContextManager::getContext(const Decl *D,
                                                     idx::TranslationUnit *TU) {
-  AnalysisContext *&AC = Contexts[D];
+  AnalysisDeclContext *&AC = Contexts[D];
   if (!AC)
-    AC = new AnalysisContext(this, D, TU, cfgBuildOptions);
+    AC = new AnalysisDeclContext(this, D, TU, cfgBuildOptions);
   return AC;
 }
 
 const StackFrameContext *
-AnalysisContext::getStackFrame(LocationContext const *Parent, const Stmt *S,
+AnalysisDeclContext::getStackFrame(LocationContext const *Parent, const Stmt *S,
                                const CFGBlock *Blk, unsigned Idx) {
   return getLocationContextManager().getStackFrame(this, Parent, S, Blk, Idx);
 }
 
-LocationContextManager & AnalysisContext::getLocationContextManager() {
+LocationContextManager & AnalysisDeclContext::getLocationContextManager() {
   assert(Manager &&
-         "Cannot create LocationContexts without an AnalysisContextManager!");
+         "Cannot create LocationContexts without an AnalysisDeclContextManager!");
   return Manager->getLocationContextManager();  
 }
 
@@ -212,7 +212,7 @@ LocationContextManager & AnalysisContext::getLocationContextManager() {
 
 void LocationContext::ProfileCommon(llvm::FoldingSetNodeID &ID,
                                     ContextKind ck,
-                                    AnalysisContext *ctx,
+                                    AnalysisDeclContext *ctx,
                                     const LocationContext *parent,
                                     const void *data) {
   ID.AddInteger(ck);
@@ -222,15 +222,15 @@ void LocationContext::ProfileCommon(llvm::FoldingSetNodeID &ID,
 }
 
 void StackFrameContext::Profile(llvm::FoldingSetNodeID &ID) {
-  Profile(ID, getAnalysisContext(), getParent(), CallSite, Block, Index);
+  Profile(ID, getAnalysisDeclContext(), getParent(), CallSite, Block, Index);
 }
 
 void ScopeContext::Profile(llvm::FoldingSetNodeID &ID) {
-  Profile(ID, getAnalysisContext(), getParent(), Enter);
+  Profile(ID, getAnalysisDeclContext(), getParent(), Enter);
 }
 
 void BlockInvocationContext::Profile(llvm::FoldingSetNodeID &ID) {
-  Profile(ID, getAnalysisContext(), getParent(), BD);
+  Profile(ID, getAnalysisDeclContext(), getParent(), BD);
 }
 
 //===----------------------------------------------------------------------===//
@@ -239,7 +239,7 @@ void BlockInvocationContext::Profile(llvm::FoldingSetNodeID &ID) {
 
 template <typename LOC, typename DATA>
 const LOC*
-LocationContextManager::getLocationContext(AnalysisContext *ctx,
+LocationContextManager::getLocationContext(AnalysisDeclContext *ctx,
                                            const LocationContext *parent,
                                            const DATA *d) {
   llvm::FoldingSetNodeID ID;
@@ -256,7 +256,7 @@ LocationContextManager::getLocationContext(AnalysisContext *ctx,
 }
 
 const StackFrameContext*
-LocationContextManager::getStackFrame(AnalysisContext *ctx,
+LocationContextManager::getStackFrame(AnalysisDeclContext *ctx,
                                       const LocationContext *parent,
                                       const Stmt *s,
                                       const CFGBlock *blk, unsigned idx) {
@@ -273,7 +273,7 @@ LocationContextManager::getStackFrame(AnalysisContext *ctx,
 }
 
 const ScopeContext *
-LocationContextManager::getScope(AnalysisContext *ctx,
+LocationContextManager::getScope(AnalysisDeclContext *ctx,
                                  const LocationContext *parent,
                                  const Stmt *s) {
   return getLocationContext<ScopeContext, Stmt>(ctx, parent, s);
@@ -395,9 +395,9 @@ static DeclVec* LazyInitializeReferencedDecls(const BlockDecl *BD,
   return BV;
 }
 
-std::pair<AnalysisContext::referenced_decls_iterator,
-          AnalysisContext::referenced_decls_iterator>
-AnalysisContext::getReferencedBlockVars(const BlockDecl *BD) {
+std::pair<AnalysisDeclContext::referenced_decls_iterator,
+          AnalysisDeclContext::referenced_decls_iterator>
+AnalysisDeclContext::getReferencedBlockVars(const BlockDecl *BD) {
   if (!ReferencedBlockVars)
     ReferencedBlockVars = new llvm::DenseMap<const BlockDecl*,void*>();
 
@@ -405,7 +405,7 @@ AnalysisContext::getReferencedBlockVars(const BlockDecl *BD) {
   return std::make_pair(V->begin(), V->end());
 }
 
-ManagedAnalysis *&AnalysisContext::getAnalysisImpl(const void *tag) {
+ManagedAnalysis *&AnalysisDeclContext::getAnalysisImpl(const void *tag) {
   if (!ManagedAnalyses)
     ManagedAnalyses = new ManagedAnalysisMap();
   ManagedAnalysisMap *M = (ManagedAnalysisMap*) ManagedAnalyses;
@@ -418,7 +418,7 @@ ManagedAnalysis *&AnalysisContext::getAnalysisImpl(const void *tag) {
 
 ManagedAnalysis::~ManagedAnalysis() {}
 
-AnalysisContext::~AnalysisContext() {
+AnalysisDeclContext::~AnalysisDeclContext() {
   delete forcedBlkExprs;
   delete ReferencedBlockVars;
   // Release the managed analyses.
@@ -430,7 +430,7 @@ AnalysisContext::~AnalysisContext() {
   }
 }
 
-AnalysisContextManager::~AnalysisContextManager() {
+AnalysisDeclContextManager::~AnalysisDeclContextManager() {
   for (ContextMap::iterator I = Contexts.begin(), E = Contexts.end(); I!=E; ++I)
     delete I->second;
 }
index e4b7ab8c94de0bc28c6b69783aaa7dc3c0c6e7fa..7ad14c41eb113534d1c3233cd8be7de897865dda 100644 (file)
@@ -1,7 +1,7 @@
 set(LLVM_USED_LIBS clangBasic clangAST clangIndex)
 
 add_clang_library(clangAnalysis
-  AnalysisContext.cpp
+  AnalysisDeclContext.cpp
   CFG.cpp
   CFGReachabilityAnalysis.cpp
   CFGStmtMap.cpp
index c0912b02272e5414b3dbaf56494377de810b5852..194c03cd0a0802724d353e5e3c82737ee89fc046 100644 (file)
@@ -22,7 +22,7 @@ class DataflowWorklist {
   llvm::BitVector enqueuedBlocks;
   PostOrderCFGView *POV;
 public:
-  DataflowWorklist(const CFG &cfg, AnalysisContext &Ctx)
+  DataflowWorklist(const CFG &cfg, AnalysisDeclContext &Ctx)
     : enqueuedBlocks(cfg.getNumBlockIDs()),
       POV(Ctx.getAnalysis<PostOrderCFGView>()) {}
   
@@ -86,7 +86,7 @@ const CFGBlock *DataflowWorklist::dequeue() {
 namespace {
 class LiveVariablesImpl {
 public:  
-  AnalysisContext &analysisContext;
+  AnalysisDeclContext &analysisContext;
   std::vector<LiveVariables::LivenessValues> cfgBlockValues;
   llvm::ImmutableSet<const Stmt *>::Factory SSetFact;
   llvm::ImmutableSet<const VarDecl *>::Factory DSetFact;
@@ -106,7 +106,7 @@ public:
 
   void dumpBlockLiveness(const SourceManager& M);
 
-  LiveVariablesImpl(AnalysisContext &ac, bool KillAtAssign)
+  LiveVariablesImpl(AnalysisDeclContext &ac, bool KillAtAssign)
     : analysisContext(ac),
       SSetFact(false), // Do not canonicalize ImmutableSets by default.
       DSetFact(false), // This is a *major* performance win.
@@ -323,7 +323,7 @@ void TransferFunctions::VisitBinaryOperator(BinaryOperator *B) {
 }
 
 void TransferFunctions::VisitBlockExpr(BlockExpr *BE) {
-  AnalysisContext::referenced_decls_iterator I, E;
+  AnalysisDeclContext::referenced_decls_iterator I, E;
   llvm::tie(I, E) =
     LV.analysisContext.getReferencedBlockVars(BE->getBlockDecl());
   for ( ; I != E ; ++I) {
@@ -447,7 +447,7 @@ LiveVariables::~LiveVariables() {
 }
 
 LiveVariables *
-LiveVariables::computeLiveness(AnalysisContext &AC,
+LiveVariables::computeLiveness(AnalysisDeclContext &AC,
                                  bool killAtAssign) {
 
   // No CFG?  Bail out.
index fed0e38bb5484b14762364521c5d6e90b9c7c520..311423f285ae1add07c8bafe8d50140f313df106 100644 (file)
@@ -26,7 +26,7 @@ PostOrderCFGView::PostOrderCFGView(const CFG *cfg) {
   }
 }
 
-PostOrderCFGView *PostOrderCFGView::create(AnalysisContext &ctx) {
+PostOrderCFGView *PostOrderCFGView::create(AnalysisDeclContext &ctx) {
   const CFG *cfg = ctx.getCFG();
   if (!cfg)
     return 0;
index 49317718c3818cfcb98c976739e84479f905af81..62575f9f232589cacec4e6221682cf2eb3c9c314 100644 (file)
@@ -287,7 +287,7 @@ unsigned ScanReachableFromBlock(const CFGBlock *Start,
   return count;
 }
   
-void FindUnreachableCode(AnalysisContext &AC, Callback &CB) {
+void FindUnreachableCode(AnalysisDeclContext &AC, Callback &CB) {
   CFG *cfg = AC.getCFG();
   if (!cfg)
     return;
index 3153c164b98590671ec85a0f64ce191b8ec59c48..9c62d00e81567a5e3534c3795769b72e8bc654ed 100644 (file)
@@ -648,7 +648,7 @@ public:
   Lockset addLock(Lockset &LSet, Expr *MutexExp, const NamedDecl *D,
                   LockKind LK, SourceLocation Loc);
 
-  void runAnalysis(AnalysisContext &AC);
+  void runAnalysis(AnalysisDeclContext &AC);
 };
 
 /// \brief Compute the intersection of two locksets and issue warnings for any
@@ -710,7 +710,7 @@ Lockset ThreadSafetyAnalyzer::addLock(Lockset &LSet, Expr *MutexExp,
 /// We traverse the blocks in the CFG, compute the set of mutexes that are held
 /// at the end of each block, and issue warnings for thread safety violations.
 /// Each block in the CFG is traversed exactly once.
-void ThreadSafetyAnalyzer::runAnalysis(AnalysisContext &AC) {
+void ThreadSafetyAnalyzer::runAnalysis(AnalysisDeclContext &AC) {
   CFG *CFGraph = AC.getCFG();
   if (!CFGraph) return;
   const NamedDecl *D = dyn_cast_or_null<NamedDecl>(AC.getDecl());
@@ -869,7 +869,7 @@ namespace thread_safety {
 /// We traverse the blocks in the CFG, compute the set of mutexes that are held
 /// at the end of each block, and issue warnings for thread safety violations.
 /// Each block in the CFG is traversed exactly once.
-void runThreadSafetyAnalysis(AnalysisContext &AC,
+void runThreadSafetyAnalysis(AnalysisDeclContext &AC,
                              ThreadSafetyHandler &Handler) {
   ThreadSafetyAnalyzer Analyzer(Handler);
   Analyzer.runAnalysis(AC);
index 9e98560b655dd285df73a58bc6500dac3d01b85c..86b96ce6230f70b5c33f99a65615586fc3250e96 100644 (file)
@@ -337,7 +337,7 @@ public:
 class TransferFunctions : public StmtVisitor<TransferFunctions> {
   CFGBlockValues &vals;
   const CFG &cfg;
-  AnalysisContext &ac;
+  AnalysisDeclContext &ac;
   UninitVariablesHandler *handler;
   
   /// The last DeclRefExpr seen when analyzing a block.  Used to
@@ -356,7 +356,7 @@ class TransferFunctions : public StmtVisitor<TransferFunctions> {
   
 public:
   TransferFunctions(CFGBlockValues &vals, const CFG &cfg,
-                    AnalysisContext &ac,
+                    AnalysisDeclContext &ac,
                     UninitVariablesHandler *handler)
     : vals(vals), cfg(cfg), ac(ac), handler(handler),
       lastDR(0), lastLoad(0),
@@ -615,7 +615,7 @@ void TransferFunctions::ProcessUses(Stmt *s) {
 //====------------------------------------------------------------------------//
 
 static bool runOnBlock(const CFGBlock *block, const CFG &cfg,
-                       AnalysisContext &ac, CFGBlockValues &vals,
+                       AnalysisDeclContext &ac, CFGBlockValues &vals,
                        llvm::BitVector &wasAnalyzed,
                        UninitVariablesHandler *handler = 0) {
   
@@ -672,7 +672,7 @@ static bool runOnBlock(const CFGBlock *block, const CFG &cfg,
 void clang::runUninitializedVariablesAnalysis(
     const DeclContext &dc,
     const CFG &cfg,
-    AnalysisContext &ac,
+    AnalysisDeclContext &ac,
     UninitVariablesHandler &handler,
     UninitVariablesAnalysisStats &stats) {
   CFGBlockValues vals(cfg);
index 647d61fbfeddf4bf5920c5a20fa13f1f4fc66280..8b2e269708b2656f938d400426752bf161ba3fc6 100644 (file)
@@ -63,7 +63,7 @@ namespace {
 }
 
 /// CheckUnreachable - Check for unreachable code.
-static void CheckUnreachable(Sema &S, AnalysisContext &AC) {
+static void CheckUnreachable(Sema &S, AnalysisDeclContext &AC) {
   UnreachableCodeHandler UC(S);
   reachable_code::FindUnreachableCode(AC, UC);
 }
@@ -89,7 +89,7 @@ enum ControlFlowKind {
 /// return.  We assume NeverFallThrough iff we never fall off the end of the
 /// statement but we may return.  We assume that functions not marked noreturn
 /// will return.
-static ControlFlowKind CheckFallThrough(AnalysisContext &AC) {
+static ControlFlowKind CheckFallThrough(AnalysisDeclContext &AC) {
   CFG *cfg = AC.getCFG();
   if (cfg == 0) return UnknownFallThrough;
 
@@ -312,7 +312,7 @@ struct CheckFallThroughDiagnostics {
 static void CheckFallThroughForBody(Sema &S, const Decl *D, const Stmt *Body,
                                     const BlockExpr *blkExpr,
                                     const CheckFallThroughDiagnostics& CD,
-                                    AnalysisContext &AC) {
+                                    AnalysisDeclContext &AC) {
 
   bool ReturnsVoid = false;
   bool HasNoReturn = false;
@@ -830,7 +830,7 @@ AnalysisBasedWarnings::IssueWarnings(sema::AnalysisBasedWarnings::Policy P,
   const Stmt *Body = D->getBody();
   assert(Body);
 
-  AnalysisContext AC(/* AnalysisContextManager */ 0,  D, 0);
+  AnalysisDeclContext AC(/* AnalysisDeclContextManager */ 0,  D, 0);
 
   // Don't generate EH edges for CallExprs as we'd like to avoid the n^2
   // explosion for destrutors that can result and the compile time hit.
index cd977bf54c67e3e81962ca9802b7e47edd868099..66b3290f4e8ba814807c66b284d24b98bcd0d5d1 100644 (file)
@@ -54,7 +54,7 @@ void AnalyzerStatsChecker::checkEndAnalysis(ExplodedGraph &G,
 
   // Get the CFG and the Decl of this block
   C = LC->getCFG();
-  D = LC->getAnalysisContext()->getDecl();
+  D = LC->getAnalysisDeclContext()->getDecl();
 
   unsigned total = 0, unreachable = 0;
 
index bf7ba185b5aa83e8a300e6d42903de93fef9743b..06899fc578d39c3b965ff95b114519b0a619d8a9 100644 (file)
@@ -36,14 +36,14 @@ static bool isArc4RandomAvailable(const ASTContext &Ctx) {
 namespace {
 class WalkAST : public StmtVisitor<WalkAST> {
   BugReporter &BR;
-  AnalysisContext* AC;
+  AnalysisDeclContext* AC;
   enum { num_setids = 6 };
   IdentifierInfo *II_setid[num_setids];
 
   const bool CheckRand;
 
 public:
-  WalkAST(BugReporter &br, AnalysisContext* ac)
+  WalkAST(BugReporter &br, AnalysisDeclContext* ac)
   : BR(br), AC(ac), II_setid(),
     CheckRand(isArc4RandomAvailable(BR.getContext())) {}
 
@@ -611,7 +611,7 @@ class SecuritySyntaxChecker : public Checker<check::ASTCodeBody> {
 public:
   void checkASTCodeBody(const Decl *D, AnalysisManager& mgr,
                         BugReporter &BR) const {
-    WalkAST walker(BR, mgr.getAnalysisContext(D));
+    WalkAST walker(BR, mgr.getAnalysisDeclContext(D));
     walker.Visit(D->getBody());
   }
 };
index 469be05fb71f18d5f54dfcae7847602788006e09..55945e6c07c59d9afc724934c4da45b2d21eb293 100644 (file)
@@ -24,10 +24,10 @@ using namespace ento;
 namespace {
 class WalkAST : public StmtVisitor<WalkAST> {
   BugReporter &BR;
-  AnalysisContext* AC;
+  AnalysisDeclContext* AC;
 
 public:
-  WalkAST(BugReporter &br, AnalysisContext* ac) : BR(br), AC(ac) {}
+  WalkAST(BugReporter &br, AnalysisDeclContext* ac) : BR(br), AC(ac) {}
   void VisitUnaryExprOrTypeTraitExpr(UnaryExprOrTypeTraitExpr *E);
   void VisitStmt(Stmt *S) { VisitChildren(S); }
   void VisitChildren(Stmt *S);
@@ -80,7 +80,7 @@ class SizeofPointerChecker : public Checker<check::ASTCodeBody> {
 public:
   void checkASTCodeBody(const Decl *D, AnalysisManager& mgr,
                         BugReporter &BR) const {
-    WalkAST walker(BR, mgr.getAnalysisContext(D));
+    WalkAST walker(BR, mgr.getAnalysisDeclContext(D));
     walker.Visit(D->getBody());
   }
 };
index 901af43c5f26a9f361d14e5b30a6c2ba6dbd99a9..79c889d78a912ac8f37a9afa167c38e73ba8498c 100644 (file)
@@ -72,7 +72,7 @@ class DeadStoreObs : public LiveVariables::Observer {
   const CFG &cfg;
   ASTContext &Ctx;
   BugReporter& BR;
-  AnalysisContext* AC;
+  AnalysisDeclContext* AC;
   ParentMap& Parents;
   llvm::SmallPtrSet<const VarDecl*, 20> Escaped;
   llvm::OwningPtr<ReachableCode> reachableCode;
@@ -82,7 +82,7 @@ class DeadStoreObs : public LiveVariables::Observer {
 
 public:
   DeadStoreObs(const CFG &cfg, ASTContext &ctx,
-               BugReporter& br, AnalysisContext* ac, ParentMap& parents,
+               BugReporter& br, AnalysisDeclContext* ac, ParentMap& parents,
                llvm::SmallPtrSet<const VarDecl*, 20> &escaped)
     : cfg(cfg), Ctx(ctx), BR(br), AC(ac), Parents(parents),
       Escaped(escaped), currentBlock(0) {}
@@ -350,7 +350,7 @@ public:
                         BugReporter &BR) const {
     if (LiveVariables *L = mgr.getAnalysis<LiveVariables>(D)) {
       CFG &cfg = *mgr.getCFG(D);
-      AnalysisContext *AC = mgr.getAnalysisContext(D);
+      AnalysisDeclContext *AC = mgr.getAnalysisDeclContext(D);
       ParentMap &pmap = mgr.getParentMap(D);
       FindEscaped FS(&cfg);
       FS.getCFG().VisitBlockStmts(FS);
index 5c257e595be32727a67bc96c2a274f25564e7f7b..a3ebf0b750aacf13a1d643171d80bc2716cdbb4c 100644 (file)
@@ -82,16 +82,16 @@ private:
 
   // False positive reduction methods
   static bool isSelfAssign(const Expr *LHS, const Expr *RHS);
-  static bool isUnused(const Expr *E, AnalysisContext *AC);
+  static bool isUnused(const Expr *E, AnalysisDeclContext *AC);
   static bool isTruncationExtensionAssignment(const Expr *LHS,
                                               const Expr *RHS);
-  static bool pathWasCompletelyAnalyzed(AnalysisContext *AC,
+  static bool pathWasCompletelyAnalyzed(AnalysisDeclContext *AC,
                                         const CFGBlock *CB,
                                         const CoreEngine &CE);
   static bool CanVary(const Expr *Ex,
-                      AnalysisContext *AC);
+                      AnalysisDeclContext *AC);
   static bool isConstantOrPseudoConstant(const DeclRefExpr *DR,
-                                         AnalysisContext *AC);
+                                         AnalysisDeclContext *AC);
   static bool containsNonLocalVarDecl(const Stmt *S);
 
   // Hash table and related data structures
@@ -116,7 +116,7 @@ void IdempotentOperationChecker::checkPreStmt(const BinaryOperator *B,
   // been created yet.
   BinaryOperatorData &Data = hash[B];
   Assumption &A = Data.assumption;
-  AnalysisContext *AC = C.getCurrentAnalysisContext();
+  AnalysisDeclContext *AC = C.getCurrentAnalysisDeclContext();
 
   // If we already have visited this node on a path that does not contain an
   // idempotent operation, return immediately.
@@ -366,8 +366,8 @@ void IdempotentOperationChecker::checkEndAnalysis(ExplodedGraph &G,
     // warning
     if (Eng.hasWorkRemaining()) {
       // If we can trace back
-      AnalysisContext *AC = (*ES.begin())->getLocationContext()
-                                         ->getAnalysisContext();
+      AnalysisDeclContext *AC = (*ES.begin())->getLocationContext()
+                                         ->getAnalysisDeclContext();
       if (!pathWasCompletelyAnalyzed(AC,
                                      AC->getCFGStmtMap()->getBlock(B),
                                      Eng.getCoreEngine()))
@@ -487,7 +487,7 @@ bool IdempotentOperationChecker::isSelfAssign(const Expr *LHS, const Expr *RHS)
 // Returns true if the Expr points to a VarDecl that is not read anywhere
 // outside of self-assignments.
 bool IdempotentOperationChecker::isUnused(const Expr *E,
-                                          AnalysisContext *AC) {
+                                          AnalysisDeclContext *AC) {
   if (!E)
     return false;
 
@@ -531,7 +531,7 @@ bool IdempotentOperationChecker::isTruncationExtensionAssignment(
 // Returns false if a path to this block was not completely analyzed, or true
 // otherwise.
 bool
-IdempotentOperationChecker::pathWasCompletelyAnalyzed(AnalysisContext *AC,
+IdempotentOperationChecker::pathWasCompletelyAnalyzed(AnalysisDeclContext *AC,
                                                       const CFGBlock *CB,
                                                       const CoreEngine &CE) {
 
@@ -615,7 +615,7 @@ IdempotentOperationChecker::pathWasCompletelyAnalyzed(AnalysisContext *AC,
 // expression may also involve a variable that behaves like a constant. The
 // function returns true if the expression varies, and false otherwise.
 bool IdempotentOperationChecker::CanVary(const Expr *Ex,
-                                         AnalysisContext *AC) {
+                                         AnalysisDeclContext *AC) {
   // Parentheses and casts are irrelevant here
   Ex = Ex->IgnoreParenCasts();
 
@@ -699,7 +699,7 @@ bool IdempotentOperationChecker::CanVary(const Expr *Ex,
 // Returns true if a DeclRefExpr is or behaves like a constant.
 bool IdempotentOperationChecker::isConstantOrPseudoConstant(
                                                           const DeclRefExpr *DR,
-                                                          AnalysisContext *AC) {
+                                                          AnalysisDeclContext *AC) {
   // Check if the type of the Decl is const-qualified
   if (DR->getType().isConstQualified())
     return true;
index cf5501a4ac15e704565bb3c450907e05cca0501e..c9d315a32e604a8e9030db846268142800a4a7ab 100644 (file)
@@ -205,7 +205,7 @@ void MallocOverflowSecurityChecker::OutputPossibleOverflows(
 
   // Delete any possible overflows which have a comparison.
   CheckOverflowOps c(PossibleMallocOverflows, BR.getContext());
-  c.Visit(mgr.getAnalysisContext(D)->getBody());
+  c.Visit(mgr.getAnalysisDeclContext(D)->getBody());
 
   // Output warnings for all overflows that are left.
   for (CheckOverflowOps::theVecType::iterator
index 2fb9944afaa716fd455c7730aeab5e2cbd44f08f..8b29a20dc625fcab89227aff882460be9a5b9e7a 100644 (file)
@@ -194,7 +194,7 @@ void ObjCSelfInitChecker::checkPostObjCMessage(ObjCMessage msg,
 
   // FIXME: A callback should disable checkers at the start of functions.
   if (!shouldRunOnFunctionOrMethod(dyn_cast<NamedDecl>(
-                                     C.getCurrentAnalysisContext()->getDecl())))
+                                     C.getCurrentAnalysisDeclContext()->getDecl())))
     return;
 
   if (isInitMessage(msg)) {
@@ -221,7 +221,7 @@ void ObjCSelfInitChecker::checkPostStmt(const ObjCIvarRefExpr *E,
                                         CheckerContext &C) const {
   // FIXME: A callback should disable checkers at the start of functions.
   if (!shouldRunOnFunctionOrMethod(dyn_cast<NamedDecl>(
-                                     C.getCurrentAnalysisContext()->getDecl())))
+                                     C.getCurrentAnalysisDeclContext()->getDecl())))
     return;
 
   checkForInvalidSelf(E->getBase(), C,
@@ -233,7 +233,7 @@ void ObjCSelfInitChecker::checkPreStmt(const ReturnStmt *S,
                                        CheckerContext &C) const {
   // FIXME: A callback should disable checkers at the start of functions.
   if (!shouldRunOnFunctionOrMethod(dyn_cast<NamedDecl>(
-                                     C.getCurrentAnalysisContext()->getDecl())))
+                                     C.getCurrentAnalysisDeclContext()->getDecl())))
     return;
 
   checkForInvalidSelf(S->getRetValue(), C,
@@ -335,7 +335,7 @@ static bool shouldRunOnFunctionOrMethod(const NamedDecl *ND) {
 
 /// \brief Returns true if the location is 'self'.
 static bool isSelfVar(SVal location, CheckerContext &C) {
-  AnalysisContext *analCtx = C.getCurrentAnalysisContext(); 
+  AnalysisDeclContext *analCtx = C.getCurrentAnalysisDeclContext(); 
   if (!analCtx->getSelfDecl())
     return false;
   if (!isa<loc::MemRegionVal>(location))
index 459ee65d19d9fe8a93fb7cd54e212b773daa7874..ae28300d1388b064ec480cce5f079632b0c97197 100644 (file)
@@ -69,7 +69,7 @@ void UnreachableCodeChecker::checkEndAnalysis(ExplodedGraph &G,
 
     // Save the CFG if we don't have it already
     if (!C)
-      C = LC->getAnalysisContext()->getUnoptimizedCFG();
+      C = LC->getAnalysisDeclContext()->getUnoptimizedCFG();
     if (!PM)
       PM = &LC->getParentMap();
 
index 17ec70d39b9062abd5a85a6e785a27db867dbdee..72aed742374b3d3cf20e80643ee67f29b1f3fdbc 100644 (file)
@@ -66,8 +66,8 @@ AnalysisManager::AnalysisManager(ASTContext &ctx, DiagnosticsEngine &diags,
 }
 
 
-AnalysisContext *
-AnalysisManager::getAnalysisContextInAnotherTU(const Decl *D) {
+AnalysisDeclContext *
+AnalysisManager::getAnalysisDeclContextInAnotherTU(const Decl *D) {
   idx::Entity Ent = idx::Entity::get(const_cast<Decl *>(D), 
                                      Idxer->getProgram());
   FunctionDecl *FuncDef;
@@ -77,7 +77,7 @@ AnalysisManager::getAnalysisContextInAnotherTU(const Decl *D) {
   if (FuncDef == 0)
     return 0;
 
-  // This AnalysisContext wraps function definition in another translation unit.
+  // This AnalysisDeclContext wraps function definition in another translation unit.
   // But it is still owned by the AnalysisManager associated with the current
   // translation unit.
   return AnaCtxMgr.getContext(FuncDef, TU);
index 20ee5abbe10821001fac264d1e751bcdcee231e4..525bd71111fc22fc2967f1de46b9db6c4e7931a3 100644 (file)
@@ -725,8 +725,8 @@ void CallEnterNodeBuilder::generateNode(const ProgramState *state) {
     ExprEngine NewEng(AMgr, GCEnabled);
 
     // Create the new LocationContext.
-    AnalysisContext *NewAnaCtx =
-      AMgr.getAnalysisContext(CalleeCtx->getDecl(), 
+    AnalysisDeclContext *NewAnaCtx =
+      AMgr.getAnalysisDeclContext(CalleeCtx->getDecl(), 
                               CalleeCtx->getTranslationUnit());
 
     const StackFrameContext *OldLocCtx = CalleeCtx;
index 628ab8566d620f4d044168429fa4b11fd7cf09c0..269d7c74ee5da711f8d5e97d9f90f7c98990ffec 100644 (file)
@@ -53,7 +53,7 @@ static inline Selector GetNullarySelector(const char* name, ASTContext &Ctx) {
 
 ExprEngine::ExprEngine(AnalysisManager &mgr, bool gcEnabled)
   : AMgr(mgr),
-    AnalysisContexts(mgr.getAnalysisContextManager()),
+    AnalysisDeclContexts(mgr.getAnalysisDeclContextManager()),
     Engine(*this),
     G(Engine.getGraph()),
     Builder(NULL),
@@ -1509,7 +1509,7 @@ bool ExprEngine::InlineCall(ExplodedNodeSet &Dst, const CallExpr *CE,
   // Check if the function definition is in the same translation unit.
   if (FD->hasBody(FD)) {
     const StackFrameContext *stackFrame = 
-      AMgr.getStackFrame(AMgr.getAnalysisContext(FD), 
+      AMgr.getStackFrame(AMgr.getAnalysisDeclContext(FD), 
                          Pred->getLocationContext(),
                          CE, Builder->getBlock(), Builder->getIndex());
     // Now we have the definition of the callee, create a CallEnter node.
@@ -1522,7 +1522,7 @@ bool ExprEngine::InlineCall(ExplodedNodeSet &Dst, const CallExpr *CE,
 
   // Check if we can find the function definition in other translation units.
   if (AMgr.hasIndexer()) {
-    AnalysisContext *C = AMgr.getAnalysisContextInAnotherTU(FD);
+    AnalysisDeclContext *C = AMgr.getAnalysisDeclContextInAnotherTU(FD);
     if (C == 0)
       return false;
     const StackFrameContext *stackFrame = 
index 41c6035709e9439e77b522d23b873a4c102029eb..e9d5e2cc6d2f9fda4b483a2cd40bc53837194e5a 100644 (file)
@@ -224,7 +224,7 @@ void ExprEngine::VisitCXXDestructor(const CXXDestructorDecl *DD,
 
   // Create the context for 'this' region.
   const StackFrameContext *SFC =
-    AnalysisContexts.getContext(DD)->
+    AnalysisDeclContexts.getContext(DD)->
       getStackFrame(Pred->getLocationContext(), S,
                     Builder->getBlock(), Builder->getIndex());
 
index 6f92da8f3e5f19c6fac4185d8afc93d1f10f9138..2cc0607cb4a22165d6a415bf5dcb3c857fd68b8c 100644 (file)
@@ -337,7 +337,7 @@ void FunctionTextRegion::Profile(llvm::FoldingSetNodeID& ID) const {
 
 void BlockTextRegion::ProfileRegion(llvm::FoldingSetNodeID& ID,
                                     const BlockDecl *BD, CanQualType,
-                                    const AnalysisContext *AC,
+                                    const AnalysisDeclContext *AC,
                                     const MemRegion*) {
   ID.AddInteger(MemRegion::BlockTextRegionKind);
   ID.AddPointer(BD);
@@ -590,7 +590,7 @@ const VarRegion* MemRegionManager::getVarRegion(const VarDecl *D,
           const BlockTextRegion *BTR =
             getBlockTextRegion(BD,
                      C.getCanonicalType(BD->getSignatureAsWritten()->getType()),
-                     STC->getAnalysisContext());
+                     STC->getAnalysisDeclContext());
           sReg = getGlobalsRegion(BTR);
         }
         else {
@@ -678,7 +678,7 @@ MemRegionManager::getFunctionTextRegion(const FunctionDecl *FD) {
 
 const BlockTextRegion *
 MemRegionManager::getBlockTextRegion(const BlockDecl *BD, CanQualType locTy,
-                                     AnalysisContext *AC) {
+                                     AnalysisDeclContext *AC) {
   return getSubRegion<BlockTextRegion>(BD, locTy, AC, getCodeRegion());
 }
 
@@ -928,8 +928,8 @@ void BlockDataRegion::LazyInitializeReferencedVars() {
   if (ReferencedVars)
     return;
 
-  AnalysisContext *AC = getCodeRegion()->getAnalysisContext();
-  AnalysisContext::referenced_decls_iterator I, E;
+  AnalysisDeclContext *AC = getCodeRegion()->getAnalysisDeclContext();
+  AnalysisDeclContext::referenced_decls_iterator I, E;
   llvm::tie(I, E) = AC->getReferencedBlockVars(BC->getDecl());
 
   if (I == E) {
index 3a879030da1194d78d921060d3acb06fba9deed4..1152b3fce920ef3058bb77462f275f3f66cbe95b 100644 (file)
@@ -94,9 +94,9 @@ void PathDiagnosticConsumer::HandlePathDiagnostic(const PathDiagnostic *D) {
 //===----------------------------------------------------------------------===//
 
 static SourceLocation getValidSourceLocation(const Stmt* S,
-                                             LocationOrAnalysisContext LAC) {
+                                             LocationOrAnalysisDeclContext LAC) {
   SourceLocation L = S->getLocStart();
-  assert(!LAC.isNull() && "A valid LocationContext or AnalysisContext should "
+  assert(!LAC.isNull() && "A valid LocationContext or AnalysisDeclContext should "
                           "be passed to PathDiagnosticLocation upon creation.");
 
   // S might be a temporary statement that does not have a location in the
@@ -107,7 +107,7 @@ static SourceLocation getValidSourceLocation(const Stmt* S,
     if (LAC.is<const LocationContext*>())
       PM = &LAC.get<const LocationContext*>()->getParentMap();
     else
-      PM = &LAC.get<AnalysisContext*>()->getParentMap();
+      PM = &LAC.get<AnalysisDeclContext*>()->getParentMap();
 
     while (!L.isValid()) {
       S = PM->getParent(S);
@@ -127,7 +127,7 @@ PathDiagnosticLocation
 PathDiagnosticLocation
   PathDiagnosticLocation::createBegin(const Stmt *S,
                                       const SourceManager &SM,
-                                      LocationOrAnalysisContext LAC) {
+                                      LocationOrAnalysisDeclContext LAC) {
   return PathDiagnosticLocation(getValidSourceLocation(S, LAC),
                                 SM, SingleLocK);
 }
@@ -229,7 +229,7 @@ PathDiagnosticLocation PathDiagnosticLocation::createSingleLocation(
 
 FullSourceLoc
   PathDiagnosticLocation::genLocation(SourceLocation L,
-                                      LocationOrAnalysisContext LAC) const {
+                                      LocationOrAnalysisDeclContext LAC) const {
   assert(isValid());
   // Note that we want a 'switch' here so that the compiler can warn us in
   // case we add more cases.
@@ -248,7 +248,7 @@ FullSourceLoc
 }
 
 PathDiagnosticRange
-  PathDiagnosticLocation::genRange(LocationOrAnalysisContext LAC) const {
+  PathDiagnosticLocation::genRange(LocationOrAnalysisDeclContext LAC) const {
   assert(isValid());
   // Note that we want a 'switch' here so that the compiler can warn us in
   // case we add more cases.
index ebf7ae2fd4b1aba4f96c48b626e6a0c7fffc3cf1..f118f4a0f0969c5c7e67599d52ea8bb9b5043a83 100644 (file)
@@ -155,7 +155,7 @@ DefinedSVal SValBuilder::getBlockPointer(const BlockDecl *block,
                                          CanQualType locTy,
                                          const LocationContext *locContext) {
   const BlockTextRegion *BC =
-    MemMgr.getBlockTextRegion(block, locTy, locContext->getAnalysisContext());
+    MemMgr.getBlockTextRegion(block, locTy, locContext->getAnalysisDeclContext());
   const BlockDataRegion *BD = MemMgr.getBlockDataRegion(BC, locContext);
   return loc::MemRegionVal(BD);
 }
index fdf95b4c7e24518e2ab2e015b7f8cc89c6015728..ded86b7746a1388c00f24c064cb1dee2ccefecb4 100644 (file)
@@ -278,7 +278,7 @@ void AnalysisConsumer::HandleCode(Decl *D) {
   if (!Opts.AnalyzeAll && !SM.isFromMainFile(SL))
     return;
 
-  // Clear the AnalysisManager of old AnalysisContexts.
+  // Clear the AnalysisManager of old AnalysisDeclContexts.
   Mgr->ClearContexts();
 
   // Dispatch on the actions.
@@ -318,7 +318,7 @@ static void ActionExprEngine(AnalysisConsumer &C, AnalysisManager &mgr,
   }
 
   // Execute the worklist algorithm.
-  Eng.ExecuteWorkList(mgr.getAnalysisContextManager().getStackFrame(D, 0),
+  Eng.ExecuteWorkList(mgr.getAnalysisDeclContextManager().getStackFrame(D, 0),
                       mgr.getMaxNodes());
 
   // Release the auditor (if any) so that it doesn't monitor the graph
index 9c8e26ece51baa53132bf5e60da816bda61640f5..1fa8b905dc0a07196f5b02f24baa21cad09c97ef 100644 (file)
@@ -1,6 +1,6 @@
 // RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-inline-call -analyzer-store region -verify %s
 
-// Test when entering f1(), we set the right AnalysisContext to Environment.
+// Test when entering f1(), we set the right AnalysisDeclContext to Environment.
 // Otherwise, block-level expr '1 && a' would not be block-level.
 int a;
 
index f436579900586f747376379dd282a08006545978..5b3915b865cd62b390c1b14941264ce1f1e069eb 100644 (file)
@@ -2,8 +2,8 @@
 
 #include "not exist" // expected-error{{'not exist' file not found}}
 
-class AnalysisContext {};
-static ControlFlowKind CheckFallThrough(AnalysisContext &AC) {
+class AnalysisDeclContext {};
+static ControlFlowKind CheckFallThrough(AnalysisDeclContext &AC) {
   if (const AsmStmt *AS = dyn_cast<AsmStmt>(S)) {}
   bool NoReturnEdge = false;
 }