From cfada791e6fc227bfcd1d1b84662a1b4ed6c0feb Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Fri, 5 Dec 2025 04:14:24 -0500 Subject: [PATCH] Internals: Fix leak in covergroup, last commit --- src/V3Width.cpp | 2 +- src/verilog.y | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/V3Width.cpp b/src/V3Width.cpp index 3f0598242..ef2a1c118 100644 --- a/src/V3Width.cpp +++ b/src/V3Width.cpp @@ -1635,7 +1635,7 @@ class WidthVisitor final : public VNVisitor { void visit(AstCgOptionAssign* nodep) override { // We report COVERIGN on the whole covergroup; if get more fine-grained add this // nodep->v3warn(COVERIGN, "Ignoring unsupported: coverage option"); - VL_DO_DANGLING(pushDeletep(nodep), nodep); + VL_DO_DANGLING(pushDeletep(nodep->unlinkFrBack()), nodep); } void visit(AstPow* nodep) override { // Pow is special, output sign only depends on LHS sign, but diff --git a/src/verilog.y b/src/verilog.y index 8175f532c..945c90883 100644 --- a/src/verilog.y +++ b/src/verilog.y @@ -6775,6 +6775,7 @@ covergroup_declaration: // ==IEEE: covergroup_declaration newp->isConstructor(true); newp->dtypep(cgClassp->dtypep()); newp->addStmtsp($3); + newp->addStmtsp($6); cgClassp->addMembersp(newp); GRAMMARP->createCoverGroupMethods(cgClassp, $4); @@ -6792,6 +6793,7 @@ covergroup_declaration: // ==IEEE: covergroup_declaration newp->classMethod(true); newp->isConstructor(true); newp->dtypep(cgClassp->dtypep()); + newp->addStmtsp($5); cgClassp->addMembersp(newp); GRAMMARP->createCoverGroupMethods(cgClassp, nullptr);