instrprof-shared-main-gcov-flush.c 407 Bytes
extern void foo(int n);
extern void __gcov_flush(void);

int bar1 = 0;
int bar2 = 1;

void bar(int n) {
  if (n % 5 == 0)
    bar1++;
  else
    bar2++;
}

int main(int argc, char *argv[]) {
#ifdef SHARED_CALL_BEFORE_GCOV_FLUSH
  foo(1);
#endif

  bar(5);

  __gcov_flush();

  bar(5);

#ifdef SHARED_CALL_AFTER_GCOV_FLUSH
  foo(1);
#endif

#ifdef EXIT_ABRUPTLY
  _exit(0);
#endif

  bar(5);

  return 0;
}