From 96ce18b82815b7996d2d9f39cf4ba567b153aba5 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Mon, 10 Dec 2018 23:37:24 -0800 Subject: [PATCH] systemc: Remove the TLM dependence on a non-standard method. The sc_event_finder class in Accellera's implementation has a non-standard report_error function that it uses internally. The TLM headers were calling that function in their own event finder subclass. This change replaces that call with what should be an equivalent bit of code which is based on the report_error implementation. Change-Id: Id57d26791df01403a77e70d5f4a00f650dc33599 Reviewed-on: https://gem5-review.googlesource.com/c/15063 Reviewed-by: Anthony Gutierrez Maintainer: Anthony Gutierrez --- src/systemc/ext/tlm_core/1/req_rsp/ports/event_finder.hh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/systemc/ext/tlm_core/1/req_rsp/ports/event_finder.hh b/src/systemc/ext/tlm_core/1/req_rsp/ports/event_finder.hh index cdf2d8b58..a56118b3f 100644 --- a/src/systemc/ext/tlm_core/1/req_rsp/ports/event_finder.hh +++ b/src/systemc/ext/tlm_core/1/req_rsp/ports/event_finder.hh @@ -20,6 +20,8 @@ #ifndef __SYSTEMC_EXT_TLM_CORE_1_REQ_RSP_PORTS_EVENT_FINDER_HH__ #define __SYSTEMC_EXT_TLM_CORE_1_REQ_RSP_PORTS_EVENT_FINDER_HH__ +#include + #include "tlm_core/1/req_rsp/interfaces/tag.hh" namespace tlm @@ -56,9 +58,12 @@ tlm_event_finder_t::find_event(sc_core::sc_interface *if_p) const { const IF *iface = if_p ? dynamic_cast(if_p) : dynamic_cast(port()->_gem5Interface(0)); - static sc_core::sc_event none; if (iface == nullptr) { - report_error(sc_core::SC_ID_FIND_EVENT_, "port is not bound"); + std::ostringstream out; + out << "port is not bound: port '" << port()->name() << + "' (" << port()->kind() << ")"; + SC_REPORT_ERROR(sc_core::SC_ID_FIND_EVENT_, out.str().c_str()); + static sc_core::sc_event none; return none; } return (const_cast(iface)->*m_event_method)(nullptr); -- 2.30.2