brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · ad62710 Raw
53 lines · cpp
1 2 3 4 5#define COND1 (a == b)6#define COND2 (a != b)7#define COND3 (COND1 && COND2)8#define COND4 (COND3 ? COND2 : COND1) // BRCOV: | Branch ([[@LINE]]:15): [True: 1, False: [[#min(C,2)]]]9#define MACRO1 COND310#define MACRO2 MACRO111#define MACRO3 MACRO212 13#include <stdlib.h>14 15// CHECK: |{{ +}}[[#min(C,3)]]|bool func(16bool func(int a, int b) {17  bool c = COND1 && COND2; // BRCOV: |  |  |  Branch ([[@LINE-12]]:15): [True: 1, False: [[#min(C,2)]]]18                           // BRCOV: |  |  |  Branch ([[@LINE-12]]:15): [True: 0, False: 1]19  bool d = COND3;          // BRCOV: |  |  |  |  |  Branch ([[@LINE-14]]:15): [True: 1, False: [[#min(C,2)]]]20                           // BRCOV: |  |  |  |  |  Branch ([[@LINE-14]]:15): [True: 0, False: 1]21  bool e = MACRO1;         // BRCOV: |  |  |  |  |  |  |  Branch ([[@LINE-16]]:15): [True: 1, False: [[#min(C,2)]]]22                           // BRCOV: |  |  |  |  |  |  |  Branch ([[@LINE-16]]:15): [True: 0, False: 1]23  bool f = MACRO2;         // BRCOV: |  |  |  |  |  |  |  |  |  Branch ([[@LINE-18]]:15): [True: 1, False: [[#min(C,2)]]]24                           // BRCOV: |  |  |  |  |  |  |  |  |  Branch ([[@LINE-18]]:15): [True: 0, False: 1]25  bool g = MACRO3;         // BRCOV: |  |  |  |  |  |  |  |  |  |  |  Branch ([[@LINE-20]]:15): [True: 1, False: [[#min(C,2)]]]26                           // BRCOV: |  |  |  |  |  |  |  |  |  |  |  Branch ([[@LINE-20]]:15): [True: 0, False: 1]27  return c && d && e && f && g;28                           // BRCOV: |  Branch ([[@LINE-1]]:10): [True: 0, False: [[#min(C,3)]]]29                           // BRCOV: |  Branch ([[@LINE-2]]:15): [True: 0, False: 0]30                           // BRCOV: |  Branch ([[@LINE-3]]:20): [True: 0, False: 0]31                           // BRCOV: |  Branch ([[@LINE-4]]:25): [True: 0, False: 0]32                           // BRCOV: |  Branch ([[@LINE-5]]:30): [True: 0, False: 0]33}34 35 36bool func2(int a, int b) {37    bool h = MACRO3 || COND4;  // BRCOV: |  |  |  |  |  |  |  |  |  |  |  Branch ([[@LINE-32]]:15): [True: 1, False: [[#min(C,2)]]]38                               // BRCOV: |  |  |  |  |  |  |  |  |  |  |  Branch ([[@LINE-32]]:15): [True: 0, False: 1]39                               // BRCOV: |  |  |  |  |  |  |  Branch ([[@LINE-34]]:15): [True: 1, False: [[#min(C,2)]]]40                               // BRCOV: |  |  |  |  |  |  |  Branch ([[@LINE-34]]:15): [True: 0, False: 1]41                               // BRCOV: |  |  |  Branch ([[@LINE-33]]:15): [True: 1, False: [[#min(C,2)]]]42  return h;43}44 45 46int main(int argc, char *argv[])47{48  func(atoi(argv[1]), atoi(argv[2]));49  func2(atoi(argv[1]), atoi(argv[2]));50  (void)0;51  return 0;52}53