diff --git a/src/V3EmitCFunc.h b/src/V3EmitCFunc.h index 9a5b091f7..08c485167 100644 --- a/src/V3EmitCFunc.h +++ b/src/V3EmitCFunc.h @@ -386,11 +386,7 @@ public: AstAssocArrayDType* const adtypep = VN_AS(nodep->fromp()->dtypep()->skipRefp(), AssocArrayDType); UASSERT_OBJ(adtypep, nodep, "Associative select on non-associative type"); - if (adtypep->keyDTypep()->isWide()) { - emitCvtWideArray(nodep->bitp(), nodep->fromp()); - } else { - iterateAndNextConstNull(nodep->bitp()); - } + iterateAndNextConstNull(nodep->bitp()); puts(")"); } void visit(AstWildcardSel* nodep) override { diff --git a/test_regress/t/t_assoc.v b/test_regress/t/t_assoc.v index a7f2b6a4e..4f8049dcd 100644 --- a/test_regress/t/t_assoc.v +++ b/test_regress/t/t_assoc.v @@ -102,8 +102,11 @@ module t (/*AUTOARG*/ begin // Wide-wides - need special array container classes, ick. logic [91:2] a [ logic [65:1] ]; + int b [ bit [99:0] ]; a[~65'hfe] = ~ 90'hfee; `checkh(a[~65'hfe], ~ 90'hfee); + b[100'b1] = 1; + `checkh(b[100'b1], 1); end begin