diff options
Diffstat (limited to 'lib/AST/CFG.cpp')
-rw-r--r-- | lib/AST/CFG.cpp | 16 |
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; |