[gcov] Fix instrprof-gcov-__gcov_flush-terminate.test

This commit is contained in:
Fangrui Song 2020-06-07 09:31:48 -07:00
parent 175fc4023a
commit b2ffe940b0
4 changed files with 31 additions and 41 deletions

View File

@ -1,13 +0,0 @@
int main(void) {
int i = 22;
__gcov_flush();
i = 42;
asm("int $3");
i = 84;
return 0;
}

View File

@ -1,18 +0,0 @@
// CHECK: -: 0:Source:{{.*}}Inputs{{[/\\]}}instrprof-gcov-__gcov_flush-terminate.c
// CHECK-NEXT: -: 0:Graph:instrprof-gcov-__gcov_flush-terminate.gcno
// CHECK-NEXT: -: 0:Data:instrprof-gcov-__gcov_flush-terminate.gcda
// CHECK-NEXT: -: 0:Runs:1
// CHECK-NEXT: -: 0:Programs:1
// CHECK-NEXT: 1: 1:int main(void) {
// CHECK-NEXT: 1: 2: int i = 22;
// CHECK-NEXT: -: 3:
// CHECK-NEXT: 1: 4: __gcov_flush();
// CHECK-NEXT: -: 5:
// CHECK-NEXT: 1: 6: i = 42;
// CHECK-NEXT: -: 7:
// CHECK-NEXT: 1: 8: asm("int $3");
// CHECK-NEXT: -: 9:
// CHECK-NEXT: 1: 10: i = 84;
// CHECK-NEXT: -: 11:
// CHECK-NEXT: 1: 12: return 0;
// CHECK-NEXT: -: 13:}

View File

@ -0,0 +1,31 @@
/// https://bugs.llvm.org/show_bug.cgi?id=38067
/// An abnormal exit does not clear execution counts of subsequent instructions.
// RUN: mkdir -p %t.dir && cd %t.dir
// RUN: %clang --coverage %s -o %t
// RUN: test -f gcov-__gcov_flush-terminate.gcno
// RUN: rm -f gcov-__gcov_flush-terminate.gcda && %expect_crash %run %t
// RUN: llvm-cov gcov -t gcov-__gcov_flush-terminate.gcda | FileCheck %s
// CHECK: -: 0:Runs:1
// CHECK-NEXT: -: 0:Programs:1
// CHECK: -: 1:void __gcov_flush(void);
// CHECK-NEXT: -: 2:
// CHECK-NEXT: 1: 3:int main(void) {
// CHECK-NEXT: 1: 4: int i = 22;
// CHECK-NEXT: 1: 5: __gcov_flush();
// CHECK-NEXT: 1: 6: i = 42;
// CHECK-NEXT: 1: 7: __builtin_trap();
// CHECK-NEXT: 1: 8: i = 84;
// CHECK-NEXT: 1: 9: return 0;
void __gcov_flush(void);
int main(void) {
int i = 22;
__gcov_flush();
i = 42;
__builtin_trap();
i = 84;
return 0;
}

View File

@ -1,10 +0,0 @@
RUN: mkdir -p %t.d
RUN: cd %t.d
RUN: %clang --coverage -o %t %S/Inputs/instrprof-gcov-__gcov_flush-terminate.c
RUN: test -f instrprof-gcov-__gcov_flush-terminate.gcno
RUN: rm -f instrprof-gcov-__gcov_flush-terminate.gcda
RUN: %expect_crash %run %t
RUN: llvm-cov gcov instrprof-gcov-__gcov_flush-terminate.gcda
RUN: FileCheck --match-full-lines --strict-whitespace --input-file instrprof-gcov-__gcov_flush-terminate.c.gcov %S/Inputs/instrprof-gcov-__gcov_flush-terminate.c.gcov