util: Add ATTRIBUTE_RETURNS_NONNULL.
authorMatt Turner <mattst88@gmail.com>
Fri, 13 May 2016 20:17:02 +0000 (13:17 -0700)
committerMatt Turner <mattst88@gmail.com>
Mon, 16 May 2016 18:06:15 +0000 (11:06 -0700)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
configure.ac
m4/ax_gcc_func_attribute.m4
src/util/macros.h

index 023110e184cbeaf28c2e889ec7f74c1dff6c172c..9fbfe4d5ea4f23dc189f343c2dbf3456a70b55bc 100644 (file)
@@ -224,6 +224,7 @@ AX_GCC_FUNC_ATTRIBUTE([format])
 AX_GCC_FUNC_ATTRIBUTE([malloc])
 AX_GCC_FUNC_ATTRIBUTE([packed])
 AX_GCC_FUNC_ATTRIBUTE([pure])
+AX_GCC_FUNC_ATTRIBUTE([returns_nonnull])
 AX_GCC_FUNC_ATTRIBUTE([unused])
 AX_GCC_FUNC_ATTRIBUTE([warn_unused_result])
 
index 4e0ecbb56c5263cecd0317d177f7cf059ea64e0c..2e67ea2926d855792b38d8b4ebc4afeee8a6133b 100644 (file)
@@ -53,6 +53,7 @@
 #    optimize
 #    packed
 #    pure
+#    returns_nonnull
 #    unused
 #    used
 #    visibility
@@ -76,6 +77,9 @@
 
 #serial 2
 
+# mattst88:
+#     Added support for returns_nonnull attribute
+
 AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
     AS_VAR_PUSHDEF([ac_var], [ax_cv_have_func_attribute_$1])
 
@@ -175,6 +179,9 @@ AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
                 [pure], [
                     int foo( void ) __attribute__(($1));
                 ],
+                [returns_nonnull], [
+                    int *foo( void ) __attribute__(($1));
+                ],
                 [unused], [
                     int foo( void ) __attribute__(($1));
                 ],
index c0bfb15a47aa239b2621f7dc90c87b65bb51dd51..9ddf675965b4e53e2f51a62707077818de34f2a4 100644 (file)
@@ -154,6 +154,12 @@ do {                       \
 #define ATTRIBUTE_PURE
 #endif
 
+#ifdef HAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL
+#define ATTRIBUTE_RETURNS_NONNULL __attribute__((__returns_nonnull__))
+#else
+#define ATTRIBUTE_RETURNS_NONNULL
+#endif
+
 #ifdef __cplusplus
 /**
  * Macro function that evaluates to true if T is a trivially