diff options
Diffstat (limited to 'gcc/jit/jit-recording.c')
-rw-r--r-- | gcc/jit/jit-recording.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/gcc/jit/jit-recording.c b/gcc/jit/jit-recording.c index dc7a7fbcfd3..a872063630a 100644 --- a/gcc/jit/jit-recording.c +++ b/gcc/jit/jit-recording.c @@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see #include "jit-common.h" #include "jit-builtins.h" +#include "jit-logging.h" #include "jit-recording.h" #include "jit-playback.h" @@ -169,7 +170,8 @@ recording::playback_block (recording::block *b) gcc_jit_context_acquire and gcc_jit_context_new_child_context. */ recording::context::context (context *parent_ctxt) - : m_parent_ctxt (parent_ctxt), + : log_user (NULL), + m_parent_ctxt (parent_ctxt), m_error_count (0), m_first_error_str (NULL), m_owns_first_error_str (false), @@ -195,6 +197,7 @@ recording::context::context (context *parent_ctxt) memcpy (m_bool_options, parent_ctxt->m_bool_options, sizeof (m_bool_options)); + set_logger (parent_ctxt->get_logger ()); } else { @@ -211,6 +214,7 @@ recording::context::context (context *parent_ctxt) recording::context::~context () { + JIT_LOG_SCOPE (get_logger ()); int i; memento *m; FOR_EACH_VEC_ELT (m_mementos, i, m) @@ -245,6 +249,7 @@ recording::context::record (memento *m) void recording::context::replay_into (replayer *r) { + JIT_LOG_SCOPE (get_logger ()); int i; memento *m; @@ -302,6 +307,7 @@ recording::context::replay_into (replayer *r) void recording::context::disassociate_from_playback () { + JIT_LOG_SCOPE (get_logger ()); int i; memento *m; @@ -904,6 +910,8 @@ recording::context::enable_dump (const char *dumpname, result * recording::context::compile () { + JIT_LOG_SCOPE (get_logger ()); + validate (); if (errors_occurred ()) @@ -940,6 +948,8 @@ recording::context::add_error_va (location *loc, const char *fmt, va_list ap) const char *errmsg; bool has_ownership; + JIT_LOG_SCOPE (get_logger ()); + vasprintf (&malloced_msg, fmt, ap); if (malloced_msg) { @@ -951,6 +961,8 @@ recording::context::add_error_va (location *loc, const char *fmt, va_list ap) errmsg = "out of memory generating error message"; has_ownership = false; } + if (get_logger ()) + get_logger ()->log ("error %i: %s", m_error_count, errmsg); const char *ctxt_progname = get_str_option (GCC_JIT_STR_OPTION_PROGNAME); @@ -1060,6 +1072,8 @@ recording::context::get_all_requested_dumps (vec <recording::requested_dump> *ou void recording::context::validate () { + JIT_LOG_SCOPE (get_logger ()); + if (m_parent_ctxt) m_parent_ctxt->validate (); |