mirror of
https://github.com/holub/mame
synced 2025-07-03 00:56:03 +03:00
Fixed a netlist crash on clang due to ATTR_NORETURN. Also fixed some debug statements. [Couriersud]
This commit is contained in:
parent
dafa3b185b
commit
bd09f4dbc0
@ -261,7 +261,7 @@ void netlist_mame_stream_output_t::custom_netlist_additions(netlist_setup_t &set
|
||||
// netlist_mame_t
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
void netlist_mame_t::vfatalerror(const loglevel_e level, const char *format, va_list ap) const
|
||||
void netlist_mame_t::verror(const loglevel_e level, const char *format, va_list ap) const
|
||||
{
|
||||
pstring errstr = pstring(format).vprintf(ap);
|
||||
|
||||
|
@ -142,7 +142,7 @@ public:
|
||||
|
||||
protected:
|
||||
|
||||
void vfatalerror(const loglevel_e level, const char *format, va_list ap) const;
|
||||
void verror(const loglevel_e level, const char *format, va_list ap) const;
|
||||
|
||||
private:
|
||||
netlist_mame_device_t &m_parent;
|
||||
|
@ -77,9 +77,6 @@ NETLIB_START(SN74LS629)
|
||||
register_sub(m_R_FC, "R_FC");
|
||||
register_sub(m_R_RNG, "R_RNG");
|
||||
|
||||
m_R_FC.set_R(90000.0);
|
||||
m_R_RNG.set_R(90000.0);
|
||||
|
||||
register_input("ENQ", m_ENQ);
|
||||
register_input("RNG", m_RNG);
|
||||
register_input("FC", m_FC);
|
||||
@ -95,6 +92,8 @@ NETLIB_START(SN74LS629)
|
||||
|
||||
NETLIB_RESET(SN74LS629)
|
||||
{
|
||||
m_R_FC.set_R(90000.0);
|
||||
m_R_RNG.set_R(90000.0);
|
||||
m_clock.reset();
|
||||
}
|
||||
|
||||
|
@ -43,7 +43,7 @@ void netlist_queue_t::on_pre_save()
|
||||
{
|
||||
NL_VERBOSE_OUT(("on_pre_save\n"));
|
||||
m_qsize = this->count();
|
||||
NL_VERBOSE_OUT(("current time %f qsize %d\n", m_netlist->time().as_double(), qsize));
|
||||
NL_VERBOSE_OUT(("current time %f qsize %d\n", m_netlist.time().as_double(), m_qsize));
|
||||
for (int i = 0; i < m_qsize; i++ )
|
||||
{
|
||||
m_times[i] = this->listptr()[i].time().as_raw();
|
||||
@ -58,12 +58,12 @@ void netlist_queue_t::on_pre_save()
|
||||
void netlist_queue_t::on_post_load()
|
||||
{
|
||||
this->clear();
|
||||
NL_VERBOSE_OUT(("current time %f qsize %d\n", m_netlist->time().as_double(), qsize));
|
||||
NL_VERBOSE_OUT(("current time %f qsize %d\n", m_netlist.time().as_double(), m_qsize));
|
||||
for (int i = 0; i < m_qsize; i++ )
|
||||
{
|
||||
netlist_net_t *n = m_netlist.find_net(&(m_name[i][0]));
|
||||
NL_VERBOSE_OUT(("Got %s ==> %p\n", qtemp[i].m_name, n));
|
||||
NL_VERBOSE_OUT(("schedule time %f (%f)\n", n->time().as_double(), qtemp[i].m_time.as_double()));
|
||||
//NL_VERBOSE_OUT(("Got %s ==> %p\n", qtemp[i].m_name, n));
|
||||
//NL_VERBOSE_OUT(("schedule time %f (%f)\n", n->time().as_double(), qtemp[i].m_time.as_double()));
|
||||
this->push(netlist_queue_t::entry_t(netlist_time::from_raw(m_times[i]), n));
|
||||
}
|
||||
}
|
||||
@ -311,7 +311,7 @@ ATTR_COLD void netlist_base_t::error(const char *format, ...) const
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
vfatalerror(NL_ERROR, format, ap);
|
||||
verror(NL_ERROR, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
@ -319,7 +319,7 @@ ATTR_COLD void netlist_base_t::warning(const char *format, ...) const
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
vfatalerror(NL_WARNING, format, ap);
|
||||
verror(NL_WARNING, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
@ -327,7 +327,7 @@ ATTR_COLD void netlist_base_t::log(const char *format, ...) const
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
vfatalerror(NL_LOG, format, ap);
|
||||
verror(NL_LOG, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
|
@ -1118,7 +1118,7 @@ protected:
|
||||
};
|
||||
|
||||
// any derived netlist must override this ...
|
||||
ATTR_COLD ATTR_NORETURN virtual void vfatalerror(const loglevel_e level,
|
||||
ATTR_COLD virtual void verror(const loglevel_e level,
|
||||
const char *format, va_list ap) const = 0;
|
||||
|
||||
/* from netlist_object */
|
||||
|
@ -40,6 +40,7 @@ public:
|
||||
|
||||
ATTR_COLD netlist_list_t &operator=(const netlist_list_t &rhs)
|
||||
{
|
||||
this->reset();
|
||||
for (int i=0; i<rhs.count(); i++)
|
||||
{
|
||||
this->add(rhs[i]);
|
||||
|
@ -293,7 +293,7 @@ void netlist_parser::parse_netlist(const pstring &nlname)
|
||||
return;
|
||||
|
||||
require_token(m_tok_param_left);
|
||||
NL_VERBOSE_OUT(("Parser: Device: %s\n", n.cstr()));
|
||||
NL_VERBOSE_OUT(("Parser: Device: %s\n", token.str().cstr()));
|
||||
|
||||
if (token.is(m_tok_ALIAS))
|
||||
net_alias();
|
||||
@ -425,7 +425,7 @@ void netlist_parser::device(const pstring &dev_type)
|
||||
{
|
||||
pstring paramfq = devname + "." + def_params[cnt];
|
||||
|
||||
NL_VERBOSE_OUT(("Defparam: %s\n", def_param.cstr()));
|
||||
NL_VERBOSE_OUT(("Defparam: %s\n", paramfq.cstr()));
|
||||
require_token(m_tok_comma);
|
||||
tok = get_token();
|
||||
if (tok.is_type(STRING))
|
||||
|
@ -208,7 +208,7 @@ void netlist_setup_t::register_object(netlist_device_t &dev, const pstring &name
|
||||
{
|
||||
case netlist_param_t::DOUBLE:
|
||||
{
|
||||
NL_VERBOSE_OUT(("Found parameter ... %s : %s\n", temp.cstr(), val->cstr()));
|
||||
NL_VERBOSE_OUT(("Found parameter ... %s : %s\n", name.cstr(), val.cstr()));
|
||||
double vald = 0;
|
||||
if (sscanf(val.cstr(), "%lf", &vald) != 1)
|
||||
netlist().error("Invalid number conversion %s : %s\n", name.cstr(), val.cstr());
|
||||
@ -218,7 +218,7 @@ void netlist_setup_t::register_object(netlist_device_t &dev, const pstring &name
|
||||
case netlist_param_t::INTEGER:
|
||||
case netlist_param_t::LOGIC:
|
||||
{
|
||||
NL_VERBOSE_OUT(("Found parameter ... %s : %s\n", name.cstr(), val->cstr()));
|
||||
NL_VERBOSE_OUT(("Found parameter ... %s : %s\n", name.cstr(), val.cstr()));
|
||||
double vald = 0;
|
||||
if (sscanf(val.cstr(), "%lf", &vald) != 1)
|
||||
netlist().error("Invalid number conversion %s : %s\n", name.cstr(), val.cstr());
|
||||
@ -533,7 +533,7 @@ static netlist_core_terminal_t &resolve_proxy(netlist_core_terminal_t &term)
|
||||
|
||||
void netlist_setup_t::connect(netlist_core_terminal_t &t1_in, netlist_core_terminal_t &t2_in)
|
||||
{
|
||||
NL_VERBOSE_OUT(("Connecting %s to %s\n", t1.name().cstr(), t2.name().cstr()));
|
||||
NL_VERBOSE_OUT(("Connecting %s to %s\n", t1_in.name().cstr(), t2_in.name().cstr()));
|
||||
netlist_core_terminal_t &t1 = resolve_proxy(t1_in);
|
||||
netlist_core_terminal_t &t2 = resolve_proxy(t2_in);
|
||||
|
||||
@ -577,7 +577,8 @@ void netlist_setup_t::resolve_inputs()
|
||||
{
|
||||
bool has_twoterms = false;
|
||||
|
||||
netlist().log("Resolving inputs ...");
|
||||
netlist().log("Resolving inputs ...");
|
||||
|
||||
for (const link_t *entry = m_links.first(); entry != NULL; entry = m_links.next(entry))
|
||||
{
|
||||
const pstring t1s = entry->e1;
|
||||
@ -588,6 +589,7 @@ void netlist_setup_t::resolve_inputs()
|
||||
connect(*t1, *t2);
|
||||
}
|
||||
|
||||
//netlist().log("printing outputs ...");
|
||||
/* print all outputs */
|
||||
for (tagmap_terminal_t::entry_t *entry = m_terminals.first(); entry != NULL; entry = m_terminals.next(entry))
|
||||
{
|
||||
|
@ -156,7 +156,7 @@ public:
|
||||
pstring m_logs;
|
||||
protected:
|
||||
|
||||
void vfatalerror(const loglevel_e level, const char *format, va_list ap) const
|
||||
void verror(const loglevel_e level, const char *format, va_list ap) const
|
||||
{
|
||||
switch (level)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user