        -:    0:Source:test.cpp
        -:    0:Graph:test.gcno
        -:    0:Data:test.gcda
        -:    0:Runs:2
        -:    0:Programs:1
        -:    1:#include "test.h"
        -:    2:#include <cstdlib>
        -:    3:
        -:    4:bool on = false;
        -:    5:int len = 42;
        -:    6:double grid[10][10] = {0};
        -:    7:const char * hello = "world";
        -:    8:const char * world = "hello";
        -:    9:
8589934592:   10:void A::B() {}
        -:   11:
    #####:   12:void useless() {}
        -:   13:
        -:   14:double more_useless() {
    #####:   15:  return 0;
        -:   16:}
        -:   17:
        -:   18:int foo() {
        2:   19:  on = true;
        2:   20:  return 3;
        -:   21:}
        -:   22:
        -:   23:int bar() {
    #####:   24:  len--;
    #####:   25:  return foo() + 45;
        -:   26:}
        -:   27:
        8:   28:void assign(int ii, int jj) {
        8:   29:  grid[ii][jj] = (ii+1) * (jj+1);
        8:   30:}
        -:   31:
        -:   32:void initialize_grid() {
        6:   33:  for (int ii = 0; ii < 2; ii++)
       12:   34:    for (int jj = 0; jj < 2; jj++)
       12:   35:      assign(ii, jj);
        2:   36:}
        -:   37:
        -:   38:int main() {
        2:   39:  initialize_grid();
        -:   40:
        2:   41:  int a = 2;
        2:   42:  on = rand() % 2;
        2:   43:  if (on) {
        2:   44:    foo();
        2:   45:    ++a;
        2:   46:  } else {
    #####:   47:    bar();
    #####:   48:    a += rand();
        -:   49:  }
        -:   50:
       22:   51:  for (int ii = 0; ii < 10; ++ii) {
       20:   52:    switch (rand() % 5) {
        -:   53:      case 0:
        4:   54:        a += rand();
        4:   55:        break;
        -:   56:      case 1:
        -:   57:      case 2:
        2:   58:        a += rand() / rand();
        2:   59:        break;
        -:   60:      case 3:
        6:   61:        a -= rand();
        6:   62:        break;
        -:   63:      default:
        8:   64:        a = -1;
        8:   65:    }
       20:   66:  }
        -:   67:
        2:   68:  A thing;
8589934594:   69:  for (uint64_t ii = 0; ii < 4294967296; ++ii)
8589934592:   70:    thing.B();
        -:   71:
        2:   72:  return a + 8 + grid[2][3] + len;
        -:   73:  return more_useless();
        -:   74:}
