diff options
author | Bruno Haible <bruno@clisp.org> | 2020-08-09 14:51:56 +0200 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2020-08-09 14:51:56 +0200 |
commit | 94e462dba2d39c73858d855d528f2d86253de498 (patch) | |
tree | 9c50b3d0f820a99e0d0acbc2b5e05fe42b469764 /lib/cdefs.h | |
parent | 90cc47f28487c90cecfb312c808a0710dcfbf114 (diff) | |
download | gnulib-94e462dba2d39c73858d855d528f2d86253de498.tar.gz |
Add ability to emit user-defined warnings and errors with clang.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Define _GL_ATTRIBUTE_ERROR,
_GL_ATTRIBUTE_WARNING using an attribute for clang.
* lib/warn-on-use.h (_GL_WARN_ON_USE, _GL_WARN_ON_USE_ATTRIBUTE,
_GL_WARN_ON_USE_CXX): Define using an attribute for clang.
* lib/cdefs.h (__warndecl, __warnattr, __errordecl): Define using an
attribute for clang.
Diffstat (limited to 'lib/cdefs.h')
-rw-r--r-- | lib/cdefs.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/cdefs.h b/lib/cdefs.h index b034c0bdfd..801753c7f3 100644 --- a/lib/cdefs.h +++ b/lib/cdefs.h @@ -129,6 +129,12 @@ # define __warnattr(msg) __attribute__((__warning__ (msg))) # define __errordecl(name, msg) \ extern void name (void) __attribute__((__error__ (msg))) +#elif __clang_major__ >= 4 +# define __warndecl(name, msg) \ + extern void name (void) __attribute__((__diagnose_if__ (1, msg, "warning"))) +# define __warnattr(msg) __attribute__((__diagnose_if__ (1, msg, "warning"))) +# define __errordecl(name, msg) \ + extern void name (void) __attribute__((__diagnose_if__ (1, msg, "error"))) #else # define __warndecl(name, msg) extern void name (void) # define __warnattr(msg) |