diff options
Diffstat (limited to 'include/clang/Analysis')
-rw-r--r-- | include/clang/Analysis/AnalysisContext.h | 21 | ||||
-rw-r--r-- | include/clang/Analysis/ProgramPoint.h | 12 |
2 files changed, 9 insertions, 24 deletions
diff --git a/include/clang/Analysis/AnalysisContext.h b/include/clang/Analysis/AnalysisContext.h index 584173a33f..9ebd93b75b 100644 --- a/include/clang/Analysis/AnalysisContext.h +++ b/include/clang/Analysis/AnalysisContext.h @@ -34,16 +34,11 @@ class ImplicitParamDecl; class LocationContextManager; class StackFrameContext; -namespace idx { class TranslationUnit; } - /// AnalysisContext contains the context data for the function or method under /// analysis. class AnalysisContext { const Decl *D; - // TranslationUnit is NULL if we don't have multiple translation units. - const idx::TranslationUnit *TU; - // AnalysisContext owns the following data. CFG *cfg; bool builtCFG; @@ -53,18 +48,14 @@ class AnalysisContext { llvm::BumpPtrAllocator A; bool AddEHEdges; public: - AnalysisContext(const Decl *d, const idx::TranslationUnit *tu, - bool addehedges = false) - : D(d), TU(tu), cfg(0), builtCFG(false), liveness(0), PM(0), + AnalysisContext(const Decl *d, bool addehedges = false) + : D(d), cfg(0), builtCFG(false), liveness(0), PM(0), ReferencedBlockVars(0), AddEHEdges(addehedges) {} ~AnalysisContext(); ASTContext &getASTContext() { return D->getASTContext(); } - const Decl *getDecl() const { return D; } - - const idx::TranslationUnit *getTranslationUnit() const { return TU; } - + const Decl *getDecl() { return D; } /// getAddEHEdges - Return true iff we are adding exceptional edges from /// callExprs. If this is false, then try/catch statements and blocks /// reachable from them can appear to be dead in the CFG, analysis passes must @@ -91,7 +82,7 @@ class AnalysisContextManager { public: ~AnalysisContextManager(); - AnalysisContext *getContext(const Decl *D,const idx::TranslationUnit *TU = 0); + AnalysisContext *getContext(const Decl *D); // Discard all previously created AnalysisContexts. void clear(); @@ -118,10 +109,6 @@ public: AnalysisContext *getAnalysisContext() const { return Ctx; } - const idx::TranslationUnit *getTranslationUnit() const { - return Ctx->getTranslationUnit(); - } - const LocationContext *getParent() const { return Parent; } bool isParentOf(const LocationContext *LC) const; diff --git a/include/clang/Analysis/ProgramPoint.h b/include/clang/Analysis/ProgramPoint.h index 24bbf22640..075838d45e 100644 --- a/include/clang/Analysis/ProgramPoint.h +++ b/include/clang/Analysis/ProgramPoint.h @@ -15,7 +15,6 @@ #ifndef LLVM_CLANG_ANALYSIS_PROGRAM_POINT #define LLVM_CLANG_ANALYSIS_PROGRAM_POINT -#include "clang/Analysis/AnalysisContext.h" #include "clang/Analysis/CFG.h" #include "llvm/System/DataTypes.h" #include "llvm/ADT/DenseMap.h" @@ -27,7 +26,6 @@ namespace clang { class LocationContext; -class AnalysisContext; class FunctionDecl; class ProgramPoint { @@ -315,16 +313,16 @@ public: class CallEnter : public StmtPoint { public: - // L is caller's location context. AC is callee's AnalysisContext. - CallEnter(const Stmt *S, const AnalysisContext *AC, const LocationContext *L) - : StmtPoint(S, AC, CallEnterKind, L, 0) {} + // CallEnter uses the caller's location context. + CallEnter(const Stmt *S, const FunctionDecl *fd, const LocationContext *L) + : StmtPoint(S, fd, CallEnterKind, L, 0) {} const Stmt *getCallExpr() const { return static_cast<const Stmt *>(getData1()); } - const AnalysisContext *getCalleeContext() const { - return static_cast<const AnalysisContext *>(getData2()); + const FunctionDecl *getCallee() const { + return static_cast<const FunctionDecl *>(getData2()); } static bool classof(const ProgramPoint *Location) { |