Fix autoconf check for function attributes.
authorGuus Sliepen <guus@tinc-vpn.org>
Sun, 7 Jun 2015 20:25:22 +0000 (22:25 +0200)
committerGuus Sliepen <guus@tinc-vpn.org>
Sun, 5 Jul 2015 12:59:26 +0000 (14:59 +0200)
GCC warns when a function attribute has no effect. The autoconf check
turns warnings about attributes into errors, therefore thinking that
they did not work. The reason was that the test function returned void,
which is not suitable for checking both __malloc__ and
__warn_unused_result__.

m4/attribute.m4

index 6a8f555..9d673e9 100644 (file)
@@ -9,8 +9,8 @@ AC_DEFUN([tinc_ATTRIBUTE],
     CFLAGS="$CFLAGS -Wall -Werror"
     AC_COMPILE_IFELSE(
       [AC_LANG_SOURCE(
     CFLAGS="$CFLAGS -Wall -Werror"
     AC_COMPILE_IFELSE(
       [AC_LANG_SOURCE(
-        [void test(void) __attribute__ (($1));
-        void test(void) { return; }
+        [void *test(void) __attribute__ (($1));
+        void *test(void) { return (void *)0; }
        ],
        )],
        [tinc_cv_attribute_$1=yes],
        ],
        )],
        [tinc_cv_attribute_$1=yes],