// RUN: llvm-cov show %S/Inputs/highlightedRanges.covmapping -instr-profile %S/Inputs/highlightedRanges.profdata -dump -path-equivalence=/tmp,%S %s 2>&1 | FileCheck %s -check-prefixes=TEXT,SHARED

void func() {
  return;
  int i = 0;                     // SHARED: Highlighted line [[@LINE]], 3 ->
}                                // SHARED: Highlighted line [[@LINE]], 1 -> 2

void func2(int x) {
  if(x > 5) {
    while(x >= 9) {
      return;
      --x;                       // SHARED: Highlighted line [[@LINE]], 7 ->
    }
    int i = 0;                   // SHARED: Highlighted line [[@LINE]], 5 ->
  }                              // SHARED: Highlighted line [[@LINE]], 1 -> 4
}

void test() {
  int x = 0;

  if (x) {                       // SHARED: Highlighted line [[@LINE]], 10 ->
    x = 0;                       // SHARED: Highlighted line [[@LINE]], 1 ->
  } else {                       // SHARED: Highlighted line [[@LINE]], 1 -> 4
    x = 1;
  }

                                  // SHARED: Highlighted line [[@LINE+1]], 26 ->
  for (int i = 0; i < 0; ++i) {   // SHARED: Highlighted line [[@LINE]], 31 ->
    x = 1;                        // SHARED: Highlighted line [[@LINE]], 1 ->
  }                               // SHARED: Highlighted line [[@LINE]], 1 -> 4

  x = x < 10 ? x +
               1
             : x - 1;             // SHARED: Highlighted line [[@LINE]], 16 -> 21
  x = x > 10 ? x +                // SHARED: Highlighted line [[@LINE]], 16 ->
               1                  // SHARED: Highlighted line [[@LINE]], 1 -> 17
             : x - 1;
}

int main() {
  test();
  func();
  func2(9);
  return 0;
}

// RUN: llvm-cov show %S/Inputs/highlightedRanges.covmapping -instr-profile %S/Inputs/highlightedRanges.profdata -format html -dump -path-equivalence=/tmp,%S %s 2>&1 | FileCheck %s -check-prefixes=HTML,SHARED
