summaryrefslogtreecommitdiff
path: root/src/mongo/util/quick_exit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/util/quick_exit.cpp')
-rw-r--r--src/mongo/util/quick_exit.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mongo/util/quick_exit.cpp b/src/mongo/util/quick_exit.cpp
index caf113da50a..b934067fd8c 100644
--- a/src/mongo/util/quick_exit.cpp
+++ b/src/mongo/util/quick_exit.cpp
@@ -65,6 +65,8 @@
#ifdef MONGO_GCOV
extern "C" void __gcov_flush();
+extern "C" void __gcov_dump();
+extern "C" void __gcov_reset();
#endif
namespace mongo {
@@ -80,8 +82,13 @@ void quickExitWithoutLogging(int code) {
quickExitMutex->lock();
#ifdef MONGO_GCOV
+#if (defined(__clang__) && __clang_major__ >= 12) || __GNUC__ >= 11
+ __gcov_dump();
+ __gcov_reset();
+#else
__gcov_flush();
#endif
+#endif
#if __has_feature(address_sanitizer)
// Always dump coverage data first because older versions of sanitizers may not write coverage