summaryrefslogtreecommitdiff
path: root/test/profile/Inputs/instrprof-shared-main-gcov-flush.c
blob: 9f41b7e6362aaea8207ffb3405567813ede45f08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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;
}