xref: /llvm-project/llvm/test/tools/llvm-cov/Inputs/branch-templates.cpp (revision 1c25a3bfa57209e7a29eaae58ce5e0432aafe8c3)
1*1c25a3bfSNAKAMURA Takumi 
2*1c25a3bfSNAKAMURA Takumi 
3*1c25a3bfSNAKAMURA Takumi 
4*1c25a3bfSNAKAMURA Takumi 
5*1c25a3bfSNAKAMURA Takumi 
6*1c25a3bfSNAKAMURA Takumi #include <stdio.h>
7*1c25a3bfSNAKAMURA Takumi template<typename T>
8*1c25a3bfSNAKAMURA Takumi void unused(T x) {
9*1c25a3bfSNAKAMURA Takumi   return;
10*1c25a3bfSNAKAMURA Takumi }
11*1c25a3bfSNAKAMURA Takumi 
12*1c25a3bfSNAKAMURA Takumi template<typename T>
13*1c25a3bfSNAKAMURA Takumi int func(T x) {
14*1c25a3bfSNAKAMURA Takumi   if(x)       // BRCOV: |  Branch ([[@LINE]]:6): [True: 0, False: 1]
15*1c25a3bfSNAKAMURA Takumi     return 0; // BRCOV: |  Branch ([[@LINE-1]]:6): [True: 1, False: 0]
16*1c25a3bfSNAKAMURA Takumi   else        // BRCOV: |  Branch ([[@LINE-2]]:6): [True: 0, False: 1]
17*1c25a3bfSNAKAMURA Takumi     return 1;
18*1c25a3bfSNAKAMURA Takumi   int j = 1;
19*1c25a3bfSNAKAMURA Takumi }
20*1c25a3bfSNAKAMURA Takumi 
21*1c25a3bfSNAKAMURA Takumi               // CHECK-LABEL: _Z4funcIiEiT_:
22*1c25a3bfSNAKAMURA Takumi               // BRCOV: |  |  Branch ([[@LINE-8]]:6): [True: 0, False: 1]
23*1c25a3bfSNAKAMURA Takumi               // CHECK-LABEL: _Z4funcIbEiT_:
24*1c25a3bfSNAKAMURA Takumi               // BRCOV: |  |  Branch ([[@LINE-10]]:6): [True: 1, False: 0]
25*1c25a3bfSNAKAMURA Takumi               // CHECK-LABEL: _Z4funcIfEiT_:
26*1c25a3bfSNAKAMURA Takumi               // BRCOV: |  |  Branch ([[@LINE-12]]:6): [True: 0, False: 1]
27*1c25a3bfSNAKAMURA Takumi 
28*1c25a3bfSNAKAMURA Takumi 
29*1c25a3bfSNAKAMURA Takumi int main() {
30*1c25a3bfSNAKAMURA Takumi   if (func<int>(0))      // BRCOV: |  Branch ([[@LINE]]:7): [True: 1, False: 0]
31*1c25a3bfSNAKAMURA Takumi     printf("case1\n");
32*1c25a3bfSNAKAMURA Takumi   if (func<bool>(true))  // BRCOV: |  Branch ([[@LINE]]:7): [True: 0, False: 1]
33*1c25a3bfSNAKAMURA Takumi     printf("case2\n");
34*1c25a3bfSNAKAMURA Takumi   if (func<float>(0.0))  // BRCOV: |  Branch ([[@LINE]]:7): [True: 1, False: 0]
35*1c25a3bfSNAKAMURA Takumi     printf("case3\n");
36*1c25a3bfSNAKAMURA Takumi   (void)0;
37*1c25a3bfSNAKAMURA Takumi   return 0;
38*1c25a3bfSNAKAMURA Takumi }
39