11 #ifndef USE_DEBUG_COUNTER
12 #define USE_DEBUG_COUNTER 0
15 #ifdef RB_DEBUG_COUNTER
341 #ifndef RUBY_DEBUG_COUNTER_H
342 #define RUBY_DEBUG_COUNTER_H 1
344 #if !defined(__GNUC__) && USE_DEBUG_COUNTER
345 #error "USE_DEBUG_COUNTER is not supported by other than __GNUC__"
349 #define RB_DEBUG_COUNTER(name) RB_DEBUG_COUNTER_##name,
352 #undef RB_DEBUG_COUNTER
355 #if USE_DEBUG_COUNTER
356 extern size_t rb_debug_counter[];
370 #define RB_DEBUG_COUNTER_INC(type) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, 1)
371 #define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (!rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, !(cond)))
372 #define RB_DEBUG_COUNTER_INC_IF(type, cond) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, (cond))
375 #define RB_DEBUG_COUNTER_INC(type) ((void)0)
376 #define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (cond)
377 #define RB_DEBUG_COUNTER_INC_IF(type, cond) (cond)