Glenn Morris <
rgm@gnu.org> schrieb am Mo., 12. Juni 2017 um 22:30 Uhr:
Eli Zaretskii wrote:
> I think the "if defined __has_attribute &&" part is not needed, since
> conf_post.h defines it fr compilers that lack it. Can you try that?
emacs-module.h does not include config.h, and I don't know if it should.
No, emacs-module.h cannot include any headers except standard C headers.
If not, then I guess something like the following is needed:
--- a/src/emacs-module.h
+++ b/src/emacs-module.h
@@ -35,9 +35,12 @@
# define EMACS_NOEXCEPT
#endif
-#if defined __has_attribute && __has_attribute(__nonnull__)
+#ifdef __has_attribute
+#if __has_attribute(__nonnull__)
# define EMACS_ATTRIBUTE_NONNULL(...)
__attribute__((__nonnull__(__VA_ARGS__)))
-#else
+#endif
+#endif
+#ifndef EMACS_ATTRIBUTE_NONNULL
# define EMACS_ATTRIBUTE_NONNULL(...)
#endif
Probably yes, thanks. (I don't know why the && _expression_ doesn't work.)
(Even with this change or your suggestion, I then get "Module initialization
failed" when running the tests, but that's probably a different issue.)
Do you get a more detailed error message?