mirror of
https://github.com/verilator/verilator.git
synced 2026-10-06 01:54:01 +02:00
Fix process comparison compile error with --public-flat-rw (#7592).
Fixes #7592.
This commit is contained in:
+14
-4
@@ -24,6 +24,7 @@
|
||||
#include "V3Name.h"
|
||||
|
||||
#include "V3LanguageWords.h"
|
||||
#include "V3MemberMap.h"
|
||||
#include "V3UniqueNames.h"
|
||||
|
||||
#include <vector>
|
||||
@@ -80,10 +81,8 @@ class NameVisitor final : public VNVisitorConst {
|
||||
// VISITORS
|
||||
void visit(AstNodeModule* nodep) override {
|
||||
VL_RESTORER(m_modp);
|
||||
{
|
||||
m_modp = nodep;
|
||||
iterateChildrenConst(nodep);
|
||||
}
|
||||
m_modp = nodep;
|
||||
iterateChildrenConst(nodep);
|
||||
}
|
||||
// Add __PVT__ to names of local signals
|
||||
void visit(AstVar* nodep) override {
|
||||
@@ -154,6 +153,17 @@ class NameVisitor final : public VNVisitorConst {
|
||||
iterateChildrenConst(nodep);
|
||||
}
|
||||
}
|
||||
void visit(AstSystemCSection* nodep) override {
|
||||
// include/verilated_std.sv assumes that V3Name does renaming of std::process;
|
||||
// if V3Name does not, remove the __PVT__.
|
||||
if (m_modp && m_modp->name() == "std__03a__03aprocess") {
|
||||
VMemberMap memberMap;
|
||||
if (memberMap.findMember(m_modp, "m_process")) {
|
||||
nodep->text(VString::replaceSubstr(nodep->text(), "__PVT__", ""));
|
||||
}
|
||||
}
|
||||
iterateChildrenConst(nodep);
|
||||
}
|
||||
|
||||
//--------------------
|
||||
void visit(AstNode* nodep) override { iterateChildrenConst(nodep); }
|
||||
|
||||
Reference in New Issue
Block a user