From 21dfe34aaea90fdde57e676c24d091b53f0faf42 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Thu, 1 Aug 2024 14:39:06 +0900 Subject: [PATCH] Stringize VM_ASSERT expression before expansion --- vm_core.h | 3 ++- vm_insnhelper.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/vm_core.h b/vm_core.h index dfeb01dfbd..1219e4c225 100644 --- a/vm_core.h +++ b/vm_core.h @@ -56,7 +56,8 @@ #define RVALUE_SIZE (sizeof(struct RBasic) + sizeof(VALUE[RBIMPL_RVALUE_EMBED_LEN_MAX])) #if VM_CHECK_MODE > 0 -#define VM_ASSERT(/*expr, */...) RUBY_ASSERT_WHEN(VM_CHECK_MODE > 0, __VA_ARGS__) +#define VM_ASSERT(expr, ...) \ + RUBY_ASSERT_MESG_WHEN(VM_CHECK_MODE > 0, expr, #expr RBIMPL_VA_OPT_ARGS(__VA_ARGS__)) #define VM_UNREACHABLE(func) rb_bug(#func ": unreachable") #define RUBY_ASSERT_CRITICAL_SECTION #define RUBY_DEBUG_THREAD_SCHEDULE() rb_thread_schedule() diff --git a/vm_insnhelper.c b/vm_insnhelper.c index ea56ea4011..227bfa2004 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -2189,7 +2189,7 @@ rb_vm_search_method_slowpath(const struct rb_callinfo *ci, VALUE klass) { const struct rb_callcache *cc; - VM_ASSERT(RB_TYPE_P(klass, T_CLASS) || RB_TYPE_P(klass, T_ICLASS)); + VM_ASSERT(RB_TYPE_P(klass, T_CLASS) || RB_TYPE_P(klass, T_ICLASS), "klass=%"PRIxVALUE", type=%d", klass, TYPE(klass)); RB_VM_LOCK_ENTER(); {