From b2ffe940b0353b64badf6290d14027a116d2ce59 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Sun, 7 Jun 2020 09:31:48 -0700 Subject: [PATCH] [gcov] Fix instrprof-gcov-__gcov_flush-terminate.test --- .../instrprof-gcov-__gcov_flush-terminate.c | 13 -------- ...strprof-gcov-__gcov_flush-terminate.c.gcov | 18 ----------- .../profile/gcov-__gcov_flush-terminate.c | 31 +++++++++++++++++++ ...instrprof-gcov-__gcov_flush-terminate.test | 10 ------ 4 files changed, 31 insertions(+), 41 deletions(-) delete mode 100644 compiler-rt/test/profile/Inputs/instrprof-gcov-__gcov_flush-terminate.c delete mode 100644 compiler-rt/test/profile/Inputs/instrprof-gcov-__gcov_flush-terminate.c.gcov create mode 100644 compiler-rt/test/profile/gcov-__gcov_flush-terminate.c delete mode 100644 compiler-rt/test/profile/instrprof-gcov-__gcov_flush-terminate.test diff --git a/compiler-rt/test/profile/Inputs/instrprof-gcov-__gcov_flush-terminate.c b/compiler-rt/test/profile/Inputs/instrprof-gcov-__gcov_flush-terminate.c deleted file mode 100644 index 7b24d69c75fc..000000000000 --- a/compiler-rt/test/profile/Inputs/instrprof-gcov-__gcov_flush-terminate.c +++ /dev/null @@ -1,13 +0,0 @@ -int main(void) { - int i = 22; - - __gcov_flush(); - - i = 42; - - asm("int $3"); - - i = 84; - - return 0; -} diff --git a/compiler-rt/test/profile/Inputs/instrprof-gcov-__gcov_flush-terminate.c.gcov b/compiler-rt/test/profile/Inputs/instrprof-gcov-__gcov_flush-terminate.c.gcov deleted file mode 100644 index 24a09066c25f..000000000000 --- a/compiler-rt/test/profile/Inputs/instrprof-gcov-__gcov_flush-terminate.c.gcov +++ /dev/null @@ -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:} diff --git a/compiler-rt/test/profile/gcov-__gcov_flush-terminate.c b/compiler-rt/test/profile/gcov-__gcov_flush-terminate.c new file mode 100644 index 000000000000..c0c443c0e9dd --- /dev/null +++ b/compiler-rt/test/profile/gcov-__gcov_flush-terminate.c @@ -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; +} diff --git a/compiler-rt/test/profile/instrprof-gcov-__gcov_flush-terminate.test b/compiler-rt/test/profile/instrprof-gcov-__gcov_flush-terminate.test deleted file mode 100644 index 1c8ea2ac602d..000000000000 --- a/compiler-rt/test/profile/instrprof-gcov-__gcov_flush-terminate.test +++ /dev/null @@ -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