diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-02-13 00:24:44 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-02-13 00:24:44 +0000 |
commit | 754607e7cff2d902d9af8b771409449fb2f8d2bf (patch) | |
tree | 27781f2df71500bec9e06f5a10067e975babb71f /include/clang/Analysis/ProgramPoint.h | |
parent | f81086940024c8fd1c6497800386e88fd313a3d3 (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.h | 9 |
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; |