Add/update queue compile time error messages
This commit is contained in:
parent
d1b75d9407
commit
6ecd43d947
15
elab_expr.cc
15
elab_expr.cc
|
|
@ -2665,6 +2665,11 @@ NetExpr* PECallFunction::elaborate_expr_method_(Design*des, NetScope*scope,
|
|||
if (net->darray_type()) {
|
||||
|
||||
if (method_name == "size") {
|
||||
if (parms_.size() != 0) {
|
||||
cerr << get_fileline() << ": error: size() method "
|
||||
<< "takes no arguments" << endl;
|
||||
des->errors += 1;
|
||||
}
|
||||
NetESFunc*sys_expr = new NetESFunc("$size",
|
||||
IVL_VT_BOOL, 32, 1);
|
||||
sys_expr->parm(0, new NetESignal(net));
|
||||
|
|
@ -2673,6 +2678,11 @@ NetExpr* PECallFunction::elaborate_expr_method_(Design*des, NetScope*scope,
|
|||
}
|
||||
|
||||
if (method_name == "pop_back") {
|
||||
if (parms_.size() != 0) {
|
||||
cerr << get_fileline() << ": error: pop_back() method "
|
||||
<< "takes no arguments" << endl;
|
||||
des->errors += 1;
|
||||
}
|
||||
NetESFunc*sys_expr = new NetESFunc("$ivl_darray_method$pop_back",
|
||||
expr_type_,
|
||||
expr_width_, 1);
|
||||
|
|
@ -2682,6 +2692,11 @@ NetExpr* PECallFunction::elaborate_expr_method_(Design*des, NetScope*scope,
|
|||
}
|
||||
|
||||
if (method_name == "pop_front") {
|
||||
if (parms_.size() != 0) {
|
||||
cerr << get_fileline() << ": error: pop_front() method "
|
||||
<< "takes no arguments" << endl;
|
||||
des->errors += 1;
|
||||
}
|
||||
NetESFunc*sys_expr = new NetESFunc("$ivl_darray_method$pop_front",
|
||||
expr_type_,
|
||||
expr_width_, 1);
|
||||
|
|
|
|||
17
elab_sig.cc
17
elab_sig.cc
|
|
@ -1112,11 +1112,18 @@ NetNet* PWire::elaborate_sig(Design*des, NetScope*scope) const
|
|||
max_idx = -1;
|
||||
} else {
|
||||
verinum res = cv->value();
|
||||
max_idx = res.as_long();
|
||||
if (max_idx < 0) {
|
||||
cerr << get_fileline() << ": error: queue '"
|
||||
<< name_ << "' bound must be positive ("
|
||||
<< max_idx << ")!" << endl;
|
||||
if (res.is_defined()) {
|
||||
max_idx = res.as_long();
|
||||
if (max_idx < 0) {
|
||||
cerr << get_fileline() << ": error: queue '"
|
||||
<< name_ << "' bound must be positive ("
|
||||
<< max_idx << ")!" << endl;
|
||||
des->errors += 1;
|
||||
max_idx = -1;
|
||||
}
|
||||
} else {
|
||||
cerr << get_fileline() << ": error: queue '" << name_
|
||||
<< "' bound is undefined!" << endl;
|
||||
des->errors += 1;
|
||||
max_idx = -1;
|
||||
}
|
||||
|
|
|
|||
15
elaborate.cc
15
elaborate.cc
|
|
@ -3600,16 +3600,14 @@ NetProc* PCallTask::elaborate_sys_task_method_(Design*des, NetScope*scope,
|
|||
// The queue delete method takes an optional element.
|
||||
if (net->queue_type()) {
|
||||
if (nparms > 1) {
|
||||
cerr << get_fileline() << ": error: queue method "
|
||||
<< "delete() takes zero or one argument." << endl;
|
||||
cerr << get_fileline() << ": error: queue delete() "
|
||||
<< "method takes zero or one argument." << endl;
|
||||
des->errors += 1;
|
||||
return 0;
|
||||
}
|
||||
} else if (nparms > 0) {
|
||||
cerr << get_fileline() << ": error: darray method "
|
||||
<< "delete() takes no arguments." << endl;
|
||||
cerr << get_fileline() << ": error: darray delete() "
|
||||
<< "method takes no arguments." << endl;
|
||||
des->errors += 1;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3643,10 +3641,9 @@ NetProc* PCallTask::elaborate_queue_method_(Design*des, NetScope*scope,
|
|||
|
||||
unsigned nparms = parms_.size();
|
||||
if ((nparms == 0) || (nparms > 1)) {
|
||||
cerr << get_fileline() << ": error: method " << method_name
|
||||
<< "() requires a single argument." << endl;
|
||||
cerr << get_fileline() << ": error: " << method_name
|
||||
<< "() method requires a single argument." << endl;
|
||||
des->errors += 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
ivl_variable_type_t base_type = net->darray_type()->element_base_type();
|
||||
|
|
|
|||
Loading…
Reference in New Issue