From 50ea8536045aacbeee24415c4b229008d6558778 Mon Sep 17 00:00:00 2001 From: sameersharmadev Date: Thu, 10 Jul 2025 10:03:33 +0530 Subject: [PATCH] Use __builtin_debugtrap or SIGTRAP instead of __builtin_trap for --gtest_break_on_failure --- googletest/src/gtest.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc index 804af4657..c595f3244 100644 --- a/googletest/src/gtest.cc +++ b/googletest/src/gtest.cc @@ -5477,10 +5477,13 @@ void UnitTest::AddTestPartResult(TestPartResult::Type result_type, (defined(__x86_64__) || defined(__i386__))) // with clang/gcc we can achieve the same effect on x86 by invoking int3 asm("int3"); +#elif defined(__clang__) && __has_builtin(__builtin_debugtrap) + __builtin_debugtrap(); +#elif defined(__GNUC__) + raise(SIGTRAP); #elif GTEST_HAS_BUILTIN(__builtin_trap) - __builtin_trap(); -#elif defined(SIGTRAP) - raise(SIGTRAP); + __builtin_trap(); + #else // Dereference nullptr through a volatile pointer to prevent the compiler // from removing. We use this rather than abort() or __builtin_trap() for