brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 0cef1c3 Raw
40 lines · cpp
1// RUN: rm -rf %t && split-file %s %t && cd %t2// RUN: %clangxx --coverage main.cpp -o t3// RUN: %run ./t4// RUN: llvm-cov gcov -t t-main. | FileCheck %s5 6//--- main.cpp7#include "a.h"8#include <stdio.h>9 10// CHECK:      Runs:111/// __cxx_global_var_init contains a block from a.h. Don't attribute its lines to main.cpp.12// CHECK-NOT:  {{^ +[0-9]+:}}13 14inline auto *const inl_var_main = // CHECK:      1: [[#]]:inline auto15    new A;                        // CHECK-NEXT: 1: [[#]]:16void foo(int x) {                 // CHECK-NEXT: 1: [[#]]:17  if (x) {                        // CHECK-NEXT: 1: [[#]]:18#include "a.inc"19  } // CHECK:      1: [[#]]:20} // CHECK-NEXT: 1: [[#]]:21// CHECK-NOT:  {{^ +[0-9]+:}}22 23int main(int argc, char *argv[]) { // CHECK:      1: [[#]]:int main24  foo(1);                          // CHECK-NEXT: 1: [[#]]:25}                                  // CHECK-NEXT: 1: [[#]]:26// CHECK-NOT:  {{^ +[0-9]+:}}27 28// CHECK:      Source:a.h29// CHECK:      1: 1:struct A30// CHECK-NOT:  {{^ +[0-9]+:}}31 32//--- a.h33/// Apple targets doesn't enable -mconstructor-aliases by default and the count may be 4.34struct A { A() { } };              // CHECK:      {{[24]}}: [[#]]:struct A35inline auto *const inl_var_a =     // CHECK-NEXT: 1: [[#]]:36    new A;                         // CHECK-NEXT: 1: [[#]]:37 38//--- a.inc39puts(""); // CHECK:      1: [[#]]:puts40