From: Paul Eggert Date: Sun, 3 May 2020 21:32:38 +0000 (-0700) Subject: attribute: add _GL_ATTRIBUTE_RETURNS_NONNULL X-Git-Tag: v1.0~4133 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=68361201d9a6fee940eda0825084deac35effd35;p=gnulib.git attribute: add _GL_ATTRIBUTE_RETURNS_NONNULL --- diff --git a/ChangeLog b/ChangeLog index fa1e2bdb7c..693671e461 100644 --- a/ChangeLog +++ b/ChangeLog @@ -52,6 +52,7 @@ (_GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOINLINE) (_GL_ATTRIBUTE_NONNULL, _GL_ATTRIBUTE_NONSTRING) (_GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PACKED, _GL_ATTRIBUTE_PURE) + (_GL_ATTRIBUTE_RETURNS_NONNULL) (_GL_ATTRIBUTE_SENTINEL): New macros. * modules/backup-rename, modules/backupfile, modules/c-vasnprintf: * modules/fnmatch, modules/freopen-safer, modules/fts: diff --git a/lib/attribute.h b/lib/attribute.h index 4861c17364..bb7c550f1f 100644 --- a/lib/attribute.h +++ b/lib/attribute.h @@ -51,6 +51,7 @@ #define ATTRIBUTE_NOTHROW _GL_ATTRIBUTE_NOTHROW #define ATTRIBUTE_PACKED _GL_ATTRIBUTE_PACKED #define ATTRIBUTE_PURE _GL_ATTRIBUTE_PURE +#define ATTRIBUTE_RETURNS_NONNULL _GL_ATTRIBUTE_RETURNS_NONNULL #define ATTRIBUTE_SENTINEL(pos) _GL_ATTRIBUTE_SENTINEL(pos) #define ATTRIBUTE_WARNING(msg) _GL_ATTRIBUTE_WARNING(msg) diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4 index 1a817662c2..b0010d0e35 100644 --- a/m4/gnulib-common.m4 +++ b/m4/gnulib-common.m4 @@ -245,6 +245,12 @@ AC_DEFUN([gl_COMMON_BODY], [ # define _GL_ATTRIBUTE_PURE #endif +#if _GL_HAS_ATTRIBUTE (returns_nonnull) +# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) +#else +# define _GL_ATTRIBUTE_RETURNS_NONNULL +#endif + #if _GL_HAS_ATTRIBUTE (sentinel) # define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) #else