diff --git a/clang/unittests/libclang/CrashTests/LibclangCrashTest.cpp b/clang/unittests/libclang/CrashTests/LibclangCrashTest.cpp index 26c63cfbd427b..5c606bfa291af 100644 --- a/clang/unittests/libclang/CrashTests/LibclangCrashTest.cpp +++ b/clang/unittests/libclang/CrashTests/LibclangCrashTest.cpp @@ -12,6 +12,11 @@ #include TEST_F(LibclangParseTest, InstallAbortingLLVMFatalErrorHandler) { + // gtest death-tests execute in a sub-process (fork), which invalidates + // any signpost handles and would cause spurious crashes if used. Use the + // "threadsafe" style of death-test to work around this. + GTEST_FLAG_SET(death_test_style, "threadsafe"); + clang_toggleCrashRecovery(0); clang_install_aborting_llvm_fatal_error_handler(); @@ -24,6 +29,11 @@ TEST_F(LibclangParseTest, InstallAbortingLLVMFatalErrorHandler) { } TEST_F(LibclangParseTest, UninstallAbortingLLVMFatalErrorHandler) { + // gtest death-tests execute in a sub-process (fork), which invalidates + // any signpost handles and would cause spurious crashes if used. Use the + // "threadsafe" style of death-test to work around this. + GTEST_FLAG_SET(death_test_style, "threadsafe"); + clang_toggleCrashRecovery(0); clang_install_aborting_llvm_fatal_error_handler(); clang_uninstall_llvm_fatal_error_handler();