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;