aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/func_attr.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/nvim/func_attr.h b/src/nvim/func_attr.h
index cc94a41f80..3b9cb3e52e 100644
--- a/src/nvim/func_attr.h
+++ b/src/nvim/func_attr.h
@@ -113,16 +113,19 @@
# define REAL_FATTR_NONNULL_ARG(...) __attribute__((nonnull(__VA_ARGS__)))
# define REAL_FATTR_NORETURN __attribute__((noreturn))
-# ifdef __clang__
-// clang only
+# 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 only
+// intel compiler
# else
# define GCC_VERSION \
(__GNUC__ * 10000 + \
__GNUC_MINOR__ * 100 + \
__GNUC_PATCHLEVEL__)
-// gcc only
+// gcc
# 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