From 472a131df74d868da007666b10a67e21ff198688 Mon Sep 17 00:00:00 2001 From: Sumanth Kadiyala Date: Wed, 5 Aug 2026 02:51:51 -0400 Subject: [PATCH] Fix nondeterminism in trace stage (#8046) Co-authored-by: Sumanth Kadiyala --- docs/CONTRIBUTORS | 1 + src/V3Trace.cpp | 9 ++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/CONTRIBUTORS b/docs/CONTRIBUTORS index b2f7290f7..687a978a0 100644 --- a/docs/CONTRIBUTORS +++ b/docs/CONTRIBUTORS @@ -294,6 +294,7 @@ Stuart Morris sumpster Szymon Gizler Sören Tempel +Sumanth Kadiyala Teng Huang Thomas Aldrian Thomas Brown diff --git a/src/V3Trace.cpp b/src/V3Trace.cpp index 8cee034fa..fffe8b786 100644 --- a/src/V3Trace.cpp +++ b/src/V3Trace.cpp @@ -1146,8 +1146,8 @@ class TraceVisitor final : public VNVisitor { } TraceCFuncVertex* getCFuncVertexp(AstCFunc* nodep) { - TraceCFuncVertex* vertexp - = nodep->user1() ? nodep->user1u().toGraphVertex()->cast() : nullptr; + V3GraphVertex* const vtxp = nodep->user1u().toGraphVertex(); + TraceCFuncVertex* vertexp = vtxp ? vtxp->cast() : nullptr; if (!vertexp) { vertexp = new TraceCFuncVertex{&m_graph, nodep}; nodep->user1p(vertexp); @@ -1155,9 +1155,8 @@ class TraceVisitor final : public VNVisitor { return vertexp; } TraceActivityVertex* getActivityVertexp(AstNode* nodep, bool slow) { - TraceActivityVertex* vertexp - = nodep->user3() ? nodep->user3u().toGraphVertex()->cast() - : nullptr; + V3GraphVertex* const vtxp = nodep->user3u().toGraphVertex(); + TraceActivityVertex* vertexp = vtxp ? vtxp->cast() : nullptr; if (!vertexp) { vertexp = new TraceActivityVertex{&m_graph, nodep, slow}; nodep->user3p(vertexp);