12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #ifndef _GL_WARN_ON_USE
- # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
- /* A compiler attribute is available in gcc versions 4.3.0 and later. */
- # define _GL_WARN_ON_USE(function, message) \
- extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
- # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
- /* Verify the existence of the function. */
- # define _GL_WARN_ON_USE(function, message) \
- extern __typeof__ (function) function
- # else /* Unsupported. */
- # define _GL_WARN_ON_USE(function, message) \
- _GL_WARN_EXTERN_C int _gl_warn_on_use
- # endif
- #endif
- /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
- is like _GL_WARN_ON_USE (function, "string"), except that the function is
- declared with the given prototype, consisting of return type, parameters,
- and attributes.
- This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
- not work in this case. */
- #ifndef _GL_WARN_ON_USE_CXX
- # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
- # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
- extern rettype function parameters_and_attributes \
- __attribute__ ((__warning__ (msg)))
- # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
- /* Verify the existence of the function. */
- # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
- extern rettype function parameters_and_attributes
- # else /* Unsupported. */
- # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
- _GL_WARN_EXTERN_C int _gl_warn_on_use
- # endif
- #endif
- /* _GL_WARN_EXTERN_C declaration;
- performs the declaration with C linkage. */
- #ifndef _GL_WARN_EXTERN_C
- # if defined __cplusplus
- # define _GL_WARN_EXTERN_C extern "C"
- # else
- # define _GL_WARN_EXTERN_C extern
- # endif
- #endif
|