Fix merging of nodes whose incoming offset is not zero. This unbreaks DSA on
authorChris Lattner <sabre@nondot.org>
Wed, 23 Jun 2004 06:29:59 +0000 (06:29 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 23 Jun 2004 06:29:59 +0000 (06:29 +0000)
several mallocbench programs, including perl.

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

lib/Analysis/DataStructure/DataStructure.cpp

index a15f3743d8337e047a6a5c09e8b9b6e066c9663b..53c39f9047cc958b3d81a810639729a9f249797d 100644 (file)
@@ -825,8 +825,7 @@ DSNodeHandle ReachabilityCloner::getClonedNH(const DSNodeHandle &SrcNH) {
       unsigned MergeOffset = 0;
       DSNode *CN = NH.getNode();
       if (CN->getSize() != 1)
-        MergeOffset = ((i << DS::PointerShift)+NH.getOffset()
-                       - SrcNH.getOffset()) %CN->getSize();
+        MergeOffset = ((i << DS::PointerShift)+NH.getOffset()) % CN->getSize();
       CN->addEdgeTo(MergeOffset, DestEdge);
     }
   }