Fix typedef through a parameterized sub-interface (#7943 repair) (#8124) (#8128)

This commit is contained in:
em2machine
2026-09-23 14:32:23 -04:00
committed by GitHub
parent e6ecf3a014
commit f82cdbeaa7
8 changed files with 184 additions and 56 deletions
+4
View File
@@ -2771,6 +2771,8 @@ class ParamVisitor final : public VNVisitor {
const auto itm = workQueue.cbegin();
AstNodeModule* const modp = itm->second;
workQueue.erase(itm);
// Starting a new module, so what was learned about the last one no longer holds.
v3Global.rootp()->clearContainingModules();
// Process once; note user2 will be cleared on specialization, so we will do the
// specialized module if needed
@@ -3829,6 +3831,8 @@ void V3Param::param(AstNetlist* rootp) {
if (dumpTreeEitherLevel() >= 9) V3LinkDotIfaceCapture::dumpEntries("before V3Param");
{ ParamTop{rootp}; }
// The memo is only good while parameterizing, and the tree moves after.
rootp->clearContainingModules();
V3LinkDotIfaceCapture::purgeStaleRefs();
if (dumpTreeEitherLevel() >= 9) V3LinkDotIfaceCapture::dumpEntries("after V3Param");