mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 12:17:11 +01:00 
			
		
		
		
	Fixes for MinGW compatibility
Some versions of MinGW do not support enough of Win32 API to let us work with SEH, so SEH is now MSVC only (+ configurable toggle). Also made use of gmtime_s MSVC only (as oposed to Windows only). Fixes #805
This commit is contained in:
		| @@ -26,6 +26,7 @@ | ||||
|  | ||||
| // CATCH_CONFIG_VARIADIC_MACROS : are variadic macros supported? | ||||
| // CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported? | ||||
| // CATCH_CONFIG_WINDOWS_SEH : is Windows SEH supported? | ||||
| // **************** | ||||
| // Note to maintainers: if new toggles are added please document them | ||||
| // in configuration.md, too | ||||
| @@ -109,6 +110,8 @@ | ||||
| // Visual C++ | ||||
| #ifdef _MSC_VER | ||||
|  | ||||
| #define CATCH_INTERNAL_CONFIG_WINDOWS_SEH | ||||
|  | ||||
| #if (_MSC_VER >= 1600) | ||||
| #   define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR | ||||
| #   define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR | ||||
| @@ -233,6 +236,9 @@ | ||||
| # if defined(CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS) && !defined(CATCH_CONFIG_CPP11_NO_TYPE_TRAITS) && !defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) && !defined(CATCH_CONFIG_NO_CPP11) | ||||
| #  define CATCH_CONFIG_CPP11_TYPE_TRAITS | ||||
| # endif | ||||
| #if defined(CATCH_INTERNAL_CONFIG_WINDOWS_SEH) && !defined(CATCH_CONFIG_NO_WINDOWS_SEH) && !defined(CATCH_CONFIG_WINDOWS_SEH) | ||||
| #   define CATCH_CONFIG_WINDOWS_SEH | ||||
| #endif | ||||
|  | ||||
| #if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) | ||||
| #   define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS | ||||
|   | ||||
| @@ -22,10 +22,17 @@ namespace Catch { | ||||
| } // namespace Catch | ||||
|  | ||||
| #if defined ( CATCH_PLATFORM_WINDOWS ) ///////////////////////////////////////// | ||||
|  | ||||
|  | ||||
| #include "catch_windows_h_proxy.h" | ||||
|  | ||||
| #  if !defined ( CATCH_CONFIG_WINDOWS_SEH ) | ||||
|  | ||||
| namespace Catch { | ||||
|     struct FatalConditionHandler { | ||||
|         void reset() {}         | ||||
|     }; | ||||
| } | ||||
|  | ||||
| #  else // CATCH_CONFIG_WINDOWS_SEH is defined | ||||
|  | ||||
| namespace Catch { | ||||
|  | ||||
| @@ -84,6 +91,8 @@ namespace Catch { | ||||
|  | ||||
| } // namespace Catch | ||||
|  | ||||
| #  endif // CATCH_CONFIG_WINDOWS_SEH | ||||
|  | ||||
| #else // Not Windows - assumed to be POSIX compatible ////////////////////////// | ||||
|  | ||||
| #include <signal.h> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Martin Hořeňovský
					Martin Hořeňovský