aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Analysis/ProgramPoint.h
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-03-05 05:05:04 +0000
committerTed Kremenek <kremenek@apple.com>2008-03-05 05:05:04 +0000
commitea45bb2d3b5e445029ad8f42d88bc1ed5b483a0b (patch)
tree684472e3dce7619653ee149804c9beccffe72df5 /include/clang/Analysis/ProgramPoint.h
parent42e6737f2efb113563140ad794c21c7709250402 (diff)
Reverted patch 47926 for ProgramPoint.h because it is currently buggy. May add back (fixed) later.
Updated CFGStmtVisitor to be in accord with rr47913: CallExprs are no longer (automatically) block-level expressions in the CFG. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47935 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Analysis/ProgramPoint.h')
-rw-r--r--include/clang/Analysis/ProgramPoint.h42
1 files changed, 4 insertions, 38 deletions
diff --git a/include/clang/Analysis/ProgramPoint.h b/include/clang/Analysis/ProgramPoint.h
index 6d182d9a24..a046268cfd 100644
--- a/include/clang/Analysis/ProgramPoint.h
+++ b/include/clang/Analysis/ProgramPoint.h
@@ -25,13 +25,8 @@ namespace clang {
class ProgramPoint {
public:
- enum Kind { LayeredNodeKind = 0x0,
- BlockEntranceKind = 0x1,
- PostStmtKind = 0x2,
- BlockExitKind = 0x3,
- BlockEdgeSrcKind = 0x5, // Skip 0x4.
- BlockEdgeDstKind = 0x6,
- BlockEdgeAuxKind = 0x7 };
+ enum Kind { BlockEntranceKind=0, PostStmtKind=1, BlockExitKind=2,
+ BlockEdgeSrcKind=3, BlockEdgeDstKind=4, BlockEdgeAuxKind=5 };
protected:
uintptr_t Data;
@@ -45,16 +40,8 @@ protected:
ProgramPoint() : Data(0) {}
public:
-
- unsigned getKind() const {
- unsigned x = Data & 0x7;
- return x & 0x3 ? x : 0; // Use only lower 2 bits for 0x0.
- }
-
- void* getRawPtr() const {
- return (void*) (getKind() ? Data & ~0x7 : Data & ~0x3);
- }
-
+ unsigned getKind() const { return Data & 0x7; }
+ void* getRawPtr() const { return reinterpret_cast<void*>(Data & ~0x7); }
void* getRawData() const { return reinterpret_cast<void*>(Data); }
static bool classof(const ProgramPoint*) { return true; }
@@ -66,27 +53,6 @@ public:
ID.AddPointer(getRawPtr());
}
};
-
-class ExplodedNodeImpl;
-template <typename StateTy> class ExplodedNode;
-
-class LayeredNode : public ProgramPoint {
-public:
- LayeredNode(ExplodedNodeImpl* N) : ProgramPoint(N, LayeredNodeKind) {
- assert (reinterpret_cast<uintptr_t>(N) & 0x3 == 0 &&
- "Address of ExplodedNode must have 4-byte alignment.");
- }
-
- ExplodedNodeImpl* getNodeImpl() const {
- return (ExplodedNodeImpl*) getRawPtr();
- }
-
- template <typename StateTy>
- ExplodedNode<StateTy>* getNode() const {
- return (ExplodedNode<StateTy>*) getRawPtr();
- }
-
-};
class BlockEntrance : public ProgramPoint {
public: