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