descend into dots used by subDTypes

This commit is contained in:
Edmund Lam 2026-06-09 13:08:34 -04:00
parent 04eabc62fe
commit 8f935ec3aa
1 changed files with 10 additions and 0 deletions

View File

@ -2232,6 +2232,16 @@ public:
collectTypedefs(varp->valuep());
enqueueRefs(varp->valuep());
}
// Descend into each collected typedef's subDType for Dots (e.g. class-scoped
// lparams used in a packed range like `logic [(CFG::pc_width - 1):0]`) and
// nested typedef references. The loop grows tdefps as it goes; the
// `i < tdefps.size()` re-check carries us to fixpoint.
for (size_t i = 0; i < tdefps.size(); ++i) {
AstNodeDType* const subp = tdefps[i]->subDTypep();
if (!subp) continue;
collectDots(subp);
collectTypedefs(subp);
}
if (dotps.empty() && tdefps.empty()) return;
VL_RESTORER(m_modp);
m_modp = modp;