brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · 3bc675d Raw
108 lines · cpp
1// RUN: llvm-cov show %S/Inputs/deferred-regions.covmapping -instr-profile %S/Inputs/deferred-regions.profdata -show-line-counts-or-regions -dump -path-equivalence=/tmp,%S %s 2>%t.markers > %t.out && FileCheck %s -input-file %t.out && FileCheck %s -input-file %t.markers -check-prefix=MARKER2 3void foo(int x) {4  if (x == 0) { // CHECK: [[@LINE]]|{{ +}}2|5    return; // CHECK-NEXT: [[@LINE]]|{{ +}}1|6  }7 8} // CHECK: [[@LINE]]|{{ +}}1|9 10void bar() {11  return;12 13} // CHECK: [[@LINE]]|{{ +}}1|14 15void for_loop() {16  if (false)17    return; // CHECK: [[@LINE]]|{{ +}}0|18 19  for (int i = 0; i < 10; ++i) { // CHECK: [[@LINE]]|{{ +}}2|20    if (i % 2 == 0) // CHECK: [[@LINE]]|{{ +}}2|21      continue; // CHECK: [[@LINE]]|{{ +}}1|22 23    if (i % 5 == 0) // CHECK: [[@LINE]]|{{ +}}1|24      break; // CHECK: [[@LINE]]|{{ +}}0|25 26    int x = i;27    return; // CHECK: [[@LINE]]|{{ +}}1|28 29  } // CHECK: [[@LINE]]|{{ +}}1|30}31 32struct Error {};33 34void while_loop() {35  if (false)36    return; // CHECK: [[@LINE]]|{{ +}}0|37 38  int x = 0;39  while (++x < 10) { // CHECK: [[@LINE]]|{{ +}}3|40    if (x == 1) // CHECK: [[@LINE]]|{{ +}}2|41      continue; // CHECK: [[@LINE]]|{{ +}}1|42 43    while (++x < 4) { // CHECK: [[@LINE]]|{{ +}}1|44      if (x == 3) // CHECK: [[@LINE]]|{{ +}}1|45        break; // CHECK: [[@LINE]]|{{ +}}1|46               // CHECK: [[@LINE]]|{{ +}}0|47      while (++x < 5) {} // CHECK: [[@LINE]]|{{ +}}0|48    } // CHECK: [[@LINE]]|{{ +}}0|49 50    if (x == 0) // CHECK: [[@LINE]]|{{ +}}1|51      throw Error(); // CHECK: [[@LINE]]|{{ +}}0|52                // CHECK: [[@LINE]]|{{ +}}1|53    while (++x < 9) { // CHECK: [[@LINE]]|{{ +}}6|54      if (x == 0) // CHECK: [[@LINE]]|{{ +}}5|55        break; // CHECK: [[@LINE]]|{{ +}}0|56 57    }58  }59}60 61void gotos() {62  if (false) // CHECK: [[@LINE]]|{{ +}}1|63    goto out; // CHECK: [[@LINE]]|{{ +}}0|64          // CHECK: [[@LINE]]|{{ +}}1|65  return; // CHECK: [[@LINE]]|{{ +}}1|66 67out: // CHECK: [[@LINE]]|{{ +}}0|68	return;69}70 71void if_else(bool flag) {72  if (flag) { // CHECK: [[@LINE]]|{{ +}}2|73    return;   // CHECK: [[@LINE]]|{{ +}}1|74  } else {    // CHECK: [[@LINE]]|{{ +}}1|75    return;   // CHECK: [[@LINE]]|{{ +}}1|76  }           // CHECK: [[@LINE]]|{{ +}}1|77}78 79int main() {80  foo(0);81  foo(1);82  bar();83  for_loop();84  while_loop();85  gotos();86  if_else(true);87  if_else(false);88  return 0;89}90 91// MARKER: Highlighted line 17, 5 -> 1192// MARKER-NEXT: Marker at 19:3 = 193// MARKER-NEXT: Marker at 19:27 = 194// MARKER-NEXT: Highlighted line 24, 7 -> 1295// MARKER-NEXT: Highlighted line 36, 5 -> 1196// MARKER-NEXT: Highlighted line 47, 7 -> 1497// MARKER-NEXT: Highlighted line 47, 14 -> 2198// MARKER-NEXT: Highlighted line 47, 21 -> 2399// MARKER-NEXT: Highlighted line 47, 23 -> 25100// MARKER-NEXT: Highlighted line 47, 25 -> ?101// MARKER-NEXT: Highlighted line 48, 1 -> 6102// MARKER-NEXT: Highlighted line 51, 7 -> 20103// MARKER-NEXT: Marker at 53:5 = 1104// MARKER-NEXT: Highlighted line 55, 9 -> 14105// MARKER-NEXT: Highlighted line 63, 5 -> 13106// MARKER-NEXT: Highlighted line 67, 1 -> ?107// MARKER-NEXT: Highlighted line 68, 1 -> 8108