summaryrefslogtreecommitdiff
path: root/gcc/jit/jit-recording.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/jit/jit-recording.c')
-rw-r--r--gcc/jit/jit-recording.c16
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 ();