Make PointerSize & Shift be enums
authorChris Lattner <sabre@nondot.org>
Wed, 6 Nov 2002 18:01:39 +0000 (18:01 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 6 Nov 2002 18:01:39 +0000 (18:01 +0000)
Fix problem with recursive merging

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4570 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/DataStructure/DataStructure.cpp

index 77407ad47a957f49229393ae49f852962a8cae5d..740ece86f522a00c67145509bb34a87a36918edd 100644 (file)
@@ -20,11 +20,6 @@ namespace {
   Statistic<> NumFolds("dsnode", "Number of nodes completely folded");
 };
 
-namespace DS {
-  const unsigned PointerShift = 3;  // 64bit ptrs = 3, 32 bit ptrs = 2
-  const unsigned PointerSize = 1 << PointerShift;
-};
-
 namespace DataStructureAnalysis {   // TODO: FIXME
   // isPointerType - Return true if this first class type is big enough to hold
   // a pointer.
@@ -392,7 +387,7 @@ void DSNode::mergeWith(const DSNodeHandle &NH, unsigned Offset) {
   }
   N = NH.getNode();
 
-  if (this == N) return;
+  if (this == N || N == 0) return;
 
   // If both nodes are not at offset 0, make sure that we are merging the node
   // at an later offset into the node with the zero offset.