aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@atdot.net>2019-07-15 11:27:38 +0900
committerKoichi Sasada <ko1@atdot.net>2019-07-15 11:30:34 +0900
commitc23e5976744f1984b309f0af724fbd8ddea2c56a (patch)
tree48392ced4a8bc32e3422ce43a0a9ee39fb537a31
parentd02f2fc3e2b4d14793c3b25079787a8972ce49c8 (diff)
downloadruby-c23e5976744f1984b309f0af724fbd8ddea2c56a.tar.gz
respect RUBY_DEBUG.
see RUBY_DEBUG for each debug options.
-rw-r--r--hash.c4
-rw-r--r--internal.h2
-rw-r--r--vm_core.h7
3 files changed, 8 insertions, 5 deletions
diff --git a/hash.c b/hash.c
index df77e898a1..9c2da83fee 100644
--- a/hash.c
+++ b/hash.c
@@ -394,9 +394,10 @@ ar_empty_entry(ar_table_entry *entry)
#define RHASH_TYPE(hash) (RHASH_AR_TABLE_P(hash) ? &objhash : RHASH_ST_TABLE(hash)->type)
#define RHASH_AR_TABLE_REF(hash, n) (&RHASH_AR_TABLE(hash)->entries[n])
+#define HASH_ASSERT(expr) RUBY_ASSERT_MESG_WHEN(1, expr, #expr)
+
#if HASH_DEBUG
#define hash_verify(hash) hash_verify_(hash, __FILE__, __LINE__)
-#define HASH_ASSERT(expr) RUBY_ASSERT_MESG_WHEN(1, expr, #expr)
void
rb_hash_dump(VALUE hash)
@@ -471,7 +472,6 @@ hash_verify_(VALUE hash, const char *file, int line)
#else
#define hash_verify(h) ((void)0)
-#define HASH_ASSERT(e) ((void)0)
#endif
static inline int
diff --git a/internal.h b/internal.h
index 0539d49f5b..fb184e290c 100644
--- a/internal.h
+++ b/internal.h
@@ -1302,7 +1302,7 @@ VALUE rb_gvar_defined(struct rb_global_entry *);
/* array.c */
#ifndef ARRAY_DEBUG
-#define ARRAY_DEBUG 0
+#define ARRAY_DEBUG (0+RUBY_DEBUG)
#endif
#ifdef ARRAY_DEBUG
diff --git a/vm_core.h b/vm_core.h
index 8ebdadb08a..0120f21831 100644
--- a/vm_core.h
+++ b/vm_core.h
@@ -17,7 +17,11 @@
* 1: enable local assertions.
*/
#ifndef VM_CHECK_MODE
-#define VM_CHECK_MODE 0
+
+// respect RUBY_DUBUG: if given n is 0, then use RUBY_DEBUG
+#define N_OR_RUBY_DEBUG(n) (((n) > 0) ? (n) : RUBY_DEBUG)
+
+#define VM_CHECK_MODE N_OR_RUBY_DEBUG(0)
#endif
/**
@@ -46,7 +50,6 @@
#if VM_CHECK_MODE > 0
#define VM_ASSERT(expr) RUBY_ASSERT_MESG_WHEN(VM_CHECK_MODE > 0, expr, #expr)
-
#define VM_UNREACHABLE(func) rb_bug(#func ": unreachable")
#else