aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Analysis/ProgramPoint.h
diff options
context:
space:
mode:
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;