forked from github/verilator
Internals: Add assertions. No functional change intended.
This commit is contained in:
parent
d64e6b3f9c
commit
eafed88a6e
@ -104,6 +104,7 @@ private:
|
|||||||
//
|
//
|
||||||
// V3Combine wouldn't likely be able to combine top-level
|
// V3Combine wouldn't likely be able to combine top-level
|
||||||
// routines anyway, so there's no harm in keeping these static.
|
// routines anyway, so there's no harm in keeping these static.
|
||||||
|
UASSERT_OBJ(m_modp, scopep, "Scope not under module");
|
||||||
if (m_modp->isTop()) relativeRefOk = false;
|
if (m_modp->isTop()) relativeRefOk = false;
|
||||||
//
|
//
|
||||||
// Use absolute refs if this scope is the only instance of the module.
|
// Use absolute refs if this scope is the only instance of the module.
|
||||||
|
@ -104,6 +104,7 @@ public:
|
|||||||
// METHODS
|
// METHODS
|
||||||
void clear(); // Empty it of all vertices/edges, as if making a new object
|
void clear(); // Empty it of all vertices/edges, as if making a new object
|
||||||
void clearColors();
|
void clearColors();
|
||||||
|
bool empty() const { return m_vertices.empty(); }
|
||||||
|
|
||||||
V3GraphVertex* verticesBeginp() const { return m_vertices.begin(); }
|
V3GraphVertex* verticesBeginp() const { return m_vertices.begin(); }
|
||||||
|
|
||||||
|
@ -420,7 +420,7 @@ private:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
virtual void visit(AstCFunc* nodep) VL_OVERRIDE {
|
virtual void visit(AstCFunc* nodep) VL_OVERRIDE {
|
||||||
//UINFO(4," CCALL "<<nodep<<endl);
|
//UINFO(4," CFUNC "<<nodep<<endl);
|
||||||
if (!m_tracingCall && !nodep->entryPoint()) return;
|
if (!m_tracingCall && !nodep->entryPoint()) return;
|
||||||
m_tracingCall = false;
|
m_tracingCall = false;
|
||||||
if (nodep->dpiImport() && !nodep->pure()) {
|
if (nodep->dpiImport() && !nodep->pure()) {
|
||||||
|
@ -400,7 +400,7 @@ public:
|
|||||||
VSymEnt* getScopeSym(AstScope* nodep) {
|
VSymEnt* getScopeSym(AstScope* nodep) {
|
||||||
NameScopeSymMap::iterator it = m_nameScopeSymMap.find(nodep->name());
|
NameScopeSymMap::iterator it = m_nameScopeSymMap.find(nodep->name());
|
||||||
UASSERT_OBJ(it != m_nameScopeSymMap.end(), nodep,
|
UASSERT_OBJ(it != m_nameScopeSymMap.end(), nodep,
|
||||||
"Scope never assigned a symbol entry?");
|
"Scope never assigned a symbol entry '" << nodep->name() << "'");
|
||||||
return it->second;
|
return it->second;
|
||||||
}
|
}
|
||||||
void implicitOkAdd(AstNodeModule* nodep, const string& varname) {
|
void implicitOkAdd(AstNodeModule* nodep, const string& varname) {
|
||||||
|
@ -1036,6 +1036,7 @@ private:
|
|||||||
}
|
}
|
||||||
virtual void visit(AstVarScope* nodep) VL_OVERRIDE {
|
virtual void visit(AstVarScope* nodep) VL_OVERRIDE {
|
||||||
// Create links to all input signals
|
// Create links to all input signals
|
||||||
|
UASSERT_OBJ(m_modp, nodep, "Scope not under module");
|
||||||
if (m_modp->isTop() && nodep->varp()->isNonOutput()) {
|
if (m_modp->isTop() && nodep->varp()->isNonOutput()) {
|
||||||
OrderVarVertex* varVxp = newVarUserVertex(nodep, WV_STD);
|
OrderVarVertex* varVxp = newVarUserVertex(nodep, WV_STD);
|
||||||
new OrderEdge(&m_graph, m_inputsVxp, varVxp, WEIGHT_INPUT);
|
new OrderEdge(&m_graph, m_inputsVxp, varVxp, WEIGHT_INPUT);
|
||||||
|
@ -136,6 +136,7 @@ public:
|
|||||||
// CONSTRUCTORS
|
// CONSTRUCTORS
|
||||||
TristateGraph() { clear(); }
|
TristateGraph() { clear(); }
|
||||||
virtual ~TristateGraph() { clear(); }
|
virtual ~TristateGraph() { clear(); }
|
||||||
|
VL_UNCOPYABLE(TristateGraph);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// METHODS
|
// METHODS
|
||||||
@ -212,6 +213,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// METHODS
|
// METHODS
|
||||||
|
bool empty() const { return m_graph.empty(); }
|
||||||
void clear() {
|
void clear() {
|
||||||
for (V3GraphVertex* itp = m_graph.verticesBeginp(); itp; itp=itp->verticesNextp()) {
|
for (V3GraphVertex* itp = m_graph.verticesBeginp(); itp; itp=itp->verticesNextp()) {
|
||||||
TristateVertex* vvertexp = static_cast<TristateVertex*>(itp);
|
TristateVertex* vvertexp = static_cast<TristateVertex*>(itp);
|
||||||
@ -1311,7 +1313,8 @@ class TristateVisitor : public TristateBaseVisitor {
|
|||||||
bool origGraphing = m_graphing;
|
bool origGraphing = m_graphing;
|
||||||
int origUnique = m_unique;
|
int origUnique = m_unique;
|
||||||
VarMap origLhsmap = m_lhsmap;
|
VarMap origLhsmap = m_lhsmap;
|
||||||
TristateGraph origTgraph = m_tgraph;
|
// Not preserved, needs pointer instead: TristateGraph origTgraph = m_tgraph;
|
||||||
|
UASSERT_OBJ(m_tgraph.empty(), nodep, "Unsupported: NodeModule under NodeModule");
|
||||||
{
|
{
|
||||||
// Clear state
|
// Clear state
|
||||||
m_graphing = false;
|
m_graphing = false;
|
||||||
@ -1337,7 +1340,7 @@ class TristateVisitor : public TristateBaseVisitor {
|
|||||||
m_graphing = origGraphing;
|
m_graphing = origGraphing;
|
||||||
m_unique = origUnique;
|
m_unique = origUnique;
|
||||||
m_lhsmap = origLhsmap;
|
m_lhsmap = origLhsmap;
|
||||||
m_tgraph = origTgraph;
|
m_tgraph.clear(); // Recursion not supported
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void visit(AstNodeFTask* nodep) VL_OVERRIDE {
|
virtual void visit(AstNodeFTask* nodep) VL_OVERRIDE {
|
||||||
|
Loading…
Reference in New Issue
Block a user