aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/macros.h
diff options
context:
space:
mode:
authorJames McCoy <jamessan@jamessan.com>2020-09-20 11:30:20 -0400
committerJames McCoy <jamessan@jamessan.com>2020-09-20 11:45:56 -0400
commit461c18edad41a2ab3301f40b4b2f240d9662800d (patch)
treecefd9b610818264013d468742aaae0c1a344ac13 /src/nvim/macros.h
parent9f704c88a57cfb797c21c19672ea6617e9673360 (diff)
downloadrneovim-461c18edad41a2ab3301f40b4b2f240d9662800d.tar.gz
rneovim-461c18edad41a2ab3301f40b4b2f240d9662800d.tar.bz2
rneovim-461c18edad41a2ab3301f40b4b2f240d9662800d.zip
Only use __has_include when it is defined
Per GCC's documentation: > The __has_include operator by itself, without any operand or parentheses, acts as a predefined macro so that support for it can be tested in portable code. Thus, the recommended use of the operator is as follows: > > #if defined __has_include > # if __has_include (<stdatomic.h>) > # include <stdatomic.h> > # endif > #endif > > The first ‘#if’ test succeeds only when the operator is supported by the version of GCC (or another compiler) being used. Only when that test succeeds is it valid to use __has_include as a preprocessor operator.
Diffstat (limited to 'src/nvim/macros.h')
-rw-r--r--src/nvim/macros.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/nvim/macros.h b/src/nvim/macros.h
index 0bbaa87aba..07dcb4a8e8 100644
--- a/src/nvim/macros.h
+++ b/src/nvim/macros.h
@@ -152,6 +152,12 @@
#define STR_(x) #x
#define STR(x) STR_(x)
+#ifndef __has_include
+# define NVIM_HAS_INCLUDE(x) 0
+#else
+# define NVIM_HAS_INCLUDE __has_include
+#endif
+
#ifndef __has_attribute
# define NVIM_HAS_ATTRIBUTE(x) 0
#elif defined(__clang__) && __clang__ == 1 \