+++ /dev/null
-// 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:}
--- /dev/null
+/// 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;
+}
+++ /dev/null
-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