systemc: Warn about using deprecated sc_port constructors.
This gets rid of one of the last instances of a warning about unimplemented functionality. Change-Id: I3d8e50ea45554cba969118ce873ed3d2b041ec43 Reviewed-on: https://gem5-review.googlesource.com/c/13395 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
This commit is contained in:
@@ -29,7 +29,7 @@
|
||||
|
||||
#include <sstream>
|
||||
|
||||
#include "base/logging.hh"
|
||||
#include "base/cprintf.hh"
|
||||
#include "systemc/core/module.hh"
|
||||
#include "systemc/core/port.hh"
|
||||
#include "systemc/core/scheduler.hh"
|
||||
@@ -84,9 +84,15 @@ sc_port_base::~sc_port_base()
|
||||
}
|
||||
|
||||
void
|
||||
sc_port_base::warn_unimpl(const char *func) const
|
||||
sc_port_base::warn_port_constructor() const
|
||||
{
|
||||
warn("%s not implemented.\n", func);
|
||||
static bool warned = false;
|
||||
if (!warned) {
|
||||
SC_REPORT_INFO(SC_ID_IEEE_1666_DEPRECATION_,
|
||||
"interface and/or port binding in port constructors "
|
||||
"is deprecated");
|
||||
warned = true;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -79,7 +79,7 @@ class sc_port_base : public sc_object
|
||||
sc_port_base(const char *name, int n, sc_port_policy p);
|
||||
virtual ~sc_port_base();
|
||||
|
||||
void warn_unimpl(const char *func) const;
|
||||
void warn_port_constructor() const;
|
||||
|
||||
int maxSize() const;
|
||||
int size() const;
|
||||
@@ -258,40 +258,34 @@ class sc_port : public sc_port_b<IF>
|
||||
// Deprecated binding constructors.
|
||||
explicit sc_port(const IF &interface) : sc_port_b<IF>(N, P)
|
||||
{
|
||||
this->warn_unimpl(__PRETTY_FUNCTION__);
|
||||
// Should warn that these are deprecated. See Accellera sc_port.h.
|
||||
this->warn_port_constructor();
|
||||
sc_port_b<IF>::bind(const_cast<IF &>(interface));
|
||||
}
|
||||
sc_port(const char *name, const IF &interface) : sc_port_b<IF>(name, N, P)
|
||||
{
|
||||
this->warn_unimpl(__PRETTY_FUNCTION__);
|
||||
// Should warn that these are deprecated. See Accellera sc_port.h.
|
||||
this->warn_port_constructor();
|
||||
sc_port_b<IF>::bind(const_cast<IF &>(interface));
|
||||
}
|
||||
explicit sc_port(sc_port_b<IF> &parent) : sc_port_b<IF>(N, P)
|
||||
{
|
||||
this->warn_unimpl(__PRETTY_FUNCTION__);
|
||||
// Should warn that these are deprecated. See Accellera sc_port.h.
|
||||
this->warn_port_constructor();
|
||||
sc_port_b<IF>::bind(parent);
|
||||
}
|
||||
sc_port(const char *name, sc_port_b<IF> &parent) :
|
||||
sc_port_b<IF>(name, N, P)
|
||||
{
|
||||
this->warn_unimpl(__PRETTY_FUNCTION__);
|
||||
// Should warn that these are deprecated. See Accellera sc_port.h.
|
||||
this->warn_port_constructor();
|
||||
sc_port_b<IF>::bind(parent);
|
||||
}
|
||||
explicit sc_port(sc_port<IF, N, P> &parent) : sc_port_b<IF>(N, P)
|
||||
{
|
||||
this->warn_unimpl(__PRETTY_FUNCTION__);
|
||||
// Should warn that these are deprecated. See Accellera sc_port.h.
|
||||
this->warn_port_constructor();
|
||||
sc_port_b<IF>::bind(parent);
|
||||
}
|
||||
sc_port(const char *name, sc_port<IF, N, P> &parent) :
|
||||
sc_port_b<IF>(name, N, P)
|
||||
{
|
||||
this->warn_unimpl(__PRETTY_FUNCTION__);
|
||||
// Should warn that these are deprecated. See Accellera sc_port.h.
|
||||
this->warn_port_constructor();
|
||||
sc_port_b<IF>::bind(parent);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user