aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Analysis
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Analysis')
-rw-r--r--include/clang/Analysis/AnalysisContext.h21
-rw-r--r--include/clang/Analysis/ProgramPoint.h12
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) {