diff --git a/error.c b/error.c index 88b8a0653e..59c6fa7dd6 100644 --- a/error.c +++ b/error.c @@ -1085,7 +1085,7 @@ die(void) RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 1, 0) static void -rb_bug_without_die(const char *fmt, va_list args) +rb_bug_without_die_internal(const char *fmt, va_list args) { const char *file = NULL; int line = 0; @@ -1097,12 +1097,21 @@ rb_bug_without_die(const char *fmt, va_list args) report_bug_valist(file, line, fmt, NULL, args); } +void +rb_bug_without_die(const char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + rb_bug_without_die_internal(fmt, args); + va_end(args); +} + void rb_bug(const char *fmt, ...) { va_list args; va_start(args, fmt); - rb_bug_without_die(fmt, args); + rb_bug_without_die_internal(fmt, args); va_end(args); die(); } diff --git a/internal/error.h b/internal/error.h index 78b8d1d938..5d53f96b8e 100644 --- a/internal/error.h +++ b/internal/error.h @@ -185,6 +185,7 @@ NORETURN(static inline void rb_key_err_raise(VALUE mesg, VALUE recv, VALUE name) static inline void Check_Type(VALUE v, enum ruby_value_type t); static inline bool rb_typeddata_is_instance_of_inline(VALUE obj, const rb_data_type_t *data_type); #define rb_typeddata_is_instance_of rb_typeddata_is_instance_of_inline +void rb_bug_without_die(const char *fmt, ...); RUBY_SYMBOL_EXPORT_BEGIN /* error.c (export) */