summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2020-05-09 09:10:50 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2020-05-09 09:11:53 -0700
commite59f697cd589e2b68bccb752787ad4a8c9da375d (patch)
treebe97a85cbd7d8b2ee39405d387ccb26792b9ccbf
parentebfb2c4d1bc8f68a75b02a76ec90eb225123c099 (diff)
downloademacs-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.in16
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
}