aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2017-05-13 01:22:53 +0200
committerJustin M. Keyes <justinkz@gmail.com>2017-05-13 15:04:32 +0200
commitc77c54f1bc8f2a251d6be35d09fe309d653e671f (patch)
treeaf60fd833f4ae49e40215616a8268037b321773c
parent8d987809328569a3cca293af17ce33236a8c7055 (diff)
downloadrneovim-c77c54f1bc8f2a251d6be35d09fe309d653e671f.tar.gz
rneovim-c77c54f1bc8f2a251d6be35d09fe309d653e671f.tar.bz2
rneovim-c77c54f1bc8f2a251d6be35d09fe309d653e671f.zip
func_attr.h: use NVIM_HAS_ATTRIBUTE
-rw-r--r--src/nvim/func_attr.h29
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