diff --git a/base/process/process_posix.cc b/base/process/process_posix.cc
index 589ee7206625b..9636d44ddc249 100644
--- a/base/process/process_posix.cc
+++ b/base/process/process_posix.cc
@@ -10,6 +10,7 @@
 #include <sys/resource.h>
 #include <sys/wait.h>
 
+#include "base/clang_coverage_buildflags.h"
 #include "base/debug/activity_tracker.h"
 #include "base/files/scoped_file.h"
 #include "base/logging.h"
@@ -22,6 +23,9 @@
 #include <sys/event.h>
 #endif
 
+#if BUILDFLAG(CLANG_COVERAGE)
+#include "base/test/clang_coverage.h"
+#endif
 
 namespace {
 
@@ -272,6 +276,9 @@ bool Process::CanBackgroundProcesses() {
 
 // static
 void Process::TerminateCurrentProcessImmediately(int exit_code) {
+#if BUILDFLAG(CLANG_COVERAGE)
+  WriteClangCoverageProfile();
+#endif
   _exit(exit_code);
 }