xref: /Universal-ctags/gnulib/arg-nonnull.h (revision 820c1a8d46849a90376d8eb15b319ac05439f656)
1*820c1a8dSHiroo HAYASHI /* A C macro for declaring that specific arguments must not be NULL.
2*820c1a8dSHiroo HAYASHI    Copyright (C) 2009-2021 Free Software Foundation, Inc.
3*820c1a8dSHiroo HAYASHI 
4*820c1a8dSHiroo HAYASHI    This program is free software: you can redistribute it and/or modify it
5*820c1a8dSHiroo HAYASHI    under the terms of the GNU Lesser General Public License as published
6*820c1a8dSHiroo HAYASHI    by the Free Software Foundation; either version 2 of the License, or
7*820c1a8dSHiroo HAYASHI    (at your option) any later version.
8*820c1a8dSHiroo HAYASHI 
9*820c1a8dSHiroo HAYASHI    This program is distributed in the hope that it will be useful,
10*820c1a8dSHiroo HAYASHI    but WITHOUT ANY WARRANTY; without even the implied warranty of
11*820c1a8dSHiroo HAYASHI    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12*820c1a8dSHiroo HAYASHI    Lesser General Public License for more details.
13*820c1a8dSHiroo HAYASHI 
14*820c1a8dSHiroo HAYASHI    You should have received a copy of the GNU Lesser General Public License
15*820c1a8dSHiroo HAYASHI    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
16*820c1a8dSHiroo HAYASHI 
17*820c1a8dSHiroo HAYASHI /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
18*820c1a8dSHiroo HAYASHI    that the values passed as arguments n, ..., m must be non-NULL pointers.
19*820c1a8dSHiroo HAYASHI    n = 1 stands for the first argument, n = 2 for the second argument etc.  */
20*820c1a8dSHiroo HAYASHI #ifndef _GL_ARG_NONNULL
21*820c1a8dSHiroo HAYASHI # if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__
22*820c1a8dSHiroo HAYASHI #  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
23*820c1a8dSHiroo HAYASHI # else
24*820c1a8dSHiroo HAYASHI #  define _GL_ARG_NONNULL(params)
25*820c1a8dSHiroo HAYASHI # endif
26*820c1a8dSHiroo HAYASHI #endif
27