Support rand_mode() on static rand class members (#7484) (#7510)

This commit is contained in:
Yilou Wang
2026-04-29 17:07:27 -04:00
committed by GitHub
parent 30edb987d2
commit 4befec4463
8 changed files with 517 additions and 62 deletions
+6 -2
View File
@@ -744,8 +744,12 @@ bool VlRandomizer::parseSolution(std::iostream& os, bool log) {
const auto it = m_vars.find(name);
if (it == m_vars.end()) continue;
const VlRandomVar& varr = *it->second;
if (m_randmodep && !varr.randModeIdxNone()) {
if (!m_randmodep->at(varr.randModeIdx())) continue;
if (!varr.randModeIdxNone()) {
// Static rand vars have their rand_mode in a class-package shared queue,
// not the per-instance one.
const VlQueue<CData>* const modep
= m_staticVars.count(name) ? m_static_randmodep : m_randmodep;
if (modep && !modep->at(varr.randModeIdx())) continue;
}
if (m_disabledVars.count(name)) continue;
if (!indices.empty()) {