From 5f5f1970d706aaf2e453799269ab7db4cb3cce1d Mon Sep 17 00:00:00 2001 From: Ryszard Rozak Date: Mon, 26 Jan 2026 11:11:14 +0100 Subject: [PATCH] Use cloned lhsp Signed-off-by: Ryszard Rozak --- src/V3Force.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/V3Force.cpp b/src/V3Force.cpp index fd0fd7332..0176a05be 100644 --- a/src/V3Force.cpp +++ b/src/V3Force.cpp @@ -150,10 +150,12 @@ public: AstNodeStmt* stmtsp = nullptr; for (AstMemberDType* mdtp = structDtypep->membersp(); mdtp; mdtp = VN_AS(mdtp->nextp(), MemberDType)) { - AstStructSel* const structSelp = new AstStructSel{flp, lhsp, mdtp->name()}; + AstNodeExpr* const lhsCopyp = lhsp->cloneTreePure(false); + AstVarRef* const lhsVarRefCopyp = lhsVarRefp->clonep(); + AstStructSel* const structSelp = new AstStructSel{flp, lhsCopyp, mdtp->name()}; structSelp->dtypep(mdtp); AstNodeStmt* const memberStmtp - = getAssignStmtsp(structSelp, vscp, lhsVarRefp, assigns); + = getAssignStmtsp(structSelp, vscp, lhsVarRefCopyp, assigns); stmtsp = stmtsp ? stmtsp->addNext(memberStmtp) : memberStmtp; } return stmtsp;