summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkosak@google.com <kosak@google.com@861a406c-534a-0410-8894-cb66d6ee9925>2015-01-08 03:34:16 +0000
committerkosak@google.com <kosak@google.com@861a406c-534a-0410-8894-cb66d6ee9925>2015-01-08 03:34:16 +0000
commitd3b75e60c86a1541f074540342c81784ac72abcb (patch)
tree64f53c5894faf23416dbc186bdef71035934bfb5
parentad17d499bf1211a8cb808a8710f11237c78d5761 (diff)
downloadgoogletest-d3b75e60c86a1541f074540342c81784ac72abcb.tar.gz
Fix build of Objective-C++ files with new clang versions.
git-svn-id: http://googletest.googlecode.com/svn/trunk@703 861a406c-534a-0410-8894-cb66d6ee9925
-rw-r--r--include/gtest/internal/gtest-port.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/gtest/internal/gtest-port.h b/include/gtest/internal/gtest-port.h
index d8f22c2..208dcfb 100644
--- a/include/gtest/internal/gtest-port.h
+++ b/include/gtest/internal/gtest-port.h
@@ -498,6 +498,11 @@ struct _RTL_CRITICAL_SECTION;
# define _HAS_EXCEPTIONS 1
# endif // _HAS_EXCEPTIONS
# define GTEST_HAS_EXCEPTIONS _HAS_EXCEPTIONS
+# elif defined(__clang__)
+// __EXCEPTIONS determines if cleanups are enabled. In Obj-C++ files, there can
+// be cleanups for ObjC exceptions, but C++ exceptions might still be disabled.
+// So use a __has_feature check for C++ exceptions instead.
+# define GTEST_HAS_EXCEPTIONS __has_feature(cxx_exceptions)
# elif defined(__GNUC__) && __EXCEPTIONS
// gcc defines __EXCEPTIONS to 1 iff exceptions are enabled.
# define GTEST_HAS_EXCEPTIONS 1