Declare warn_unused_result only on GCC >= 3.4.0.
authorPetteri Aimonen <jpa@git.mail.kapsi.fi>
Thu, 9 Aug 2012 13:15:23 +0000 (16:15 +0300)
committerPetteri Aimonen <jpa@git.mail.kapsi.fi>
Thu, 9 Aug 2012 13:15:23 +0000 (16:15 +0300)
Thanks to cea.max.simoes for bug report & fix.

Update issue 25
Status: FixedInGit

pb_decode.c
pb_encode.c

index 6d3a0b6..5ef40ec 100644 (file)
@@ -3,12 +3,12 @@
  * 2011 Petteri Aimonen <jpa@kapsi.fi>
  */
 
-
-#ifdef __GNUC__
-/* Verify that we remember to check all return values for proper error propagation */
-#define checkreturn __attribute__((warn_unused_result))
+/* The warn_unused_result attribute appeared first in gcc-3.4.0 */
+#if !defined(__GNUC__) || ( __GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 4)
+    #define checkreturn
 #else
-#define checkreturn
+    /* Verify that we remember to check all return values for proper error propagation */
+    #define checkreturn __attribute__((warn_unused_result))
 #endif
 
 #include "pb.h"
index 8868bb6..3fc0381 100644 (file)
@@ -8,14 +8,14 @@
 #include "pb_encode.h"
 #include <string.h>
 
-#ifdef __GNUC__
-/* Verify that we remember to check all return values for proper error propagation */
-#define checkreturn __attribute__((warn_unused_result))
+/* The warn_unused_result attribute appeared first in gcc-3.4.0 */
+#if !defined(__GNUC__) || ( __GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 4)
+    #define checkreturn
 #else
-#define checkreturn
+    /* Verify that we remember to check all return values for proper error propagation */
+    #define checkreturn __attribute__((warn_unused_result))
 #endif
 
-
 typedef bool (*pb_encoder_t)(pb_ostream_t *stream, const pb_field_t *field, const void *src) checkreturn;
 
 /* --- Function pointers to field encoders ---