Fix one strict-aliasing warning.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51707 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/CFG.cpp b/lib/AST/CFG.cpp
index aad9ee7..ba6a6c8 100644
--- a/lib/AST/CFG.cpp
+++ b/lib/AST/CFG.cpp
@@ -1177,17 +1177,17 @@
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;