diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2020-05-09 09:10:50 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2020-05-09 09:11:53 -0700 |
commit | e59f697cd589e2b68bccb752787ad4a8c9da375d (patch) | |
tree | be97a85cbd7d8b2ee39405d387ccb26792b9ccbf | |
parent | ebfb2c4d1bc8f68a75b02a76ec90eb225123c099 (diff) | |
download | emacs-e59f697cd589e2b68bccb752787ad4a8c9da375d.tar.gz |
Improve nonnull checking with GCC in emacs-module
* src/emacs-module.h.in (EMACS_ATTRIBUTE_NONNULL):
Also do the nonnull check with GCC. (The old code did the
check with Clang but not with GCC.)
-rw-r--r-- | src/emacs-module.h.in | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/emacs-module.h.in b/src/emacs-module.h.in index cd75c0907e4..6a39d507c84 100644 --- a/src/emacs-module.h.in +++ b/src/emacs-module.h.in @@ -48,10 +48,14 @@ information how to write modules and use this header file. # define EMACS_NOEXCEPT_TYPEDEF #endif -#ifdef __has_attribute -#if __has_attribute(__nonnull__) -# define EMACS_ATTRIBUTE_NONNULL(...) __attribute__((__nonnull__(__VA_ARGS__))) -#endif +#if 3 < __GNUC__ + (3 <= __GNUC_MINOR__) +# define EMACS_ATTRIBUTE_NONNULL(...) \ + __attribute__ ((__nonnull__ (__VA_ARGS__))) +#elif defined __has_attribute +# if __has_attribute (__nonnull__) +# define EMACS_ATTRIBUTE_NONNULL(...) \ + __attribute__ ((__nonnull__ (__VA_ARGS__))) +# endif #endif #ifndef EMACS_ATTRIBUTE_NONNULL # define EMACS_ATTRIBUTE_NONNULL(...) @@ -81,7 +85,7 @@ struct emacs_runtime /* Return an environment pointer. */ emacs_env *(*get_environment) (struct emacs_runtime *runtime) - EMACS_ATTRIBUTE_NONNULL(1); + EMACS_ATTRIBUTE_NONNULL (1); }; /* Type aliases for function pointer types used in the module API. @@ -166,7 +170,7 @@ struct emacs_env_28 /* Every module should define a function as follows. */ extern int emacs_module_init (struct emacs_runtime *runtime) EMACS_NOEXCEPT - EMACS_ATTRIBUTE_NONNULL(1); + EMACS_ATTRIBUTE_NONNULL (1); #ifdef __cplusplus } |