diff options
author | James McCoy <jamessan@jamessan.com> | 2020-09-20 11:30:20 -0400 |
---|---|---|
committer | James McCoy <jamessan@jamessan.com> | 2020-09-20 11:45:56 -0400 |
commit | 461c18edad41a2ab3301f40b4b2f240d9662800d (patch) | |
tree | cefd9b610818264013d468742aaae0c1a344ac13 /src | |
parent | 9f704c88a57cfb797c21c19672ea6617e9673360 (diff) | |
download | rneovim-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')
-rw-r--r-- | src/nvim/log.h | 3 | ||||
-rw-r--r-- | src/nvim/macros.h | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/nvim/log.h b/src/nvim/log.h index a6a4c78707..d92b4629ed 100644 --- a/src/nvim/log.h +++ b/src/nvim/log.h @@ -5,6 +5,7 @@ #include <stdbool.h> #include "auto/config.h" +#include "nvim/macros.h" #define DEBUG_LOG_LEVEL 0 #define INFO_LOG_LEVEL 1 @@ -68,7 +69,7 @@ # define LOG_CALLSTACK_TO_FILE(fp) log_callstack_to_file(fp, __func__, __LINE__) #endif -#if defined(__has_include) && __has_include("sanitizer/asan_interface.h") +#if NVIM_HAS_INCLUDE("sanitizer/asan_interface.h") # include "sanitizer/asan_interface.h" #endif 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 \ |