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