[Bug 837303] Re: gcov produce incorrect numbers for while loops and for loops with no increment part

dino99 837303 at bugs.launchpad.net
Thu Dec 31 15:00:40 UTC 2015


This version has expired long times ago, and so will never get support

** Tags removed: lucid

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-defaults in Ubuntu.
https://bugs.launchpad.net/bugs/837303

Title:
  gcov produce incorrect numbers for while loops and for loops with no
  increment part

Status in gcc-defaults package in Ubuntu:
  New

Bug description:
  gcov produce correct execution count for a typical for loop such as:
  for (i=0;i<10;++i)

  However if the increment part is removed from the for statement and
  put at the end of the loop instead, the program is equivalent, but
  gcov in that case will double count the line with the for statement
  once per time the for loop is reached. That is if the loop was not
  entered at all, the line where the for loop starts is counted twice.

  The same incorrect behaviour is seen with any while loop.

  Here is the gcov output from four variations of a program
  demonstrating incorrect execution counts in three of the four cases.

          -:    1:#include <stdio.h>
          -:    2:
          1:    3:int main()
          -:    4:{
          -:    5:  int i;
         11:    6:  for (i=0;i<10;++i) {
         10:    7:    printf("%d\n",i);
          -:    8:  }
          1:    9:  return 0;
          -:   10:}

          -:    1:#include <stdio.h>
          -:    2:
          1:    3:int main()
          -:    4:{
          -:    5:  int i;
         12:    6:  for (i=0;i<10;) {
         10:    7:    printf("%d\n",i);
         10:    8:    ++i;
          -:    9:  }
          1:   10:  return 0;
          -:   11:}

          -:    1:#include <stdio.h>
          -:    2:
          1:    3:int main()
          -:    4:{
          1:    5:  int i=0;
         12:    6:  while (i<10) {
         10:    7:    printf("%d\n",i);
         10:    8:    ++i;
          -:    9:  }
          1:   10:  return 0;
          -:   11:}

          -:    1:#include <stdio.h>
          -:    2:
          1:    3:int main()
          -:    4:{
          1:    5:  int i=20;
          2:    6:  while (i<10) {
      #####:    7:    printf("%d\n",i);
      #####:    8:    ++i;
          -:    9:  }
          1:   10:  return 0;
          -:   11:}

  ProblemType: Bug
  DistroRelease: Ubuntu 10.04
  Package: gcc 4:4.4.3-1ubuntu1
  ProcVersionSignature: Ubuntu 2.6.32-33.72-generic 2.6.32.41+drm33.18
  Uname: Linux 2.6.32-33-generic i686
  Architecture: i386
  Date: Tue Aug 30 12:47:01 2011
  EcryptfsInUse: Yes
  InstallationMedia: Ubuntu 10.04.3 LTS "Lucid Lynx" - Release i386 (20110720.1)
  ProcEnviron:
   PATH=(custom, user)
   LANG=en_DK.utf8
   SHELL=/bin/bash
  SourcePackage: gcc-defaults

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/837303/+subscriptions



More information about the foundations-bugs mailing list