aboutsummaryrefslogtreecommitdiff
path: root/lib/AST/CFG.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/AST/CFG.cpp')
-rw-r--r--lib/AST/CFG.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/AST/CFG.cpp b/lib/AST/CFG.cpp
index aad9ee7ada..ba6a6c8552 100644
--- a/lib/AST/CFG.cpp
+++ b/lib/AST/CFG.cpp
@@ -1177,17 +1177,17 @@ typedef llvm::FoldingSet<PersistPairTy> BlkEdgeSetTy;
const std::pair<CFGBlock*,CFGBlock*>*
CFG::getBlockEdgeImpl(const CFGBlock* B1, const CFGBlock* B2) {
- llvm::BumpPtrAllocator*& Alloc =
- reinterpret_cast<llvm::BumpPtrAllocator*&>(Allocator);
+ if (!Allocator)
+ Allocator = new llvm::BumpPtrAllocator();
- if (!Alloc)
- Alloc = new llvm::BumpPtrAllocator();
+ llvm::BumpPtrAllocator* Alloc =
+ static_cast<llvm::BumpPtrAllocator*>(Allocator);
- BlkEdgeSetTy*& p = reinterpret_cast<BlkEdgeSetTy*&>(BlkEdgeSet);
+ if (!BlkEdgeSet)
+ BlkEdgeSet = new BlkEdgeSetTy();
+
+ BlkEdgeSetTy* p = static_cast<BlkEdgeSetTy*>(BlkEdgeSet);
- if (!p)
- p = new BlkEdgeSetTy();
-
// Profile the edges.
llvm::FoldingSetNodeID profile;
void* InsertPos;