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:
parent
9195ed18ca
commit
ad4da86669
3 changed files with 12 additions and 4 deletions
|
@ -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)
|
||||
|
||||
|
|
|
@ -464,6 +464,9 @@ void rb_sparc_flush_register_windows(void);
|
|||
#define RUBY_ALIAS_FUNCTION(prot, name, args) \
|
||||
RUBY_ALIAS_FUNCTION_TYPE(VALUE, prot, name, args)
|
||||
#endif
|
||||
#ifndef RUBY_FUNC_NONNULL
|
||||
#define RUBY_FUNC_NONNULL(n, x) x
|
||||
#endif
|
||||
|
||||
#ifndef UNALIGNED_WORD_ACCESS
|
||||
# if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue