Makes gtest_break_on_failure_unittest work on minGW (by vladl); improves
the NULL-dereferencing hack to work with LLVM (by chandlerc).
This commit is contained in:
parent
682c89f755
commit
5e4214cee4
|
@ -3608,7 +3608,11 @@ void UnitTest::AddTestPartResult(TestPartResult::Type result_type,
|
||||||
// the --gtest_catch_exceptions flags are specified.
|
// the --gtest_catch_exceptions flags are specified.
|
||||||
DebugBreak();
|
DebugBreak();
|
||||||
#else
|
#else
|
||||||
*static_cast<int*>(NULL) = 1;
|
// Dereference NULL through a volatile pointer to prevent the compiler
|
||||||
|
// from removing. We use this rather than abort() or __builtin_trap() for
|
||||||
|
// portability: Symbian doesn't implement abort() well, and some debuggers
|
||||||
|
// don't correctly trap abort().
|
||||||
|
*static_cast<volatile int*>(NULL) = 1;
|
||||||
#endif // GTEST_OS_WINDOWS
|
#endif // GTEST_OS_WINDOWS
|
||||||
} else if (GTEST_FLAG(throw_on_failure)) {
|
} else if (GTEST_FLAG(throw_on_failure)) {
|
||||||
#if GTEST_HAS_EXCEPTIONS
|
#if GTEST_HAS_EXCEPTIONS
|
||||||
|
|
|
@ -69,7 +69,7 @@ int main(int argc, char **argv) {
|
||||||
// a general protection fault (segment violation).
|
// a general protection fault (segment violation).
|
||||||
SetErrorMode(SEM_NOGPFAULTERRORBOX | SEM_FAILCRITICALERRORS);
|
SetErrorMode(SEM_NOGPFAULTERRORBOX | SEM_FAILCRITICALERRORS);
|
||||||
|
|
||||||
#if !GTEST_OS_WINDOWS_MOBILE
|
#if GTEST_HAS_SEH && !GTEST_OS_WINDOWS_MOBILE
|
||||||
// The default unhandled exception filter does not always exit
|
// The default unhandled exception filter does not always exit
|
||||||
// with the exception code as exit code - for example it exits with
|
// with the exception code as exit code - for example it exits with
|
||||||
// 0 for EXCEPTION_ACCESS_VIOLATION and 1 for EXCEPTION_BREAKPOINT
|
// 0 for EXCEPTION_ACCESS_VIOLATION and 1 for EXCEPTION_BREAKPOINT
|
||||||
|
|
Loading…
Reference in New Issue
Block a user