Backout last commit; is unstable.
This commit is contained in:
parent
e9ad665d32
commit
4d1f4bbf49
|
|
@ -1860,7 +1860,7 @@ private:
|
|||
VSymEnt* m_pinSymp = nullptr; // SymEnt for pin lookups
|
||||
const AstCell* m_cellp = nullptr; // Current cell
|
||||
AstNodeModule* m_modp = nullptr; // Current module
|
||||
AstNodeFTask* m_ftaskp = nullptr; // Current function/task
|
||||
const AstNodeFTask* m_ftaskp = nullptr; // Current function/task
|
||||
int m_modportNum = 0; // Uniqueify modport numbers
|
||||
|
||||
struct DotStates {
|
||||
|
|
@ -2748,11 +2748,8 @@ private:
|
|||
if (foundp) {
|
||||
if (VN_IS(foundp->nodep(), Var) && m_ds.m_dotText == "" && m_ftaskp
|
||||
&& m_ftaskp->name() == foundp->nodep()->name()) {
|
||||
// This is a recursive reference to the function itself, not to the var
|
||||
nodep->taskp(m_ftaskp);
|
||||
nodep->classOrPackagep(foundp->classOrPackagep());
|
||||
UINFO(7, " Resolved recursive " << nodep
|
||||
<< endl); // Also prints taskp
|
||||
nodep->v3warn(E_UNSUPPORTED, "Unsupported: Recursive function call "
|
||||
<< nodep->prettyNameQ());
|
||||
} else {
|
||||
nodep->v3error("Found definition of '"
|
||||
<< m_ds.m_dotText << (m_ds.m_dotText == "" ? "" : ".")
|
||||
|
|
|
|||
|
|
@ -4538,8 +4538,7 @@ private:
|
|||
// Grab width from the output variable (if it's a function)
|
||||
if (nodep->didWidth()) return;
|
||||
if (nodep->doingWidth()) {
|
||||
nodep->v3warn(E_UNSUPPORTED, "Unsupported: Recursive function or task call: "
|
||||
<< nodep->prettyNameQ());
|
||||
nodep->v3warn(E_UNSUPPORTED, "Unsupported: Recursive function or task call");
|
||||
nodep->dtypeSetBit();
|
||||
nodep->didWidth(true);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
%Error-UNSUPPORTED: t/t_func_recurse.v:9:27: Unsupported: Recursive function or task call: 'recurse_self'
|
||||
: ... In instance t
|
||||
9 | function automatic int recurse_self;
|
||||
%Error-UNSUPPORTED: t/t_func_recurse.v:12:31: Unsupported: Recursive function call 'recurse_self'
|
||||
12 | else recurse_self = i + recurse_self(i - 1) * 2;
|
||||
| ^~~~~~~~~~~~
|
||||
... For error description see https://verilator.org/warn/UNSUPPORTED?v=latest
|
||||
%Error: Exiting due to
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%Error-UNSUPPORTED: t/t_func_recurse2.v:9:27: Unsupported: Recursive function or task call: 'recurse_1'
|
||||
%Error-UNSUPPORTED: t/t_func_recurse2.v:9:27: Unsupported: Recursive function or task call
|
||||
: ... In instance t
|
||||
9 | function automatic int recurse_1;
|
||||
| ^~~~~~~~~
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
%Error-UNSUPPORTED: t/t_func_recurse_param.v:9:27: Unsupported: Recursive function or task call: 'recurse_self'
|
||||
: ... In instance t
|
||||
9 | function automatic int recurse_self;
|
||||
%Error-UNSUPPORTED: t/t_func_recurse_param.v:12:31: Unsupported: Recursive function call 'recurse_self'
|
||||
12 | else recurse_self = i + recurse_self(i - 1) * 2;
|
||||
| ^~~~~~~~~~~~
|
||||
... For error description see https://verilator.org/warn/UNSUPPORTED?v=latest
|
||||
%Error: Exiting due to
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
%Error-UNSUPPORTED: t/t_func_recurse_param_bad.v:9:27: Unsupported: Recursive function or task call: 'recurse_self'
|
||||
: ... In instance t
|
||||
9 | function automatic int recurse_self;
|
||||
%Error-UNSUPPORTED: t/t_func_recurse_param_bad.v:12:31: Unsupported: Recursive function call 'recurse_self'
|
||||
12 | else recurse_self = i + recurse_self(i - 1) * 2;
|
||||
| ^~~~~~~~~~~~
|
||||
... For error description see https://verilator.org/warn/UNSUPPORTED?v=latest
|
||||
%Error: Verilator internal fault, sorry. Suggest trying --debug --gdbbt
|
||||
%Error: Command Failed
|
||||
%Error: Exiting due to
|
||||
|
|
|
|||
Loading…
Reference in New Issue