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