aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Analysis/ProgramPoint.h
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-02-13 00:24:44 +0000
committerTed Kremenek <kremenek@apple.com>2008-02-13 00:24:44 +0000
commit754607e7cff2d902d9af8b771409449fb2f8d2bf (patch)
tree27781f2df71500bec9e06f5a10067e975babb71f /include/clang/Analysis/ProgramPoint.h
parentf81086940024c8fd1c6497800386e88fd313a3d3 (diff)
Added support to GREngine/GRConstants for handling computed gotos.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47038 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Analysis/ProgramPoint.h')
-rw-r--r--include/clang/Analysis/ProgramPoint.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/clang/Analysis/ProgramPoint.h b/include/clang/Analysis/ProgramPoint.h
index 39ce03fd96..45ec936e9a 100644
--- a/include/clang/Analysis/ProgramPoint.h
+++ b/include/clang/Analysis/ProgramPoint.h
@@ -104,6 +104,15 @@ class BlockEdge : public ProgramPoint {
typedef std::pair<CFGBlock*,CFGBlock*> BPair;
public:
BlockEdge(CFG& cfg, const CFGBlock* B1, const CFGBlock* B2);
+
+ /// This ctor forces the BlockEdge to be constructed using an explicitly
+ /// allocated pair object that is stored in the CFG. This is usually
+ /// used to construct edges representing jumps using computed gotos.
+ BlockEdge(CFG& cfg, const CFGBlock* B1, const CFGBlock* B2, bool) {
+ Data = reinterpret_cast<uintptr_t>(cfg.getBlockEdgeImpl(B1, B2))
+ | BlockEdgeAuxKind;
+ }
+
CFGBlock* getSrc() const;
CFGBlock* getDst() const;