From ca2d19d4e5a47822c250179f88c814c5f401e9bd Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Wed, 11 Dec 2024 14:22:36 -0500 Subject: [PATCH] Implement rb_bug_without_die --- error.c | 13 +++++++++++-- internal/error.h | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) 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) */