From 9255707dd4a51ffdb308820b879675a7d19224d8 Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Thu, 29 Dec 2022 20:16:30 -0500 Subject: [PATCH] Fix detecting multiple pattern defaults --- src/V3Width.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/V3Width.cpp b/src/V3Width.cpp index 5d12744f7..94629c128 100644 --- a/src/V3Width.cpp +++ b/src/V3Width.cpp @@ -3732,13 +3732,14 @@ private: } } AstPatMember* defaultp = nullptr; - for (AstPatMember* patp = VN_AS(nodep->itemsp(), PatMember); patp; - patp = VN_AS(patp->nextp(), PatMember)) { + for (AstPatMember* patp = VN_AS(nodep->itemsp(), PatMember); patp;) { + AstPatMember* const nextp = VN_AS(patp->nextp(), PatMember); if (patp->isDefault()) { if (defaultp) nodep->v3error("Multiple '{ default: } clauses"); defaultp = patp; patp->unlinkFrBack(); } + patp = nextp; } while (const AstConstDType* const vdtypep = VN_CAST(dtypep, ConstDType)) { dtypep = vdtypep->subDTypep()->skipRefp();