diff --git a/include/clang/Analysis/ProgramPoint.h b/include/clang/Analysis/ProgramPoint.h
index a046268..5fc1fb6 100644
--- a/include/clang/Analysis/ProgramPoint.h
+++ b/include/clang/Analysis/ProgramPoint.h
@@ -31,14 +31,18 @@
   uintptr_t Data;
 
   ProgramPoint(const void* Ptr, Kind k) {
+    setRawData(Ptr, k);
+  }
+  
+  ProgramPoint() : Data(0) {}
+
+  void setRawData(const void* Ptr, Kind k) {
     assert ((reinterpret_cast<uintptr_t>(const_cast<void*>(Ptr)) & 0x7) == 0
             && "Address must have at least an 8-byte alignment.");
     
     Data = reinterpret_cast<uintptr_t>(const_cast<void*>(Ptr)) | k;
   }
   
-  ProgramPoint() : Data(0) {}
-  
 public:    
   unsigned getKind() const { return Data & 0x7; }  
   void* getRawPtr() const { return reinterpret_cast<void*>(Data & ~0x7); }
@@ -114,10 +118,8 @@
   /// 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;
-  }
+  BlockEdge(CFG& cfg, const CFGBlock* B1, const CFGBlock* B2, bool)
+    : ProgramPoint(cfg.getBlockEdgeImpl(B1, B2), BlockEdgeAuxKind) {}
 
 
   CFGBlock* getSrc() const;
diff --git a/lib/Analysis/ProgramPoint.cpp b/lib/Analysis/ProgramPoint.cpp
index c089e48..d95680f 100644
--- a/lib/Analysis/ProgramPoint.cpp
+++ b/lib/Analysis/ProgramPoint.cpp
@@ -19,15 +19,14 @@
 BlockEdge::BlockEdge(CFG& cfg, const CFGBlock* B1, const CFGBlock* B2) {    
   if (B1->succ_size() == 1) {
     assert (*(B1->succ_begin()) == B2);
-    Data = reinterpret_cast<uintptr_t>(B1) | BlockEdgeSrcKind;
+    setRawData(B1, BlockEdgeSrcKind);
   }
   else if (B2->pred_size() == 1) {
     assert (*(B2->pred_begin()) == B1);
-    Data = reinterpret_cast<uintptr_t>(B2) | BlockEdgeDstKind;
+    setRawData(B2, BlockEdgeDstKind);
   }
   else 
-    Data = reinterpret_cast<uintptr_t>(cfg.getBlockEdgeImpl(B1,B2)) 
-            | BlockEdgeAuxKind;
+    setRawData(cfg.getBlockEdgeImpl(B1,B2), BlockEdgeAuxKind);
 }
 
 CFGBlock* BlockEdge::getSrc() const {
