diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2017-05-13 01:22:53 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2017-05-13 15:04:32 +0200 |
commit | c77c54f1bc8f2a251d6be35d09fe309d653e671f (patch) | |
tree | af60fd833f4ae49e40215616a8268037b321773c | |
parent | 8d987809328569a3cca293af17ce33236a8c7055 (diff) | |
download | rneovim-c77c54f1bc8f2a251d6be35d09fe309d653e671f.tar.gz rneovim-c77c54f1bc8f2a251d6be35d09fe309d653e671f.tar.bz2 rneovim-c77c54f1bc8f2a251d6be35d09fe309d653e671f.zip |
func_attr.h: use NVIM_HAS_ATTRIBUTE
-rw-r--r-- | src/nvim/func_attr.h | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/src/nvim/func_attr.h b/src/nvim/func_attr.h index 3b9cb3e52e..f1a1d9a563 100644 --- a/src/nvim/func_attr.h +++ b/src/nvim/func_attr.h @@ -41,6 +41,8 @@ // $ gcc -E -dM - </dev/null // $ echo | clang -dM -E - +#include "nvim/macros.h" + #ifdef FUNC_ATTR_MALLOC # undef FUNC_ATTR_MALLOC #endif @@ -96,8 +98,7 @@ #ifndef DID_REAL_ATTR # define DID_REAL_ATTR # ifdef __GNUC__ -// place defines for all gnulikes here, for now that's gcc, clang and -// intel. +// For all gnulikes: gcc, clang, intel. // place these after the argument list of the function declaration // (not definition), like so: @@ -113,29 +114,17 @@ # define REAL_FATTR_NONNULL_ARG(...) __attribute__((nonnull(__VA_ARGS__))) # define REAL_FATTR_NORETURN __attribute__((noreturn)) -# if defined(__clang__) && __clang__ == 1 -// clang -# if (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 7)) -# define REAL_FATTR_NONNULL_RET __attribute__((returns_nonnull)) -# endif -# elif defined(__INTEL_COMPILER) -// intel compiler -# else -# define GCC_VERSION \ - (__GNUC__ * 10000 + \ - __GNUC_MINOR__ * 100 + \ - __GNUC_PATCHLEVEL__) -// gcc +# if NVIM_HAS_ATTRIBUTE(returns_nonnull) +# define REAL_FATTR_NONNULL_RET __attribute__((returns_nonnull)) +# endif + +# if NVIM_HAS_ATTRIBUTE(alloc_size) # define REAL_FATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x))) # define REAL_FATTR_ALLOC_SIZE_PROD(x, y) __attribute__((alloc_size(x, y))) -# if GCC_VERSION >= 40900 -# define REAL_FATTR_NONNULL_RET __attribute__((returns_nonnull)) -# endif # endif # endif -// define function attributes that haven't been defined for this specific -// compiler. +// Define attributes that are not defined for this compiler. # ifndef REAL_FATTR_MALLOC # define REAL_FATTR_MALLOC |