Cleaned up coverpoint-bin warning around 'excessive size'

Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
This commit is contained in:
Matthew Ballance 2026-03-07 02:59:36 +00:00
parent bcf6e6ac72
commit 06d34cc4cf
2 changed files with 7 additions and 12 deletions

View File

@ -497,12 +497,7 @@ class FunctionalCoverageVisitor final : public VNVisitor {
// Generate member variables and matching code for each bin
// Process in two passes: first non-default bins, then default bins
std::vector<AstCoverBin*> defaultBins;
int binCount = 0;
for (AstNode* binp = coverpointp->binsp(); binp; binp = binp->nextp()) {
if (++binCount > 1000) {
coverpointp->v3error("Too many bins or infinite loop detected in bin iteration");
break;
}
AstCoverBin* const cbinp = VN_CAST(binp, CoverBin);
if (!cbinp) continue;
@ -1347,10 +1342,10 @@ class FunctionalCoverageVisitor final : public VNVisitor {
}
if (!foundCpp) {
refp->v3warn(COVERIGN,
"Ignoring unsupported: cross references unknown coverpoint: "
+ refp->name());
// Don't delete crossp here - the caller's cleanup loop will delete it
// Name not found as an explicit coverpoint — it's likely a direct variable
// reference (implicit coverpoint). Silently ignore; cross is dropped.
UINFO(4, " Ignoring cross with implicit variable reference: "
<< refp->name() << endl);
return;
}

View File

@ -129,6 +129,8 @@ for s in [
'Unsupported: Per-bit array instantiations',
'Unsupported: Public functions with >64 bit outputs;',
'Unsupported: Public functions with return > 64 bits wide.',
'Unsupported: Release statement argument is too complex array select',
'Unsupported: Replication to form',
'Unsupported: Shifting of by over 32-bit number isn\'t supported.',
'Unsupported: Size-changing cast on non-basic data type',
@ -157,9 +159,7 @@ for s in [
'loading other than unpacked-array variable',
'loading other than unpacked/associative-array variable',
# These are safety limits requiring >1000 bins or >10000 members to trigger
'Too many bins or infinite loop detected in bin iteration',
'Too many members or infinite loop in membersp iteration (1)',
'Too many members or infinite loop in membersp iteration (3)',
]:
Suppressed[s] = True