1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Check for nonnull attribute in configure

This commit is contained in:
Nobuyoshi Nakada 2019-10-29 12:12:07 +09:00
parent b86e5c9fec
commit 54eb51d72b
No known key found for this signature in database
GPG key ID: 4BC7D6DF58D8DF60
2 changed files with 9 additions and 4 deletions

View file

@ -1495,6 +1495,11 @@ done
AS_IF([test "$rb_cv_func_exported" != no], [
AC_DEFINE_UNQUOTED(RUBY_FUNC_EXPORTED, [$rb_cv_func_exported extern])
])
RUBY_DECL_ATTRIBUTE([__nonnull__(n)], [RUBY_FUNC_NONNULL(n,x)], [rb_cv_func_nonnull],
[], [function], [
@%:@define x int conftest_attribute_check(void *p)
@%:@define n 1
])
RUBY_APPEND_OPTION(XCFLAGS, -DRUBY_EXPORT)

View file

@ -2387,16 +2387,16 @@ struct rb_call_data {
struct rb_call_cache cc;
struct rb_call_info ci;
};
VALUE rb_funcallv_with_cc(struct rb_call_data*, VALUE, ID, int, const VALUE*)
#if (defined(__clang__) || GCC_VERSION_SINCE(3, 3, 0)) && defined(__OPTIMIZE__)
__attribute__((__visibility__("default"), __nonnull__(1)))
RUBY_FUNC_EXPORTED
RUBY_FUNC_NONNULL(1, VALUE rb_funcallv_with_cc(struct rb_call_data*, VALUE, ID, int, const VALUE*));
#ifdef __GNUC__
# define rb_funcallv(recv, mid, argc, argv) \
__extension__({ \
static struct rb_call_data rb_funcallv_data = { { 0, }, { 0, }, }; \
rb_funcallv_with_cc(&rb_funcallv_data, recv, mid, argc, argv); \
})
#endif
;
/* miniprelude.c, prelude.c */
void Init_prelude(void);