diff options
Diffstat (limited to 'vm_debug.h')
| -rw-r--r-- | vm_debug.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/vm_debug.h b/vm_debug.h index ead1c7c10a..cf80232f3a 100644 --- a/vm_debug.h +++ b/vm_debug.h @@ -23,8 +23,10 @@ RUBY_SYMBOL_EXPORT_BEGIN struct RNode; VALUE ruby_debug_print_value(int level, int debug_level, const char *header, VALUE v); +void ruby_debug_print_v(VALUE v); ID ruby_debug_print_id(int level, int debug_level, const char *header, ID id); struct RNode *ruby_debug_print_node(int level, int debug_level, const char *header, const struct RNode *node); +void ruby_debug_print_n(const struct RNode *node); int ruby_debug_print_indent(int level, int debug_level, int indent_level); void ruby_debug_gc_check_func(void); void ruby_set_debug_option(const char *str); @@ -90,6 +92,15 @@ bool ruby_debug_log_filter(const char *func_name, const char *file_name); // You can use this macro for temporary usage (you should not commit it). #define _RUBY_DEBUG_LOG(...) ruby_debug_log(__FILE__, __LINE__, RUBY_FUNCTION_NAME_STRING, "" __VA_ARGS__) +#if RBIMPL_COMPILER_IS(GCC) && defined(__OPTIMIZE__) +# define ruby_debug_log(...) \ + RB_GNUC_EXTENSION_BLOCK( \ + RBIMPL_WARNING_PUSH(); \ + RBIMPL_WARNING_IGNORED(-Wformat-zero-length); \ + ruby_debug_log(__VA_ARGS__); \ + RBIMPL_WARNING_POP()) +#endif + #if USE_RUBY_DEBUG_LOG # define RUBY_DEBUG_LOG_ENABLED(func_name, file_name) \ (ruby_debug_log_mode && ruby_debug_log_filter(func_name, file_name)) @@ -100,7 +111,7 @@ bool ruby_debug_log_filter(const char *func_name, const char *file_name); } while (0) #define RUBY_DEBUG_LOG2(file, line, ...) do { \ - if (RUBY_DEBUG_LOG_ENABLED(RUBY_FUNCTION_NAME_STRING, __FILE__)) \ + if (RUBY_DEBUG_LOG_ENABLED(RUBY_FUNCTION_NAME_STRING, file)) \ ruby_debug_log(file, line, RUBY_FUNCTION_NAME_STRING, "" __VA_ARGS__); \ } while (0) |
