1 /// Test that llvm-cov supports gcov 8 compatible format.
4 int main() { // GCOV: 1: [[@LINE]]:int main
5 double a
[11], result
; // GCOV-NEXT: -: [[@LINE]]:
6 for (int i
= 0; i
< 11; i
++) // GCOV-NEXT: 12: [[@LINE]]:
7 scanf("%lf", &a
[i
]); // GCOV-NEXT: 11: [[@LINE]]:
8 for (int i
= 10; i
>= 0; i
--) { // GCOV-NEXT: 12: [[@LINE]]:
9 result
= sqrt(fabs(a
[i
])) + 5 * pow(a
[i
], 3); // GCOV-NEXT: 11: [[@LINE]]:
10 printf("\nf(%lf) = "); // GCOV-NEXT: 11: [[@LINE]]:
11 if (result
> 400) printf("Overflow!"); // GCOV-NEXT: 11: [[@LINE]]:
12 else printf("%lf", result
); // GCOV-NEXT: 4: [[@LINE]]:
13 } // GCOV-NEXT: -: [[@LINE]]:
14 return 0; // GCOV-NEXT: 1: [[@LINE]]:
15 } // GCOV-NEXT: -: [[@LINE]]:
17 // RUN: rm -rf %t && mkdir %t && cd %t
18 // RUN: cp %s %p/Inputs/gcov-8.gc* .
20 // RUN: llvm-cov gcov gcov-8.c | FileCheck %s --check-prefixes=OUT,OUTFILE
21 // OUT: File 'gcov-8.c'
22 // OUT-NEXT: Lines executed:100.00% of 9
23 // OUT-B-NEXT: Branches executed:100.00% of 14
24 // OUT-B-NEXT: Taken at least once:71.43% of 14
25 // OUT-B-NEXT: No calls
26 // OUTFILE-NEXT: Creating 'gcov-8.c.gcov'
29 // RUN: FileCheck --input-file=%t/gcov-8.c.gcov --check-prefix=HEADER %s
30 // RUN: FileCheck --input-file=%t/gcov-8.c.gcov --check-prefix=GCOV %s
32 // HEADER: {{^}} -: 0:Source:gcov-8.c
33 // HEADER-NEXT: -: 0:Graph:gcov-8.gcno
34 // HEADER-NEXT: -: 0:Data:gcov-8.gcda
35 // HEADER-NEXT: -: 0:Runs:1{{$}}
36 // HEADER-NEXT: -: 0:Programs:1
37 // HEADER-NEXT: -: 1:/// Test that llvm-cov
39 // RUN: llvm-cov gcov -i gcov-8.c | FileCheck %s --check-prefix=OUT
40 // RUN: FileCheck %s --check-prefix=I < gcov-8.c.gcov
41 // RUN: llvm-cov gcov --intermediate-format gcov-8.c
42 // RUN: FileCheck %s --check-prefix=I < gcov-8.c.gcov
44 // RUN: llvm-cov gcov -i -b gcov-8.c | FileCheck %s --check-prefixes=OUT,OUT-B
45 // RUN: FileCheck %s --check-prefixes=I,I-B < gcov-8.c.gcov
48 // I-NEXT:function:4,1,main
51 // I-B-NEXT:branch:6,taken
52 // I-B-NEXT:branch:6,taken
54 // I-B-NEXT:branch:7,taken
55 // I-B-NEXT:branch:7,nottaken
57 // I-B-NEXT:branch:8,taken
58 // I-B-NEXT:branch:8,taken
60 // I-NEXT:lcount:10,11
61 // I-B-NEXT:branch:10,taken
62 // I-B-NEXT:branch:10,nottaken
63 // I-NEXT:lcount:11,11
64 // I-B-NEXT:branch:11,taken
65 // I-B-NEXT:branch:11,taken
66 // I-B-NEXT:branch:11,taken
67 // I-B-NEXT:branch:11,nottaken
69 // I-B-NEXT:branch:12,taken
70 // I-B-NEXT:branch:12,nottaken