1 #ifndef _GL_WARN_ON_USE
3 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
4 /* A compiler attribute is available in gcc versions 4.3.0 and later. */
5 # define _GL_WARN_ON_USE(function, message) \
6 extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
7 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
8 /* Verify the existence of the function. */
9 # define _GL_WARN_ON_USE(function, message) \
10 extern __typeof__ (function) function
11 # else /* Unsupported. */
12 # define _GL_WARN_ON_USE(function, message) \
13 _GL_WARN_EXTERN_C int _gl_warn_on_use
17 /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
18 is like _GL_WARN_ON_USE (function, "string"), except that the function is
19 declared with the given prototype, consisting of return type, parameters,
21 This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
22 not work in this case. */
23 #ifndef _GL_WARN_ON_USE_CXX
24 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
25 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
26 extern rettype function parameters_and_attributes \
27 __attribute__ ((__warning__ (msg)))
28 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
29 /* Verify the existence of the function. */
30 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
31 extern rettype function parameters_and_attributes
32 # else /* Unsupported. */
33 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
34 _GL_WARN_EXTERN_C int _gl_warn_on_use
38 /* _GL_WARN_EXTERN_C declaration;
39 performs the declaration with C linkage. */
40 #ifndef _GL_WARN_EXTERN_C
41 # if defined __cplusplus
42 # define _GL_WARN_EXTERN_C extern "C"
44 # define _GL_WARN_EXTERN_C extern