patch 8.2.0739: incomplete profiling when exiting because of a dealy signal
Problem: Incomplete profiling when exiting because of a dealy signal.
Solution: Call __gcov_flush() if available.
diff --git a/src/os_unix.c b/src/os_unix.c
index b5ae9f8..aea3d5a 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -3312,6 +3312,10 @@
}
}
+#ifdef USE_GCOV_FLUSH
+extern void __gcov_flush();
+#endif
+
void
mch_exit(int r)
{
@@ -3358,6 +3362,12 @@
}
out_flush();
ml_close_all(TRUE); // remove all memfiles
+
+#ifdef USE_GCOV_FLUSH
+ // Flush coverage info before possibly being killed by a deadly signal.
+ __gcov_flush();
+#endif
+
may_core_dump();
#ifdef FEAT_GUI
if (gui.in_use)