Fix build regression with old (Xcode 5.1) clangs.

This commit is contained in:
kosak 2015-01-14 06:35:05 +00:00
parent 7489581db8
commit 83602c8340

View File

@ -499,10 +499,14 @@ struct _RTL_CRITICAL_SECTION;
# endif // _HAS_EXCEPTIONS # endif // _HAS_EXCEPTIONS
# define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS # define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS
# elif defined(__clang__) # elif defined(__clang__)
// __EXCEPTIONS determines if cleanups are enabled. In Obj-C++ files, there can // clang defines __EXCEPTIONS iff exceptions are enabled before clang 220714,
// be cleanups for ObjC exceptions, but C++ exceptions might still be disabled. // but iff cleanups are enabled after that. In Obj-C++ files, there can be
// So use a __has_feature check for C++ exceptions instead. // cleanups for ObjC exceptions which also need cleanups, even if C++ exceptions
# define GTEST_HAS_EXCEPTIONS __has_feature(cxx_exceptions) // are disabled. clang has __has_feature(cxx_exceptions) which checks for C++
// exceptions starting at clang r206352, but which checked for cleanups prior to
// that. To reliably check for C++ exception availability with clang, check for
// __EXCEPTIONS && __has_feature(cxx_exceptions).
# define GTEST_HAS_EXCEPTIONS __EXCEPTIONS && __has_feature(cxx_exceptions)
# elif defined(__GNUC__) && __EXCEPTIONS # elif defined(__GNUC__) && __EXCEPTIONS
// gcc defines __EXCEPTIONS to 1 iff exceptions are enabled. // gcc defines __EXCEPTIONS to 1 iff exceptions are enabled.
# define GTEST_HAS_EXCEPTIONS 1 # define GTEST_HAS_EXCEPTIONS 1