summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/racc/cparse/cparse.c4
-rw-r--r--include/ruby/ruby.h4
-rw-r--r--vm_eval.c6
3 files changed, 7 insertions, 7 deletions
diff --git a/ext/racc/cparse/cparse.c b/ext/racc/cparse/cparse.c
index cc0e8659be..ca74b80000 100644
--- a/ext/racc/cparse/cparse.c
+++ b/ext/racc/cparse/cparse.c
@@ -212,7 +212,7 @@ static void extract_user_token _((struct cparse_params *v,
VALUE block_args, VALUE *tok, VALUE *val));
static void shift _((struct cparse_params* v, long act, VALUE tok, VALUE val));
static int reduce _((struct cparse_params* v, long act));
-static VALUE reduce0 _((VALUE block_args, VALUE data, VALUE self));
+static rb_block_call_func reduce0;
#ifdef DEBUG
# define D_puts(msg) if (v->sys_debug) puts(msg)
@@ -708,7 +708,7 @@ reduce(struct cparse_params *v, long act)
}
static VALUE
-reduce0(VALUE val, VALUE data, VALUE self)
+reduce0(RB_BLOCK_CALL_FUNC_ARGLIST(_, data))
{
struct cparse_params *v = rb_check_typeddata(data, &cparse_params_type);
VALUE reduce_to, reduce_len, method_id;
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
index ae073222d0..86406ca50e 100644
--- a/include/ruby/ruby.h
+++ b/include/ruby/ruby.h
@@ -1969,8 +1969,8 @@ VALUE rb_block_call(VALUE,ID,int,const VALUE*,rb_block_call_func_t,VALUE);
VALUE rb_rescue(VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE,VALUE),VALUE);
VALUE rb_rescue2(VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE,VALUE),VALUE,...);
VALUE rb_ensure(VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE),VALUE);
-VALUE rb_catch(const char*,VALUE(*)(ANYARGS),VALUE);
-VALUE rb_catch_obj(VALUE,VALUE(*)(ANYARGS),VALUE);
+VALUE rb_catch(const char*,rb_block_call_func_t,VALUE);
+VALUE rb_catch_obj(VALUE,rb_block_call_func_t,VALUE);
NORETURN(void rb_throw(const char*,VALUE));
NORETURN(void rb_throw_obj(VALUE,VALUE));
diff --git a/vm_eval.c b/vm_eval.c
index e9045bbb41..8c7e01edce 100644
--- a/vm_eval.c
+++ b/vm_eval.c
@@ -1921,7 +1921,7 @@ rb_throw(const char *tag, VALUE val)
}
static VALUE
-catch_i(VALUE tag, VALUE data)
+catch_i(RB_BLOCK_CALL_FUNC_ARGLIST(tag, _))
{
return rb_yield_0(1, &tag);
}
@@ -1985,7 +1985,7 @@ rb_f_catch(int argc, VALUE *argv, VALUE self)
}
VALUE
-rb_catch(const char *tag, VALUE (*func)(), VALUE data)
+rb_catch(const char *tag, rb_block_call_func_t func, VALUE data)
{
VALUE vtag = tag ? rb_sym_intern_ascii_cstr(tag) : rb_obj_alloc(rb_cObject);
return rb_catch_obj(vtag, func, data);
@@ -2027,7 +2027,7 @@ rb_catch_protect(VALUE t, rb_block_call_func *func, VALUE data, enum ruby_tag_ty
}
VALUE
-rb_catch_obj(VALUE t, VALUE (*func)(), VALUE data)
+rb_catch_obj(VALUE t, rb_block_call_func_t func, VALUE data)
{
enum ruby_tag_type state;
rb_execution_context_t *ec = GET_EC();