@@ -664,12 +664,22 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION;
664664 defined(GTEST_OS_NETBSD) || defined(GTEST_OS_FUCHSIA) || \
665665 defined(GTEST_OS_DRAGONFLY) || defined(GTEST_OS_GNU_KFREEBSD) || \
666666 defined(GTEST_OS_HAIKU) || defined(GTEST_OS_GNU_HURD))
667+
667668// Death tests require a file system to work properly.
668669#if GTEST_HAS_FILE_SYSTEM
669670#define GTEST_HAS_DEATH_TEST 1
670671#endif // GTEST_HAS_FILE_SYSTEM
671672#endif
672673
674+ // Determines whether the Premature Exit file can be created.
675+ // Created by default when Death tests are supported, but other platforms can
676+ // use the Premature exit file without Death test support (e.g. for detecting
677+ // crashes).
678+ #if GTEST_HAS_DEATH_TEST || \
679+ (defined (GTEST_OS_EMSCRIPTEN) && GTEST_HAS_FILE_SYSTEM)
680+ #define GTEST_INTERNAL_HAS_PREMATURE_EXIT_FILE 1
681+ #endif
682+
673683// Determines whether to support type-driven tests.
674684
675685// Typed tests need <typeinfo> and variadic macros, which GCC, VC++ 8.0,
@@ -822,10 +832,10 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION;
822832#ifndef GTEST_API_
823833
824834#ifdef _MSC_VER
825- #if defined(GTEST_LINKED_AS_SHARED_LIBRARY) && GTEST_LINKED_AS_SHARED_LIBRARY
826- #define GTEST_API_ __declspec (dllimport)
827- #elif defined(GTEST_CREATE_SHARED_LIBRARY) && GTEST_CREATE_SHARED_LIBRARY
835+ #if defined(GTEST_CREATE_SHARED_LIBRARY) && GTEST_CREATE_SHARED_LIBRARY
828836#define GTEST_API_ __declspec (dllexport)
837+ #elif defined(GTEST_LINKED_AS_SHARED_LIBRARY) && GTEST_LINKED_AS_SHARED_LIBRARY
838+ #define GTEST_API_ __declspec (dllimport)
829839#endif
830840#elif GTEST_INTERNAL_HAVE_CPP_ATTRIBUTE(gnu::visibility)
831841#define GTEST_API_ [[gnu::visibility(" default" )]]
@@ -2242,11 +2252,11 @@ using TimeInMillis = int64_t; // Represents time in milliseconds.
22422252
22432253// Macros for declaring flags.
22442254#define GTEST_DECLARE_bool_ (name ) \
2245- ABSL_DECLARE_FLAG (bool , GTEST_FLAG_NAME_(name))
2255+ GTEST_API_ ABSL_DECLARE_FLAG (bool , GTEST_FLAG_NAME_(name))
22462256#define GTEST_DECLARE_int32_ (name ) \
2247- ABSL_DECLARE_FLAG (int32_t , GTEST_FLAG_NAME_(name))
2257+ GTEST_API_ ABSL_DECLARE_FLAG (int32_t , GTEST_FLAG_NAME_(name))
22482258#define GTEST_DECLARE_string_ (name ) \
2249- ABSL_DECLARE_FLAG (std::string, GTEST_FLAG_NAME_(name))
2259+ GTEST_API_ ABSL_DECLARE_FLAG (std::string, GTEST_FLAG_NAME_(name))
22502260
22512261#define GTEST_FLAG_SAVER_ ::absl::FlagSaver
22522262
0 commit comments