diff --git a/src/V3EmitCFunc.cpp b/src/V3EmitCFunc.cpp index 059e64c65..128c70351 100644 --- a/src/V3EmitCFunc.cpp +++ b/src/V3EmitCFunc.cpp @@ -36,15 +36,9 @@ bool EmitCFunc::emitSimpleOk(AstNodeExpr* nodep) { // Can we put out a simple (A + B) instead of VL_ADD_III(A,B)? if (nodep->emitSimpleOperator() == "") return false; if (nodep->isWide()) return false; - if (nodep->op1p()) { - if (nodep->op1p()->isWide()) return false; - } - if (nodep->op2p()) { - if (nodep->op2p()->isWide()) return false; - } - if (nodep->op3p()) { - if (nodep->op3p()->isWide()) return false; - } + if (nodep->op1p() && nodep->op1p()->isWide()) return false; + if (nodep->op2p() && nodep->op2p()->isWide()) return false; + if (nodep->op3p() && nodep->op3p()->isWide()) return false; return true; } diff --git a/src/V3EmitXml.cpp b/src/V3EmitXml.cpp index db6ec800f..c3ac43da1 100644 --- a/src/V3EmitXml.cpp +++ b/src/V3EmitXml.cpp @@ -117,13 +117,13 @@ class EmitXmlFileVisitor final : public VNVisitor { void visit(AstNodeIf* nodep) override { outputTag(nodep, "if"); puts(">\n"); - iterateAndNextNull(nodep->op1p()); + iterateAndNextNull(nodep->condp()); puts("\n"); - iterateAndNextNull(nodep->op2p()); + iterateAndNextNull(nodep->thensp()); puts("\n"); - if (nodep->op3p()) { + if (nodep->elsesp()) { puts("\n"); - iterateAndNextNull(nodep->op3p()); + iterateAndNextNull(nodep->elsesp()); puts("\n"); } puts("\n"); @@ -132,21 +132,21 @@ class EmitXmlFileVisitor final : public VNVisitor { outputTag(nodep, "while"); puts(">\n"); puts("\n"); - iterateAndNextNull(nodep->op1p()); + iterateAndNextNull(nodep->precondsp()); puts("\n"); - if (nodep->op2p()) { + if (nodep->condp()) { puts("\n"); - iterateAndNextNull(nodep->op2p()); + iterateAndNextNull(nodep->condp()); puts("\n"); } - if (nodep->op3p()) { + if (nodep->stmtsp()) { puts("\n"); - iterateAndNextNull(nodep->op3p()); + iterateAndNextNull(nodep->stmtsp()); puts("\n"); } - if (nodep->op4p()) { + if (nodep->incsp()) { puts("\n"); - iterateAndNextNull(nodep->op4p()); + iterateAndNextNull(nodep->incsp()); puts("\n"); } puts("\n"); diff --git a/src/V3Param.cpp b/src/V3Param.cpp index f3e4b5037..969ec8e30 100644 --- a/src/V3Param.cpp +++ b/src/V3Param.cpp @@ -1098,8 +1098,8 @@ class ParamVisitor final : public VNVisitor { } void visit(AstUnlinkedRef* nodep) override { - AstVarXRef* const varxrefp = VN_CAST(nodep->op1p(), VarXRef); - AstNodeFTaskRef* const taskrefp = VN_CAST(nodep->op1p(), NodeFTaskRef); + AstVarXRef* const varxrefp = VN_CAST(nodep->refp(), VarXRef); + AstNodeFTaskRef* const taskrefp = VN_CAST(nodep->refp(), NodeFTaskRef); if (varxrefp) { m_unlinkedTxt = varxrefp->dotted(); } else if (taskrefp) { @@ -1115,7 +1115,7 @@ class ParamVisitor final : public VNVisitor { } else { taskrefp->dotted(m_unlinkedTxt); } - nodep->replaceWith(nodep->op1p()->unlinkFrBack()); + nodep->replaceWith(nodep->refp()->unlinkFrBack()); VL_DO_DANGLING(pushDeletep(nodep), nodep); } void visit(AstCellArrayRef* nodep) override {