From e826a47ad654a304abd277efec168ffa11d825f0 Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Fri, 27 Mar 2026 21:43:11 -0400 Subject: [PATCH] Fix broken out-of-bounds scan check --- include/verilated.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/verilated.cpp b/include/verilated.cpp index f78f223a8..008323ffc 100644 --- a/include/verilated.cpp +++ b/include/verilated.cpp @@ -1423,7 +1423,7 @@ void _vl_vsss_based(WDataOutP owp, int obits, int baseLog2, const char* strp, si VL_ZERO_W(obits, owp); int lsb = 0; for (int i = 0, pos = static_cast(posend) - 1; - i < obits && pos >= static_cast(posstart); --pos) { + i < obits && pos >= static_cast(posstart); --pos, ++i) { // clang-format off switch (std::tolower (strp[pos])) { case 'x': case 'z': case '?': // FALLTHRU @@ -1443,7 +1443,7 @@ void _vl_vsss_based(WDataOutP owp, int obits, int baseLog2, const char* strp, si case 'd': _vl_vsss_setbit(owp, obits, lsb, baseLog2, 13); lsb += baseLog2; break; case 'e': _vl_vsss_setbit(owp, obits, lsb, baseLog2, 14); lsb += baseLog2; break; case 'f': _vl_vsss_setbit(owp, obits, lsb, baseLog2, 15); lsb += baseLog2; break; - case '_': break; + default: break; } // clang-format on }