11c25a3bfSNAKAMURA Takumi 21c25a3bfSNAKAMURA Takumi 31c25a3bfSNAKAMURA Takumi 41c25a3bfSNAKAMURA Takumi 51c25a3bfSNAKAMURA Takumi #include <stdio.h> 61c25a3bfSNAKAMURA Takumi #include <stdlib.h> 7*275a2770SNAKAMURA Takumi // CHECK: | [[#min(C,4)]]|void func( 81c25a3bfSNAKAMURA Takumi void func(int a, int b) { 91c25a3bfSNAKAMURA Takumi bool b0 = a <= b; 101c25a3bfSNAKAMURA Takumi bool b1 = a == b; 111c25a3bfSNAKAMURA Takumi bool b2 = a >= b; 121c25a3bfSNAKAMURA Takumi bool b3 = a < b; 131c25a3bfSNAKAMURA Takumi bool b4 = a > b; 141c25a3bfSNAKAMURA Takumi bool b5 = a != b; 151c25a3bfSNAKAMURA Takumi 161c25a3bfSNAKAMURA Takumi bool c = b0 && // BRCOV: Branch ([[@LINE]]:12): [True: [[#min(C,3)]], False: 1] 171c25a3bfSNAKAMURA Takumi b1 && // BRCOV: Branch ([[@LINE]]:12): [True: [[#min(C,2)]], False: 1] 181c25a3bfSNAKAMURA Takumi b2 && // BRCOV: Branch ([[@LINE]]:12): [True: [[#min(C,2)]], False: 0] 191c25a3bfSNAKAMURA Takumi b3 && // BRCOV: Branch ([[@LINE]]:12): [True: 0, False: [[#min(C,2)]]] 201c25a3bfSNAKAMURA Takumi b4 && // BRCOV: Branch ([[@LINE]]:12): [True: 0, False: 0] 211c25a3bfSNAKAMURA Takumi b5; // BRCOV: Branch ([[@LINE]]:12): [True: 0, False: 0] 221c25a3bfSNAKAMURA Takumi 231c25a3bfSNAKAMURA Takumi bool d = b0 || // BRCOV: Branch ([[@LINE]]:12): [True: [[#min(C,3)]], False: 1] 241c25a3bfSNAKAMURA Takumi b1 || // BRCOV: Branch ([[@LINE]]:12): [True: 0, False: 1] 251c25a3bfSNAKAMURA Takumi b2 || // BRCOV: Branch ([[@LINE]]:12): [True: 1, False: 0] 261c25a3bfSNAKAMURA Takumi b3 || // BRCOV: Branch ([[@LINE]]:12): [True: 0, False: 0] 271c25a3bfSNAKAMURA Takumi b4 || // BRCOV: Branch ([[@LINE]]:12): [True: 0, False: 0] 281c25a3bfSNAKAMURA Takumi b5; // BRCOV: Branch ([[@LINE]]:12): [True: 0, False: 0] 291c25a3bfSNAKAMURA Takumi 301c25a3bfSNAKAMURA Takumi bool e = (b0 && // BRCOV: Branch ([[@LINE]]:13): [True: [[#min(C,3)]], False: 1] 311c25a3bfSNAKAMURA Takumi b5) || // BRCOV: Branch ([[@LINE]]:13): [True: 1, False: [[#min(C,2)]]] 321c25a3bfSNAKAMURA Takumi (b1 && // BRCOV: Branch ([[@LINE]]:13): [True: [[#min(C,2)]], False: 1] 331c25a3bfSNAKAMURA Takumi b4) || // BRCOV: Branch ([[@LINE]]:13): [True: 0, False: [[#min(C,2)]]] 341c25a3bfSNAKAMURA Takumi (b2 && // BRCOV: Branch ([[@LINE]]:13): [True: [[#min(C,3)]], False: 0] 351c25a3bfSNAKAMURA Takumi b3) || // BRCOV: Branch ([[@LINE]]:13): [True: 0, False: [[#min(C,3)]]] 361c25a3bfSNAKAMURA Takumi (b3 && // BRCOV: Branch ([[@LINE]]:13): [True: 0, False: [[#min(C,3)]]] 371c25a3bfSNAKAMURA Takumi b2) || // BRCOV: Branch ([[@LINE]]:13): [True: 0, False: 0] 381c25a3bfSNAKAMURA Takumi (b4 && // BRCOV: Branch ([[@LINE]]:13): [True: 1, False: [[#min(C,2)]]] 391c25a3bfSNAKAMURA Takumi b1) || // BRCOV: Branch ([[@LINE]]:13): [True: 0, False: 1] 401c25a3bfSNAKAMURA Takumi (b5 && // BRCOV: Branch ([[@LINE]]:13): [True: 1, False: [[#min(C,2)]]] 411c25a3bfSNAKAMURA Takumi b0); // BRCOV: Branch ([[@LINE]]:13): [True: 0, False: 1] 421c25a3bfSNAKAMURA Takumi 431c25a3bfSNAKAMURA Takumi bool f = (b0 || // BRCOV: Branch ([[@LINE]]:13): [True: [[#min(C,3)]], False: 1] 441c25a3bfSNAKAMURA Takumi b5) && // BRCOV: Branch ([[@LINE]]:13): [True: 1, False: 0] 451c25a3bfSNAKAMURA Takumi (b1 || // BRCOV: Branch ([[@LINE]]:13): [True: [[#min(C,2)]], False: [[#min(C,2)]]] 461c25a3bfSNAKAMURA Takumi b4) && // BRCOV: Branch ([[@LINE]]:13): [True: 1, False: 1] 471c25a3bfSNAKAMURA Takumi (b2 || // BRCOV: Branch ([[@LINE]]:13): [True: [[#min(C,3)]], False: 0] 481c25a3bfSNAKAMURA Takumi b3) && // BRCOV: Branch ([[@LINE]]:13): [True: 0, False: 0] 491c25a3bfSNAKAMURA Takumi (b3 || // BRCOV: Branch ([[@LINE]]:13): [True: 0, False: [[#min(C,3)]]] 501c25a3bfSNAKAMURA Takumi b2) && // BRCOV: Branch ([[@LINE]]:13): [True: [[#min(C,3)]], False: 0] 511c25a3bfSNAKAMURA Takumi (b4 || // BRCOV: Branch ([[@LINE]]:13): [True: 1, False: [[#min(C,2)]]] 521c25a3bfSNAKAMURA Takumi b1) && // BRCOV: Branch ([[@LINE]]:13): [True: [[#min(C,2)]], False: 0] 531c25a3bfSNAKAMURA Takumi (b5 || // BRCOV: Branch ([[@LINE]]:13): [True: 1, False: [[#min(C,2)]]] 541c25a3bfSNAKAMURA Takumi b0); // BRCOV: Branch ([[@LINE]]:13): [True: [[#min(C,2)]], False: 0] 551c25a3bfSNAKAMURA Takumi 561c25a3bfSNAKAMURA Takumi if (c) // BRCOV: Branch ([[@LINE]]:7): [True: 0, False: [[#min(C,4)]]] 571c25a3bfSNAKAMURA Takumi printf("case0\n"); 581c25a3bfSNAKAMURA Takumi else 591c25a3bfSNAKAMURA Takumi printf("case1\n"); 601c25a3bfSNAKAMURA Takumi 611c25a3bfSNAKAMURA Takumi if (d) // BRCOV: Branch ([[@LINE]]:7): [True: [[#min(C,4)]], False: 0] 621c25a3bfSNAKAMURA Takumi printf("case2\n"); 631c25a3bfSNAKAMURA Takumi else 641c25a3bfSNAKAMURA Takumi printf("case3\n"); 651c25a3bfSNAKAMURA Takumi 661c25a3bfSNAKAMURA Takumi if (e) // BRCOV: Branch ([[@LINE]]:7): [True: 1, False: [[#min(C,3)]]] 671c25a3bfSNAKAMURA Takumi printf("case4\n"); 681c25a3bfSNAKAMURA Takumi else 691c25a3bfSNAKAMURA Takumi printf("case5\n"); 701c25a3bfSNAKAMURA Takumi 711c25a3bfSNAKAMURA Takumi if (f) // BRCOV: Branch ([[@LINE]]:7): [True: [[#min(C,3)]], False: 1] 721c25a3bfSNAKAMURA Takumi printf("case6\n"); 731c25a3bfSNAKAMURA Takumi else 741c25a3bfSNAKAMURA Takumi printf("case7\n"); 751c25a3bfSNAKAMURA Takumi } 761c25a3bfSNAKAMURA Takumi 771c25a3bfSNAKAMURA Takumi 781c25a3bfSNAKAMURA Takumi int main(int argc, char *argv[]) 791c25a3bfSNAKAMURA Takumi { 801c25a3bfSNAKAMURA Takumi func(atoi(argv[1]), atoi(argv[2])); 811c25a3bfSNAKAMURA Takumi (void)0; 821c25a3bfSNAKAMURA Takumi return 0; 831c25a3bfSNAKAMURA Takumi } 84