aboutsummaryrefslogtreecommitdiff
path: root/objectivec/GPBMessage.m
diff options
context:
space:
mode:
authorThomas Van Lenten <thomasvl@google.com>2015-12-08 17:13:38 -0500
committerThomas Van Lenten <thomasvl@google.com>2015-12-08 17:18:35 -0500
commit52b8d3fe784cb83a6398bb35fd4cf89b92e46c21 (patch)
tree753499e18da89d7facf5417909c10037f148ef05 /objectivec/GPBMessage.m
parent9bd74b7f25b45b253f46025d7300a17df58d213f (diff)
downloadprotobuf-52b8d3fe784cb83a6398bb35fd4cf89b92e46c21.tar.gz
protobuf-52b8d3fe784cb83a6398bb35fd4cf89b92e46c21.tar.bz2
protobuf-52b8d3fe784cb83a6398bb35fd4cf89b92e46c21.zip
Use compiler provided static assert and avoid tripping unused-local-typedef warnings.
Diffstat (limited to 'objectivec/GPBMessage.m')
-rw-r--r--objectivec/GPBMessage.m13
1 files changed, 9 insertions, 4 deletions
diff --git a/objectivec/GPBMessage.m b/objectivec/GPBMessage.m
index caef584c..d9080c3f 100644
--- a/objectivec/GPBMessage.m
+++ b/objectivec/GPBMessage.m
@@ -55,10 +55,15 @@ NSString *const GPBExceptionMessageKey =
static NSString *const kGPBDataCoderKey = @"GPBData";
#ifndef _GPBCompileAssert
-#define _GPBCompileAssertSymbolInner(line, msg) _GPBCompileAssert ## line ## __ ## msg
-#define _GPBCompileAssertSymbol(line, msg) _GPBCompileAssertSymbolInner(line, msg)
-#define _GPBCompileAssert(test, msg) \
- typedef char _GPBCompileAssertSymbol(__LINE__, msg) [ ((test) ? 1 : -1) ]
+ #if __has_feature(c_static_assert) || __has_extension(c_static_assert)
+ #define _GPBCompileAssert(test, msg) _Static_assert((test), #msg)
+ #else
+ // Pre-Xcode 7 support.
+ #define _GPBCompileAssertSymbolInner(line, msg) _GPBCompileAssert ## line ## __ ## msg
+ #define _GPBCompileAssertSymbol(line, msg) _GPBCompileAssertSymbolInner(line, msg)
+ #define _GPBCompileAssert(test, msg) \
+ typedef char _GPBCompileAssertSymbol(__LINE__, msg) [ ((test) ? 1 : -1) ]
+ #endif // __has_feature(c_static_assert) || __has_extension(c_static_assert)
#endif // _GPBCompileAssert
//