brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · cdcee76 Raw
67 lines · cpp
1// Test to ensure instrumentation of logical operator RHS True/False counters2// are being instrumented for branch coverage3 4// RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++11 -main-file-name branch-logical-mixed.cpp %s -o - -emit-llvm -fprofile-instrument=clang | FileCheck -allow-deprecated-dag-overlap %s5 6 7// CHECK: @[[FUNC:__profc__Z4funcv]] = {{.*}} global [61 x i64] zeroinitializer8 9 10// CHECK-LABEL: @_Z4funcv()11bool func() {12  bool bt0 = true;13  bool bt1 = true;14  bool bt2 = true;15  bool bt3 = true;16  bool bt4 = true;17  bool bt5 = true;18  bool bf0 = false;19  bool bf1 = false;20  bool bf2 = false;21  bool bf3 = false;22  bool bf4 = false;23  bool bf5 = false;24 25  bool a = bt0 &&26           bf0 && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 1027           bt1 && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 828           bf1 && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 629           bt2 && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 430           bf2;   // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 231 32  bool b = bt0 ||33           bf0 || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 2034           bt1 || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 1835           bf1 || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 1636           bt2 || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 1437           bf2;   // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 1238 39  bool c = (bt0 &&40            bf0) || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 2741           (bt1 &&42            bf1) || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 2943           (bt2 &&44            bf2) || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 3145           (bt3 &&46            bf3) || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 3347           (bt4 &&48            bf4) || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 3549           (bf5 &&50            bf5); // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 3751 52  bool d = (bt0 ||53            bf0) && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 4454           (bt1 ||55            bf1) && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 4656           (bt2 ||57            bf2) && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 4858           (bt3 ||59            bf3) && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 5060           (bt4 ||61            bf4) && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 5262           (bt5 ||63            bf5); // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 5464 65  return a && b && c && d;66}67