xref: /llvm-project/llvm/test/tools/llvm-cov/gcov/gcov-12.c (revision 0873016ceff3ded84bfeaa37b39be675fa178f7d)
1*0873016cSFangrui Song /// Test that llvm-cov supports gcov 12 compatible format.
2*0873016cSFangrui Song #include <math.h>
3*0873016cSFangrui Song #include <stdio.h>
main()4*0873016cSFangrui Song int main() {                                      // GCOV:       1: [[@LINE]]:int main
5*0873016cSFangrui Song   double a[11], result;                           // GCOV-NEXT:  -: [[@LINE]]:
6*0873016cSFangrui Song   for (int i = 0; i < 11; i++)                    // GCOV-NEXT: 12: [[@LINE]]:
7*0873016cSFangrui Song     scanf("%lf", &a[i]);                          // GCOV-NEXT: 11: [[@LINE]]:
8*0873016cSFangrui Song   for (int i = 10; i >= 0; i--) {                 // GCOV-NEXT: 12: [[@LINE]]:
9*0873016cSFangrui Song     result = sqrt(fabs(a[i])) + 5 * pow(a[i], 3); // GCOV-NEXT: 11: [[@LINE]]:
10*0873016cSFangrui Song     printf("\nf(%d) = ", i);                      // GCOV-NEXT: 11: [[@LINE]]:
11*0873016cSFangrui Song     if (result > 400) printf("Overflow!");        // GCOV-NEXT: 11: [[@LINE]]:
12*0873016cSFangrui Song     else printf("%lf", result);                   // GCOV-NEXT:  4: [[@LINE]]:
13*0873016cSFangrui Song   }                                               // GCOV-NEXT:  -: [[@LINE]]:
14*0873016cSFangrui Song   return 0;                                       // GCOV-NEXT:  1: [[@LINE]]:
15*0873016cSFangrui Song }                                                 // GCOV-NEXT:  -: [[@LINE]]:
16*0873016cSFangrui Song 
17*0873016cSFangrui Song // RUN: rm -rf %t && mkdir %t && cd %t
18*0873016cSFangrui Song // RUN: cp %s %p/Inputs/gcov-12.gc* .
19*0873016cSFangrui Song 
20*0873016cSFangrui Song // RUN: llvm-cov gcov gcov-12.c | FileCheck %s
21*0873016cSFangrui Song // CHECK:      File 'gcov-12.c'
22*0873016cSFangrui Song // CHECK-NEXT: Lines executed:100.00% of 9
23*0873016cSFangrui Song // CHECK-NEXT: Creating 'gcov-12.c.gcov'
24*0873016cSFangrui Song 
25*0873016cSFangrui Song // RUN: FileCheck --input-file=%t/gcov-12.c.gcov --check-prefix=HEADER %s
26*0873016cSFangrui Song // RUN: FileCheck --input-file=%t/gcov-12.c.gcov --check-prefix=GCOV %s
27*0873016cSFangrui Song 
28*0873016cSFangrui Song // HEADER: {{^}} -:    0:Source:gcov-12.c
29*0873016cSFangrui Song // HEADER-NEXT:  -:    0:Graph:gcov-12.gcno
30*0873016cSFangrui Song // HEADER-NEXT:  -:    0:Data:gcov-12.gcda
31*0873016cSFangrui Song // HEADER-NEXT:  -:    0:Runs:1{{$}}
32*0873016cSFangrui Song // HEADER-NEXT:  -:    1:/// Test that llvm-cov
33