* gcov.c (accumulate_line_counts): Fix span tree merge bug.
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 4 Apr 2003 15:48:19 +0000 (15:48 +0000)
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 4 Apr 2003 15:48:19 +0000 (15:48 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65245 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/gcov.c

index 6317830..822d403 100644 (file)
@@ -1,3 +1,7 @@
+2003-04-04  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * gcov.c (accumulate_line_counts): Fix span tree merge bug.
+
 Fri Apr  4 15:58:52 2003  J"orn Rennecke <joern.rennecke@superh.com>
 
        * sh.h (ACTUAL_NORMAL_MODE): New macro, broken out of
index 964e5e8..e986ac1 100644 (file)
@@ -1699,21 +1699,24 @@ accumulate_line_counts (src)
                        {
                          block_t *root = block->u.span.root;
                          block_t *dst_root = dst->u.span.root;
-                         
+
                          /* Join spanning trees */
-                         if (root->u.span.siblings && !dst_root->u.span.root)
+                         if (root->u.span.siblings
+                             && !dst_root->u.span.siblings)
                            {
                              root = dst->u.span.root;
                              dst_root = block->u.span.root;
                            }
                          
-                         dst->u.span.root = root;
-                         root->u.span.siblings += 1 + dst->u.span.siblings;
-                         if (dst->u.span.siblings)
+                         dst_root->u.span.root = root;
+                         root->u.span.siblings
+                           += 1 + dst_root->u.span.siblings;
+                         
+                         if (dst_root->u.span.siblings)
                            {
                              block_t *dst_sib;
                              
-                             dst->u.span.siblings = 0;
+                             dst_root->u.span.siblings = 0;
                              for (dst_sib = line->u.blocks; dst_sib;
                                   dst_sib = dst_sib->chain)
                                if (dst_sib->u.span.root == dst_root)