[gcov] Fix instrprof-gcov-__gcov_flush-terminate.test
authorFangrui Song <maskray@google.com>
Sun, 7 Jun 2020 16:31:48 +0000 (09:31 -0700)
committerFangrui Song <maskray@google.com>
Sun, 7 Jun 2020 16:31:52 +0000 (09:31 -0700)
compiler-rt/test/profile/Inputs/instrprof-gcov-__gcov_flush-terminate.c [deleted file]
compiler-rt/test/profile/Inputs/instrprof-gcov-__gcov_flush-terminate.c.gcov [deleted file]
compiler-rt/test/profile/gcov-__gcov_flush-terminate.c [new file with mode: 0644]
compiler-rt/test/profile/instrprof-gcov-__gcov_flush-terminate.test [deleted file]

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 (file)
index 7b24d69..0000000
+++ /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 (file)
index 24a0906..0000000
+++ /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 (file)
index 0000000..c0c443c
--- /dev/null
@@ -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 (file)
index 1c8ea2a..0000000
+++ /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