summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Mitz <mitza@ociweb.com>2018-01-13 12:10:40 -0600
committerAdam Mitz <mitza@ociweb.com>2018-01-13 12:10:40 -0600
commit41018b2be93ea1f5ef30d74ca9a0b9233e86630a (patch)
treeb0648a618435debacca9fedcce1ff0e16b3d7a26
parent26a9a5469899f66eb5816d9d585b296cf49df28a (diff)
downloadATCD-41018b2be93ea1f5ef30d74ca9a0b9233e86630a.tar.gz
Compiler Features 32 Test: need to check Apple clang version numbers which use a different scheme than real clang version numbers
-rw-r--r--ACE/tests/Compiler_Features_32_Test.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/ACE/tests/Compiler_Features_32_Test.cpp b/ACE/tests/Compiler_Features_32_Test.cpp
index cdfbe7bc643..d2b095f6d99 100644
--- a/ACE/tests/Compiler_Features_32_Test.cpp
+++ b/ACE/tests/Compiler_Features_32_Test.cpp
@@ -41,7 +41,13 @@ A::u_type_::~u_type_ ()
void A::clear ()
{
-#if defined __clang__ && __clang_major__ <= 5
+#if defined __clang__ && \
+ (defined __apple_build_version__ && __apple_build_version__ < 9100000 \
+ || __clang_major__ <= 5)
+#define CLANG_WORKAROUND
+#endif
+
+#ifdef CLANG_WORKAROUND
// As of 5.0, clang requires one of two workarounds:
// 1. the name after ~ must be in scope
using std::string;
@@ -54,7 +60,7 @@ struct B {
std::string m;
} u_;
void clear() {
-#if defined __clang__ && __clang_major__ <= 5
+#ifdef CLANG_WORKAROUND
// 2. actual class name instead of typedef
u_.m.std::string::~basic_string ();
#else