From 09deb458832015a1964c303cccf30606964e1436 Mon Sep 17 00:00:00 2001 From: Ryszard Rozak Date: Thu, 26 Feb 2026 13:54:54 +0100 Subject: [PATCH] Set width Signed-off-by: Ryszard Rozak --- src/V3Force.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/V3Force.cpp b/src/V3Force.cpp index 5c5bcfc74..6f270a6a6 100644 --- a/src/V3Force.cpp +++ b/src/V3Force.cpp @@ -366,10 +366,20 @@ private: varp->v3fatalSrc("Unsupported: Force of variable of unhandled data type"); return dtypep; } - for (const auto& memberp : enMemberDTypes) enStructp->addMembersp(memberp); + int width = 0; + for (const auto& memberp : enMemberDTypes) { + enStructp->addMembersp(memberp); + const int memberWidth = memberp->width(); + if (VN_IS(structp, StructDType)) { + width += memberWidth; + } else { + width = std::max(width, memberWidth); + } + } v3Global.rootp()->typeTablep()->addTypesp(enStructp); enStructp->name(structp->name() + "__VforceEn_t"); enStructp->dtypep(enStructp); + enStructp->widthForce(width, width); enStructp->classOrPackagep(structp->classOrPackagep()); dtypep->user1p(enStructp); AstTypedef* const typedefp