summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/ProgramPoint.cpp
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2011-10-07 21:01:38 +0000
committerAnna Zaks <ganna@apple.com>2011-10-07 21:01:38 +0000
commit8de8cfdd213f1c234325cbf9dc2b35ea19086452 (patch)
tree2023c351103aca4e18e3c109d0a1840d886c2b4b /clang/lib/Analysis/ProgramPoint.cpp
parent8b02d36a230ef17fe090bb6cbd335dce6e6fed4b (diff)
downloadbcm5719-llvm-8de8cfdd213f1c234325cbf9dc2b35ea19086452.tar.gz
bcm5719-llvm-8de8cfdd213f1c234325cbf9dc2b35ea19086452.zip
ProgramPoint cleanup after the previous commit r141408 (remove the copy constructor, mark withTag const).
Move getProgramPoint() utility from CoreEngine.cpp into ProgramPoint. llvm-svn: 141414
Diffstat (limited to 'clang/lib/Analysis/ProgramPoint.cpp')
-rw-r--r--clang/lib/Analysis/ProgramPoint.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/clang/lib/Analysis/ProgramPoint.cpp b/clang/lib/Analysis/ProgramPoint.cpp
index 9b7df2c0427..3a0bbd5640d 100644
--- a/clang/lib/Analysis/ProgramPoint.cpp
+++ b/clang/lib/Analysis/ProgramPoint.cpp
@@ -18,6 +18,31 @@ using namespace clang;
ProgramPointTag::~ProgramPointTag() {}
+ProgramPoint ProgramPoint::getProgramPoint(const Stmt *S, ProgramPoint::Kind K,
+ const LocationContext *LC,
+ const ProgramPointTag *tag){
+ switch (K) {
+ default:
+ llvm_unreachable("Unhandled ProgramPoint kind");
+ case ProgramPoint::PreStmtKind:
+ return PreStmt(S, LC, tag);
+ case ProgramPoint::PostStmtKind:
+ return PostStmt(S, LC, tag);
+ case ProgramPoint::PreLoadKind:
+ return PreLoad(S, LC, tag);
+ case ProgramPoint::PostLoadKind:
+ return PostLoad(S, LC, tag);
+ case ProgramPoint::PreStoreKind:
+ return PreStore(S, LC, tag);
+ case ProgramPoint::PostStoreKind:
+ return PostStore(S, LC, tag);
+ case ProgramPoint::PostLValueKind:
+ return PostLValue(S, LC, tag);
+ case ProgramPoint::PostPurgeDeadSymbolsKind:
+ return PostPurgeDeadSymbols(S, LC, tag);
+ }
+}
+
SimpleProgramPointTag::SimpleProgramPointTag(StringRef description)
: desc(description) {}
OpenPOWER on IntegriCloud