1// REQUIRES: lld-available
2// XFAIL: powerpc64-target-arch
3
4// RUN: %clangxx_profgen -fuse-ld=lld -fcoverage-mapping -o %t %s
5// RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t
6// RUN: llvm-profdata merge -o %t.profdata %t.profraw
7// RUN: llvm-cov show %t -instr-profile=%t.profdata 2>&1 | FileCheck %s
8
9#include <stdio.h>
10
11// clang-format off
12int main(int argc, char **argv) { // CHECK: [[@LINE]]| 1|int main(
13 do { // CHECK: [[@LINE]]| 1| do {
14 if (argc == 87) { // CHECK: [[@LINE]]| 1| if (argc
15 break; // CHECK: [[@LINE]]| 0| break
16 } // CHECK: [[@LINE]]| 0| }
17 } while (0); // CHECK: [[@LINE]]| 1| } while
18 printf(format: "coverage after do is present\n"); // CHECK: [[@LINE]]| 1| printf(
19 return 0; // CHECK: [[@LINE]]| 1| return
20} // CHECK: [[@LINE]]| 1|}
21// clang-format on
22

source code of compiler-rt/test/profile/Linux/coverage-do-while.c