Fix disable iff in simple properties (#6783)

This commit is contained in:
Ryszard Rozak
2025-12-09 07:18:32 -05:00
committed by GitHub
parent db2099a4dc
commit 0f355c717e
4 changed files with 23 additions and 23 deletions
+13 -1
View File
@@ -452,7 +452,19 @@ class AssertVisitor final : public VNVisitor {
m_underAssert = true;
iterate(nodep->propp());
AstNode* bodysp = assertBody(nodep, nodep->propp()->unlinkFrBack(), passsp, failsp);
AstNode* propExprp;
AstNodeExpr* disablep = nullptr;
if (AstPropSpec* const specp = VN_CAST(nodep->propp(), PropSpec)) {
propExprp = specp->propp()->unlinkFrBack();
if (specp->disablep()) disablep = specp->disablep()->unlinkFrBack();
} else {
propExprp = nodep->propp()->unlinkFrBack();
}
AstNode* bodysp = assertBody(nodep, propExprp, passsp, failsp);
if (disablep) {
bodysp
= new AstIf{nodep->fileline(), new AstLogNot{nodep->fileline(), disablep}, bodysp};
}
if (sentreep) {
bodysp = new AstAlways{nodep->fileline(), VAlwaysKwd::ALWAYS, sentreep, bodysp};
}