Compute node offsets correctly


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9895 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/DataStructure/DataStructure.cpp b/lib/Analysis/DataStructure/DataStructure.cpp
index 2883899..d53c7fa 100644
--- a/lib/Analysis/DataStructure/DataStructure.cpp
+++ b/lib/Analysis/DataStructure/DataStructure.cpp
@@ -1652,13 +1652,13 @@
   if (Entry.getNode()) {
     // Termination of recursion!
     assert(Entry.getNode() == N2 &&
-           Entry.getOffset() == (NH1.getOffset()+NH2.getOffset()) &&
+           Entry.getOffset() == (NH2.getOffset()-NH1.getOffset()) &&
            "Inconsistent mapping detected!");
     return;
   }
   
   Entry.setNode(N2);
-  Entry.setOffset(NH1.getOffset()+NH2.getOffset());
+  Entry.setOffset(NH2.getOffset()-NH1.getOffset());
 
   // Loop over all of the fields that N1 and N2 have in common, recursively
   // mapping the edges together now.