From 8502b7dc474094c807e49f2896ab6ff7622f96bb Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Mon, 8 May 2017 12:33:33 -0400 Subject: DRTVWR-418: Work around VS2013's lack of __has_feature(). --- indra/llcommon/llinstancetracker.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'indra/llcommon') diff --git a/indra/llcommon/llinstancetracker.h b/indra/llcommon/llinstancetracker.h index 69c712b656..910c8dbd99 100644 --- a/indra/llcommon/llinstancetracker.h +++ b/indra/llcommon/llinstancetracker.h @@ -36,7 +36,14 @@ #include // As of 2017-05-06, as far as nat knows, only clang supports __has_feature(). -#if defined(LL_TEST_llinstancetracker) && defined(__clang__) && __has_feature(cxx_noexcept) +// Unfortunately VS2013's preprocessor shortcut logic doesn't prevent it from +// producing (fatal) warnings for defined(__clang__) && __has_feature(...). +// Have to work around that. +#if ! defined(__clang__) +#define __has_feature(x) 0 +#endif // __clang__ + +#if defined(LL_TEST_llinstancetracker) && __has_feature(cxx_noexcept) // ~LLInstanceTracker() performs llassert_always() validation. That's fine in // production code, since the llassert_always() is implemented as an LL_ERRS // message, which will crash-with-message. In our integration test executable, -- cgit v1.2.3