Update format of unsupported messages for consistency

Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
This commit is contained in:
Matthew Ballance 2026-03-19 14:48:02 +00:00
parent 9e70f0a2ae
commit cbf6c64d05
4 changed files with 126 additions and 125 deletions

View File

@ -3958,16 +3958,16 @@ value_range<nodeExprp>: // ==IEEE: value_range/open_value_range
covergroup_value_range<nodeExprp>: // ==IEEE-2012: covergroup_value_range
cgexpr { $$ = $1; }
| '[' cgexpr ':' cgexpr ']'
{ $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: covergroup value range"); DEL($2, $4); }
{ $$ = nullptr; BBCOVERIGN($1, "Unsupported: covergroup value range '[...]'"); DEL($2, $4); }
// // IEEE-2023: added all four:
// // Skipped as '$' is part of our expr
// // IEEE-2023: '[' '$' ':' cgexpr ']'
// // Skipped as '$' is part of our expr
// // IEEE-2023: '[' cgexpr ':' '$' ']'
| '[' cgexpr yP_PLUSSLASHMINUS cgexpr ']'
{ $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: covergroup value range"); DEL($2, $4); }
{ $$ = nullptr; BBCOVERIGN($1, "Unsupported: covergroup value range '[...]'"); DEL($2, $4); }
| '[' cgexpr yP_PLUSPCTMINUS cgexpr ']'
{ $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: covergroup value range"); DEL($2, $4); }
{ $$ = nullptr; BBCOVERIGN($1, "Unsupported: covergroup value range '[...]'"); DEL($2, $4); }
;
caseCondList<nodeExprp>: // IEEE: part of case_item
@ -6936,10 +6936,11 @@ covergroup_declaration<nodep>: // ==IEEE: covergroup_declaration
{ AstSenTree* clockp = nullptr;
AstNode* sampleArgsp = nullptr;
if ($4) {
if (VN_IS($4, SenItem))
if (VN_IS($4, SenItem)) {
clockp = new AstSenTree{$<fl>1, VN_AS($4, SenItem)};
else
} else {
sampleArgsp = $4;
}
}
$$ = new AstCovergroup{$<fl>1, *$2, static_cast<AstVar*>($3),
static_cast<AstVar*>(sampleArgsp), $6, clockp};
@ -6951,7 +6952,7 @@ covergroup_declaration<nodep>: // ==IEEE: covergroup_declaration
/*cont*/ coverage_spec_or_optionListE
/*cont*/ yENDGROUP endLabelE
{ $$ = nullptr;
BBUNSUP($1, "Unsupported: covergroup inheritance (extends) is not implemented");
BBUNSUP($1, "Unsupported: covergroup inheritance (extends)");
DEL($5); }
;
@ -7000,50 +7001,50 @@ cover_point<nodep>: // ==IEEE: cover_point
// // [ [ data_type_or_implicit ] cover_point_identifier ':' ] yCOVERPOINT
yCOVERPOINT expr iffE bins_or_empty
{ AstCoverpoint* const cp = new AstCoverpoint{$<fl>1, "", $2};
if ($3) cp->iffp(VN_AS($3, NodeExpr));
if ($3) cp->iffp($3);
if ($4) cp->addBinsp($4);
$$ = cp; }
// // IEEE-2012: class_scope before an ID
| id/*cover_point_id*/ ':' yCOVERPOINT expr iffE bins_or_empty
{ AstCoverpoint* const cp = new AstCoverpoint{$<fl>3, *$1, $4};
if ($5) cp->iffp(VN_AS($5, NodeExpr));
if ($5) cp->iffp($5);
if ($6) cp->addBinsp($6);
$$ = cp; }
// // data_type_or_implicit expansion
| data_type id/*cover_point_id*/ ':' yCOVERPOINT expr iffE bins_or_empty
{ AstCoverpoint* const cp = new AstCoverpoint{$<fl>4, *$2, $5};
if ($6) cp->iffp(VN_AS($6, NodeExpr));
if ($6) cp->iffp($6);
if ($7) cp->addBinsp($7);
$$ = cp;
DEL($1); }
| yVAR data_type id/*cover_point_id*/ ':' yCOVERPOINT expr iffE bins_or_empty
{ AstCoverpoint* const cp = new AstCoverpoint{$<fl>5, *$3, $6};
if ($7) cp->iffp(VN_AS($7, NodeExpr));
if ($7) cp->iffp($7);
if ($8) cp->addBinsp($8);
$$ = cp;
DEL($2); }
| yVAR implicit_typeE id/*cover_point_id*/ ':' yCOVERPOINT expr iffE bins_or_empty
{ AstCoverpoint* const cp = new AstCoverpoint{$<fl>5, *$3, $6};
if ($7) cp->iffp(VN_AS($7, NodeExpr));
if ($7) cp->iffp($7);
if ($8) cp->addBinsp($8);
$$ = cp;
DEL($2); }
| signingE rangeList id/*cover_point_id*/ ':' yCOVERPOINT expr iffE bins_or_empty
{ AstCoverpoint* const cp = new AstCoverpoint{$<fl>5, *$3, $6};
if ($7) cp->iffp(VN_AS($7, NodeExpr));
if ($7) cp->iffp($7);
if ($8) cp->addBinsp($8);
$$ = cp;
DEL($2); }
| signing id/*cover_point_id*/ ':' yCOVERPOINT expr iffE bins_or_empty
{ AstCoverpoint* const cp = new AstCoverpoint{$<fl>4, *$2, $5};
if ($6) cp->iffp(VN_AS($6, NodeExpr));
if ($6) cp->iffp($6);
if ($7) cp->addBinsp($7);
$$ = cp; }
// // IEEE-2012:
| bins_or_empty { $$ = $1; }
;
iffE<nodep>: // IEEE: part of cover_point, others
iffE<nodeExprp>: // IEEE: part of cover_point, others
/* empty */ { $$ = nullptr; }
| yIFF '(' expr ')'
{ $$ = $3; /* Keep iff condition for coverpoint */ }
@ -7071,9 +7072,9 @@ bins_or_options<nodep>: // ==IEEE: bins_or_options
coverage_option { $$ = $1; }
// // Can't use wildcardE as results in conflicts
| yBINS idAny/*bin_identifier*/ bins_orBraE '=' '{' range_list '}' iffE
{ $$ = new AstCoverBin{$<fl>2, *$2, $6, false, false};
if ($3) VN_AS($$, CoverBin)->isArray(true); // If bins_orBraE returned non-null, it's array
DEL($8); }
{ AstCoverBin* const binp = new AstCoverBin{$<fl>2, *$2, $6, false, false};
if ($3) binp->isArray(true);
$$ = binp; DEL($8); }
| yBINS idAny/*bin_identifier*/ '[' cgexpr ']' iffE
{ // Check for automatic bins: bins auto[N]
if (*$2 == "auto") {
@ -7081,18 +7082,18 @@ bins_or_options<nodep>: // ==IEEE: bins_or_options
DEL($6);
} else {
$$ = nullptr;
BBCOVERIGN($<fl>2, "Ignoring unsupported: bin array (non-auto)");
BBCOVERIGN($<fl>2, "Unsupported: 'bins' array (non-auto)");
DEL($4, $6);
}
}
| yIGNORE_BINS idAny/*bin_identifier*/ bins_orBraE '=' '{' range_list '}' iffE
{ $$ = new AstCoverBin{$<fl>2, *$2, $6, true, false};
if ($3) VN_AS($$, CoverBin)->isArray(true);
DEL($8); }
{ AstCoverBin* const binp = new AstCoverBin{$<fl>2, *$2, $6, true, false};
if ($3) binp->isArray(true);
$$ = binp; DEL($8); }
| yILLEGAL_BINS idAny/*bin_identifier*/ bins_orBraE '=' '{' range_list '}' iffE
{ $$ = new AstCoverBin{$<fl>2, *$2, $6, false, true};
if ($3) VN_AS($$, CoverBin)->isArray(true);
DEL($8); }
{ AstCoverBin* const binp = new AstCoverBin{$<fl>2, *$2, $6, false, true};
if ($3) binp->isArray(true);
$$ = binp; DEL($8); }
| yBINS idAny/*bin_identifier*/ bins_orBraE '=' '{' range_list '}' yWITH__PAREN '(' cgexpr ')' iffE
{ $$ = new AstCoverBin{$<fl>2, *$2, $6, false, false};
DEL($10, $12); /* TODO: Support 'with' clause */ }
@ -7103,11 +7104,11 @@ bins_or_options<nodep>: // ==IEEE: bins_or_options
{ $$ = new AstCoverBin{$<fl>2, *$2, $6, false, true};
DEL($10, $12); /* TODO: Support 'with' clause */ }
| yBINS idAny/*bin_identifier*/ bins_orBraE '=' id/*cover_point_id*/ yWITH__PAREN '(' cgexpr ')' iffE
{ $$ = nullptr; BBCOVERIGN($<fl>6, "Ignoring unsupported: cover bin 'with' specification"); DEL($8, $10); }
{ $$ = nullptr; BBCOVERIGN($<fl>6, "Unsupported: 'with' in cover bin"); DEL($8, $10); }
| yIGNORE_BINS idAny/*bin_identifier*/ bins_orBraE '=' id/*cover_point_id*/ yWITH__PAREN '(' cgexpr ')' iffE
{ $$ = nullptr; BBCOVERIGN($<fl>6, "Ignoring unsupported: cover bin 'with' specification"); DEL($8, $10); }
{ $$ = nullptr; BBCOVERIGN($<fl>6, "Unsupported: 'with' in cover bin"); DEL($8, $10); }
| yILLEGAL_BINS idAny/*bin_identifier*/ bins_orBraE '=' id/*cover_point_id*/ yWITH__PAREN '(' cgexpr ')' iffE
{ $$ = nullptr; BBCOVERIGN($<fl>6, "Ignoring unsupported: cover bin 'with' specification"); DEL($8, $10); }
{ $$ = nullptr; BBCOVERIGN($<fl>6, "Unsupported: 'with' in cover bin"); DEL($8, $10); }
| yWILDCARD yBINS idAny/*bin_identifier*/ bins_orBraE '=' '{' range_list '}' iffE
{ $$ = new AstCoverBin{$<fl>3, *$3, $7, false, false, true};
DEL($9); }
@ -7118,11 +7119,11 @@ bins_or_options<nodep>: // ==IEEE: bins_or_options
{ $$ = new AstCoverBin{$<fl>3, *$3, $7, false, true, true};
DEL($9); }
| yWILDCARD yBINS idAny/*bin_identifier*/ bins_orBraE '=' '{' range_list '}' yWITH__PAREN '(' cgexpr ')' iffE
{ $$ = nullptr; BBCOVERIGN($<fl>9, "Ignoring unsupported: cover bin 'wildcard' 'with' specification"); DEL($7, $11, $13); }
{ $$ = nullptr; BBCOVERIGN($<fl>9, "Unsupported: 'with' in wildcard cover bin"); DEL($7, $11, $13); }
| yWILDCARD yIGNORE_BINS idAny/*bin_identifier*/ bins_orBraE '=' '{' range_list '}' yWITH__PAREN '(' cgexpr ')' iffE
{ $$ = nullptr; BBCOVERIGN($<fl>9, "Ignoring unsupported: cover bin 'wildcard' 'with' specification"); DEL($7, $11, $13); }
{ $$ = nullptr; BBCOVERIGN($<fl>9, "Unsupported: 'with' in wildcard cover bin"); DEL($7, $11, $13); }
| yWILDCARD yILLEGAL_BINS idAny/*bin_identifier*/ bins_orBraE '=' '{' range_list '}' yWITH__PAREN '(' cgexpr ')' iffE
{ $$ = nullptr; BBCOVERIGN($<fl>9, "Ignoring unsupported: cover bin 'wildcard' 'with' specification"); DEL($7, $11, $13); }
{ $$ = nullptr; BBCOVERIGN($<fl>9, "Unsupported: 'with' in wildcard cover bin"); DEL($7, $11, $13); }
//
// // cgexpr part of trans_list
| yBINS idAny/*bin_identifier*/ bins_orBraE '=' trans_list iffE
@ -7138,11 +7139,11 @@ bins_or_options<nodep>: // ==IEEE: bins_or_options
$$ = new AstCoverBin{$<fl>2, *$2, static_cast<AstCoverTransSet*>($5), VCoverBinsType{VCoverBinsType::BINS_ILLEGAL}, isArray != nullptr};
DEL($6); }
| yWILDCARD yBINS idAny/*bin_identifier*/ bins_orBraE '=' trans_list iffE
{ $$ = nullptr; BBCOVERIGN($<fl>1, "Ignoring unsupported: cover bin 'wildcard' trans list"); DEL($6, $7);}
{ $$ = nullptr; BBCOVERIGN($<fl>1, "Unsupported: 'wildcard' transition list in cover bin"); DEL($6, $7);}
| yWILDCARD yIGNORE_BINS idAny/*bin_identifier*/ bins_orBraE '=' trans_list iffE
{ $$ = nullptr; BBCOVERIGN($<fl>1, "Ignoring unsupported: cover bin 'wildcard' trans list"); DEL($6, $7);}
{ $$ = nullptr; BBCOVERIGN($<fl>1, "Unsupported: 'wildcard' transition list in cover bin"); DEL($6, $7);}
| yWILDCARD yILLEGAL_BINS idAny/*bin_identifier*/ bins_orBraE '=' trans_list iffE
{ $$ = nullptr; BBCOVERIGN($<fl>1, "Ignoring unsupported: cover bin 'wildcard' trans list"); DEL($6, $7);}
{ $$ = nullptr; BBCOVERIGN($<fl>1, "Unsupported: 'wildcard' transition list in cover bin"); DEL($6, $7);}
//
| yBINS idAny/*bin_identifier*/ bins_orBraE '=' yDEFAULT iffE
{ $$ = new AstCoverBin{$<fl>2, *$2, VCoverBinsType::BINS_DEFAULT};
@ -7154,11 +7155,11 @@ bins_or_options<nodep>: // ==IEEE: bins_or_options
{ $$ = new AstCoverBin{$<fl>2, *$2, VCoverBinsType::BINS_ILLEGAL};
DEL($6); }
| yBINS idAny/*bin_identifier*/ bins_orBraE '=' yDEFAULT ySEQUENCE iffE
{ $$ = nullptr; BBCOVERIGN($<fl>6, "Ignoring unsupported: cover bin 'default' 'sequence'"); DEL($7); }
{ $$ = nullptr; BBCOVERIGN($<fl>6, "Unsupported: 'sequence' in default cover bin"); DEL($7); }
| yIGNORE_BINS idAny/*bin_identifier*/ bins_orBraE '=' yDEFAULT ySEQUENCE iffE
{ $$ = nullptr; BBCOVERIGN($<fl>6, "Ignoring unsupported: cover bin 'default' 'sequence'"); DEL($7); }
{ $$ = nullptr; BBCOVERIGN($<fl>6, "Unsupported: 'sequence' in default cover bin"); DEL($7); }
| yILLEGAL_BINS idAny/*bin_identifier*/ bins_orBraE '=' yDEFAULT ySEQUENCE iffE
{ $$ = nullptr; BBCOVERIGN($<fl>6, "Ignoring unsupported: cover bin 'default' 'sequence'"); DEL($7); }
{ $$ = nullptr; BBCOVERIGN($<fl>6, "Unsupported: 'sequence' in default cover bin"); DEL($7); }
;
bins_orBraE<fl>: // IEEE: part of bins_or_options: returns fileline (abuse for boolean flag)
@ -7174,15 +7175,15 @@ trans_list<nodep>: // ==IEEE: trans_list
trans_set<nodep>: // ==IEEE: trans_set (returns AstCoverTransSet)
trans_range_list {
// Single transition item - wrap in AstCoverTransSet
$$ = new AstCoverTransSet{$<fl>1, static_cast<AstCoverTransItem*>($1)};
AstCoverTransItem* const itemp = static_cast<AstCoverTransItem*>($1);
$$ = new AstCoverTransSet{$<fl>1, itemp};
}
| trans_set yP_EQGT trans_range_list
{
// Chain transition items with => operator
// Add new item to existing set
$$ = $1;
static_cast<AstCoverTransSet*>($$)->addItemsp(static_cast<AstCoverTransItem*>($3));
AstCoverTransSet* const setp = static_cast<AstCoverTransSet*>($1);
AstCoverTransItem* const itemp = static_cast<AstCoverTransItem*>($3);
setp->addItemsp(itemp);
$$ = setp;
}
;
@ -7192,17 +7193,17 @@ trans_range_list<nodep>: // ==IEEE: trans_range_list (returns AstCoverTransItem
$$ = new AstCoverTransItem{$<fl>1, $1, VTransRepType::NONE};
}
| trans_item yP_BRASTAR cgexpr ']'
{ $$ = nullptr; BBCOVERIGN($<fl>2, "Ignoring unsupported: cover '[*'"); DEL($1, $3); }
{ $$ = nullptr; BBCOVERIGN($<fl>2, "Unsupported: '[*]' in cover transition"); DEL($1, $3); }
| trans_item yP_BRASTAR cgexpr ':' cgexpr ']'
{ $$ = nullptr; BBCOVERIGN($<fl>2, "Ignoring unsupported: cover '[*'"); DEL($1, $3, $5); }
{ $$ = nullptr; BBCOVERIGN($<fl>2, "Unsupported: '[*]' in cover transition"); DEL($1, $3, $5); }
| trans_item yP_BRAMINUSGT cgexpr ']'
{ $$ = nullptr; BBCOVERIGN($<fl>2, "Ignoring unsupported: cover '[->'"); DEL($1, $3); }
{ $$ = nullptr; BBCOVERIGN($<fl>2, "Unsupported: '[->' in cover transition"); DEL($1, $3); }
| trans_item yP_BRAMINUSGT cgexpr ':' cgexpr ']'
{ $$ = nullptr; BBCOVERIGN($<fl>2, "Ignoring unsupported: cover '[->'"); DEL($1, $3, $5); }
{ $$ = nullptr; BBCOVERIGN($<fl>2, "Unsupported: '[->' in cover transition"); DEL($1, $3, $5); }
| trans_item yP_BRAEQ cgexpr ']'
{ $$ = nullptr; BBCOVERIGN($<fl>2, "Ignoring unsupported: cover '[='"); DEL($1, $3); }
{ $$ = nullptr; BBCOVERIGN($<fl>2, "Unsupported: '[=]' in cover transition"); DEL($1, $3); }
| trans_item yP_BRAEQ cgexpr ':' cgexpr ']'
{ $$ = nullptr; BBCOVERIGN($<fl>2, "Ignoring unsupported: cover '[='"); DEL($1, $3, $5); }
{ $$ = nullptr; BBCOVERIGN($<fl>2, "Unsupported: '[=]' in cover transition"); DEL($1, $3, $5); }
;
trans_item<nodep>: // ==IEEE: range_list (returns range list node)
@ -7340,16 +7341,16 @@ cross_body_itemList<nodep>: // IEEE: part of cross_body
cross_body_item<nodep>: // ==IEEE: cross_body_item
function_declaration
{ $$ = nullptr; BBCOVERIGN($1->fileline(), "Ignoring unsupported: coverage cross 'function' declaration"); DEL($1); }
{ $$ = nullptr; BBCOVERIGN($1->fileline(), "Unsupported: 'function' in coverage cross body"); DEL($1); }
// // IEEE: bins_selection_or_option
| coverage_option ';' { $$ = $1; }
// // IEEE: bins_selection - for now, we ignore explicit cross bins
| yBINS idAny/*new-bin_identifier*/ '=' select_expression iffE ';'
{ $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: explicit coverage cross bins"); DEL($4, $5); }
{ $$ = nullptr; BBCOVERIGN($1, "Unsupported: explicit coverage cross bins"); DEL($4, $5); }
| yIGNORE_BINS idAny/*new-bin_identifier*/ '=' select_expression iffE ';'
{ $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: explicit coverage cross bins"); DEL($4, $5); }
{ $$ = nullptr; BBCOVERIGN($1, "Unsupported: explicit coverage cross bins"); DEL($4, $5); }
| yILLEGAL_BINS idAny/*new-bin_identifier*/ '=' select_expression iffE ';'
{ $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: explicit coverage cross bins"); DEL($4, $5); }
{ $$ = nullptr; BBCOVERIGN($1, "Unsupported: explicit coverage cross bins"); DEL($4, $5); }
| error ';' { $$ = nullptr; } // LCOV_EXCL_LINE
;
@ -7357,28 +7358,28 @@ select_expression<nodep>: // ==IEEE: select_expression
select_expression_r
{ $$ = $1; }
| select_expression yP_ANDAND select_expression
{ $$ = nullptr; BBCOVERIGN($2, "Ignoring unsupported: coverage select expression '&&'"); DEL($1, $3); }
{ $$ = nullptr; BBCOVERIGN($2, "Unsupported: '&&' in coverage select expression"); DEL($1, $3); }
| select_expression yP_OROR select_expression
{ $$ = nullptr; BBCOVERIGN($2, "Ignoring unsupported: coverage select expression '||'"); DEL($1, $3); }
{ $$ = nullptr; BBCOVERIGN($2, "Unsupported: '||' in coverage select expression"); DEL($1, $3); }
;
// This non-terminal exists to disambiguate select_expression and make "with" bind tighter
select_expression_r<nodep>:
// // IEEE: select_condition expanded here
yBINSOF '(' bins_expression ')'
{ $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: coverage select expression 'binsof'"); DEL($3); }
{ $$ = nullptr; BBCOVERIGN($1, "Unsupported: 'binsof' in coverage select expression"); DEL($3); }
| '!' yBINSOF '(' bins_expression ')'
{ $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: coverage select expression 'binsof'"); DEL($4); }
{ $$ = nullptr; BBCOVERIGN($1, "Unsupported: 'binsof' in coverage select expression"); DEL($4); }
| yBINSOF '(' bins_expression ')' yINTERSECT '{' covergroup_range_list '}'
{ $$ = nullptr; BBCOVERIGN($5, "Ignoring unsupported: coverage select expression 'intersect'"); DEL($7); }
{ $$ = nullptr; BBCOVERIGN($5, "Unsupported: 'intersect' in coverage select expression"); DEL($7); }
| '!' yBINSOF '(' bins_expression ')' yINTERSECT '{' covergroup_range_list '}' { }
{ $$ = nullptr; BBCOVERIGN($5, "Ignoring unsupported: coverage select expression 'intersect'"); DEL($4, $8); }
{ $$ = nullptr; BBCOVERIGN($5, "Unsupported: 'intersect' in coverage select expression"); DEL($4, $8); }
| yWITH__PAREN '(' cgexpr ')'
{ $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: coverage select expression with"); DEL($3); }
{ $$ = nullptr; BBCOVERIGN($1, "Unsupported: 'with' in coverage select expression"); DEL($3); }
| '!' yWITH__PAREN '(' cgexpr ')'
{ $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: coverage select expression with"); DEL($4); }
{ $$ = nullptr; BBCOVERIGN($1, "Unsupported: 'with' in coverage select expression"); DEL($4); }
| select_expression_r yWITH__PAREN '(' cgexpr ')'
{ $$ = nullptr; BBCOVERIGN($2, "Ignoring unsupported: coverage select expression with"); DEL($1, $4); }
{ $$ = nullptr; BBCOVERIGN($2, "Unsupported: 'with' in coverage select expression"); DEL($1, $4); }
// // IEEE-2012: Need clarification as to precedence
//UNSUP yWITH__PAREN '(' cgexpr ')' yMATCHES cgexpr { }
// // IEEE-2012: Need clarification as to precedence
@ -7396,7 +7397,7 @@ select_expression_r<nodep>:
//UNSUP cgexpr yMATCHES cgexpr {..}
//UNSUP // Below are all removed
| idAny '(' list_of_argumentsE ')'
{ $$ = nullptr; BBCOVERIGN($<fl>1, "Ignoring unsupported: coverage select function call"); DEL($3); }
{ $$ = nullptr; BBCOVERIGN($<fl>1, "Unsupported: function call in coverage select expression"); DEL($3); }
//UNSUP // Above are all removed, replace with:
;
@ -7426,7 +7427,7 @@ coverage_eventE<nodep>: // IEEE: [ coverage_event ]
}
}
| yP_ATAT '(' block_event_expression ')'
{ $$ = nullptr; BBCOVERIGN($<fl>1, "Ignoring unsupported: coverage '@@' events"); DEL($3); }
{ $$ = nullptr; BBCOVERIGN($<fl>1, "Unsupported: '@@' coverage event"); DEL($3); }
;
block_event_expression<nodep>: // ==IEEE: block_event_expression

View File

@ -1,4 +1,4 @@
%Error-UNSUPPORTED: t/t_covergroup_extends_unsup.v:26:5: Unsupported: covergroup inheritance (extends) is not implemented
%Error-UNSUPPORTED: t/t_covergroup_extends_unsup.v:26:5: Unsupported: covergroup inheritance (extends)
26 | covergroup extends g1;
| ^~~~~~~~~~
... For error description see https://verilator.org/warn/UNSUPPORTED?v=latest

View File

@ -1,4 +1,4 @@
%Warning-COVERIGN: t/t_covergroup_trans_repeat_unsup_bad.v:15:20: Ignoring unsupported: cover '[*'
%Warning-COVERIGN: t/t_covergroup_trans_repeat_unsup_bad.v:15:20: Unsupported: '[*]' in cover transition
15 | bins t1 = (1 [*2]);
| ^~
... For warning description see https://verilator.org/warn/COVERIGN?v=latest

View File

@ -1,4 +1,4 @@
%Warning-COVERIGN: t/t_covergroup_unsup.v:64:24: Ignoring unsupported: coverage '@@' events
%Warning-COVERIGN: t/t_covergroup_unsup.v:64:24: Unsupported: '@@' coverage event
64 | covergroup cg_atat() @@ (begin funca or end funcb);
| ^~
... For warning description see https://verilator.org/warn/COVERIGN?v=latest
@ -9,184 +9,184 @@
%Warning-COVERIGN: t/t_covergroup_unsup.v:101:21: Ignoring unsupported: cross iff condition
101 | cross a, b iff (!rst) {}
| ^
%Warning-COVERIGN: t/t_covergroup_unsup.v:108:21: Ignoring unsupported: coverage cross 'function' declaration
%Warning-COVERIGN: t/t_covergroup_unsup.v:108:21: Unsupported: 'function' in coverage cross body
108 | function void crossfunc; endfunction
| ^~~~~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:109:18: Ignoring unsupported: coverage select function call
%Warning-COVERIGN: t/t_covergroup_unsup.v:109:18: Unsupported: function call in coverage select expression
109 | bins one = crossfunc();
| ^~~~~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:109:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:109:7: Unsupported: explicit coverage cross bins
109 | bins one = crossfunc();
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:113:31: Ignoring unsupported: cross iff condition
113 | my_cg_id: cross a, b iff (!rst);
| ^
%Warning-COVERIGN: t/t_covergroup_unsup.v:129:32: Ignoring unsupported: cover bin 'wildcard' 'with' specification
%Warning-COVERIGN: t/t_covergroup_unsup.v:129:32: Unsupported: 'with' in wildcard cover bin
129 | { wildcard bins bwaw = {a} with ( b ); }
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:132:27: Ignoring unsupported: cover bin 'default' 'sequence'
%Warning-COVERIGN: t/t_covergroup_unsup.v:132:27: Unsupported: 'sequence' in default cover bin
132 | { bins defs = default sequence; }
| ^~~~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:135:7: Ignoring unsupported: cover bin 'wildcard' trans list
%Warning-COVERIGN: t/t_covergroup_unsup.v:135:7: Unsupported: 'wildcard' transition list in cover bin
135 | { wildcard bins wbts = ( 1, 2 ); }
| ^~~~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:136:31: Ignoring unsupported: covergroup value range
%Warning-COVERIGN: t/t_covergroup_unsup.v:136:31: Unsupported: covergroup value range '[...]'
136 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
| ^
%Warning-COVERIGN: t/t_covergroup_unsup.v:136:42: Ignoring unsupported: covergroup value range
%Warning-COVERIGN: t/t_covergroup_unsup.v:136:42: Unsupported: covergroup value range '[...]'
136 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
| ^
%Warning-COVERIGN: t/t_covergroup_unsup.v:136:57: Ignoring unsupported: covergroup value range
%Warning-COVERIGN: t/t_covergroup_unsup.v:136:57: Unsupported: covergroup value range '[...]'
136 | { bins bts2 = ( 2, 3 ), ( [5:6] ), ( [5 +/- 2] ), ( [ 5 +%- 20.0] ) ; }
| ^
%Warning-COVERIGN: t/t_covergroup_unsup.v:139:23: Ignoring unsupported: cover '[*'
%Warning-COVERIGN: t/t_covergroup_unsup.v:139:23: Unsupported: '[*]' in cover transition
139 | { bins bts2 = ( 3 [*5] ) ; }
| ^~
%Warning-COVERIGN: t/t_covergroup_unsup.v:140:23: Ignoring unsupported: cover '[*'
%Warning-COVERIGN: t/t_covergroup_unsup.v:140:23: Unsupported: '[*]' in cover transition
140 | { bins bts2 = ( 3 [*5:6] ) ; }
| ^~
%Warning-COVERIGN: t/t_covergroup_unsup.v:141:23: Ignoring unsupported: cover '[->'
%Warning-COVERIGN: t/t_covergroup_unsup.v:141:23: Unsupported: '[->' in cover transition
141 | { bins bts2 = ( 3 [->5] ) ; }
| ^~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:142:23: Ignoring unsupported: cover '[->'
%Warning-COVERIGN: t/t_covergroup_unsup.v:142:23: Unsupported: '[->' in cover transition
142 | { bins bts2 = ( 3 [->5:6] ) ; }
| ^~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:143:23: Ignoring unsupported: cover '[='
%Warning-COVERIGN: t/t_covergroup_unsup.v:143:23: Unsupported: '[=]' in cover transition
143 | { bins bts2 = ( 3 [=5] ) ; }
| ^~
%Warning-COVERIGN: t/t_covergroup_unsup.v:144:23: Ignoring unsupported: cover '[='
%Warning-COVERIGN: t/t_covergroup_unsup.v:144:23: Unsupported: '[=]' in cover transition
144 | { bins bts2 = ( 3 [=5:6] ) ; }
| ^~
%Warning-COVERIGN: t/t_covergroup_unsup.v:149:24: Ignoring unsupported: cover bin 'with' specification
%Warning-COVERIGN: t/t_covergroup_unsup.v:149:24: Unsupported: 'with' in cover bin
149 | bins div_by_2 = a with (item % 2 == 0);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:150:32: Ignoring unsupported: cover bin 'with' specification
%Warning-COVERIGN: t/t_covergroup_unsup.v:150:32: Unsupported: 'with' in cover bin
150 | bins div_by_2_paren[] = a with (item % 2 == 0);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:156:20: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:156:20: Unsupported: 'binsof' in coverage select expression
156 | bins bin_a = binsof(a);
| ^~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:156:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:156:7: Unsupported: explicit coverage cross bins
156 | bins bin_a = binsof(a);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:157:21: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:157:21: Unsupported: 'binsof' in coverage select expression
157 | bins bin_ai = binsof(a) iff (!rst);
| ^~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:157:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:157:7: Unsupported: explicit coverage cross bins
157 | bins bin_ai = binsof(a) iff (!rst);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:158:20: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:158:20: Unsupported: 'binsof' in coverage select expression
158 | bins bin_c = binsof(cp.x);
| ^~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:158:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:158:7: Unsupported: explicit coverage cross bins
158 | bins bin_c = binsof(cp.x);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:159:21: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:159:21: Unsupported: 'binsof' in coverage select expression
159 | bins bin_na = ! binsof(a);
| ^
%Warning-COVERIGN: t/t_covergroup_unsup.v:159:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:159:7: Unsupported: explicit coverage cross bins
159 | bins bin_na = ! binsof(a);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:161:30: Ignoring unsupported: coverage select expression 'intersect'
%Warning-COVERIGN: t/t_covergroup_unsup.v:161:30: Unsupported: 'intersect' in coverage select expression
161 | bins bin_d = binsof(a) intersect { b };
| ^~~~~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:161:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:161:7: Unsupported: explicit coverage cross bins
161 | bins bin_d = binsof(a) intersect { b };
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:162:31: Ignoring unsupported: coverage select expression 'intersect'
%Warning-COVERIGN: t/t_covergroup_unsup.v:162:31: Unsupported: 'intersect' in coverage select expression
162 | bins bin_nd = ! binsof(a) intersect { b };
| ^
%Warning-COVERIGN: t/t_covergroup_unsup.v:162:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:162:7: Unsupported: explicit coverage cross bins
162 | bins bin_nd = ! binsof(a) intersect { b };
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:164:20: Ignoring unsupported: coverage select expression with
%Warning-COVERIGN: t/t_covergroup_unsup.v:164:20: Unsupported: 'with' in coverage select expression
164 | bins bin_e = with (a);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:164:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:164:7: Unsupported: explicit coverage cross bins
164 | bins bin_e = with (a);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:165:24: Ignoring unsupported: coverage select expression with
%Warning-COVERIGN: t/t_covergroup_unsup.v:165:24: Unsupported: 'with' in coverage select expression
165 | bins bin_not_e = ! with (a);
| ^
%Warning-COVERIGN: t/t_covergroup_unsup.v:165:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:165:7: Unsupported: explicit coverage cross bins
165 | bins bin_not_e = ! with (a);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:167:23: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:167:23: Unsupported: 'binsof' in coverage select expression
167 | bins bin_par = (binsof(a));
| ^~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:167:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:167:7: Unsupported: explicit coverage cross bins
167 | bins bin_par = (binsof(a));
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:168:22: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:168:22: Unsupported: 'binsof' in coverage select expression
168 | bins bin_and = binsof(a) && binsof(b);
| ^~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:168:35: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:168:35: Unsupported: 'binsof' in coverage select expression
168 | bins bin_and = binsof(a) && binsof(b);
| ^~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:168:32: Ignoring unsupported: coverage select expression '&&'
%Warning-COVERIGN: t/t_covergroup_unsup.v:168:32: Unsupported: '&&' in coverage select expression
168 | bins bin_and = binsof(a) && binsof(b);
| ^~
%Warning-COVERIGN: t/t_covergroup_unsup.v:168:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:168:7: Unsupported: explicit coverage cross bins
168 | bins bin_and = binsof(a) && binsof(b);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:169:21: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:169:21: Unsupported: 'binsof' in coverage select expression
169 | bins bin_or = binsof(a) || binsof(b);
| ^~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:169:34: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:169:34: Unsupported: 'binsof' in coverage select expression
169 | bins bin_or = binsof(a) || binsof(b);
| ^~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:169:31: Ignoring unsupported: coverage select expression '||'
%Warning-COVERIGN: t/t_covergroup_unsup.v:169:31: Unsupported: '||' in coverage select expression
169 | bins bin_or = binsof(a) || binsof(b);
| ^~
%Warning-COVERIGN: t/t_covergroup_unsup.v:169:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:169:7: Unsupported: explicit coverage cross bins
169 | bins bin_or = binsof(a) || binsof(b);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:170:23: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:170:23: Unsupported: 'binsof' in coverage select expression
170 | bins bin_with = binsof(a) with (a);
| ^~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:170:33: Ignoring unsupported: coverage select expression with
%Warning-COVERIGN: t/t_covergroup_unsup.v:170:33: Unsupported: 'with' in coverage select expression
170 | bins bin_with = binsof(a) with (a);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:170:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:170:7: Unsupported: explicit coverage cross bins
170 | bins bin_with = binsof(a) with (a);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:26: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:26: Unsupported: 'binsof' in coverage select expression
171 | bins bin_or_with = binsof(a) || binsof(a) with (a);
| ^~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:39: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:39: Unsupported: 'binsof' in coverage select expression
171 | bins bin_or_with = binsof(a) || binsof(a) with (a);
| ^~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:49: Ignoring unsupported: coverage select expression with
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:49: Unsupported: 'with' in coverage select expression
171 | bins bin_or_with = binsof(a) || binsof(a) with (a);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:36: Ignoring unsupported: coverage select expression '||'
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:36: Unsupported: '||' in coverage select expression
171 | bins bin_or_with = binsof(a) || binsof(a) with (a);
| ^~
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:171:7: Unsupported: explicit coverage cross bins
171 | bins bin_or_with = binsof(a) || binsof(a) with (a);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:172:27: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:172:27: Unsupported: 'binsof' in coverage select expression
172 | bins bin_and_with = binsof(a) && binsof(a) with (a);
| ^~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:172:40: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:172:40: Unsupported: 'binsof' in coverage select expression
172 | bins bin_and_with = binsof(a) && binsof(a) with (a);
| ^~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:172:50: Ignoring unsupported: coverage select expression with
%Warning-COVERIGN: t/t_covergroup_unsup.v:172:50: Unsupported: 'with' in coverage select expression
172 | bins bin_and_with = binsof(a) && binsof(a) with (a);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:172:37: Ignoring unsupported: coverage select expression '&&'
%Warning-COVERIGN: t/t_covergroup_unsup.v:172:37: Unsupported: '&&' in coverage select expression
172 | bins bin_and_with = binsof(a) && binsof(a) with (a);
| ^~
%Warning-COVERIGN: t/t_covergroup_unsup.v:172:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:172:7: Unsupported: explicit coverage cross bins
172 | bins bin_and_with = binsof(a) && binsof(a) with (a);
| ^~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:173:34: Ignoring unsupported: coverage select expression 'binsof'
%Warning-COVERIGN: t/t_covergroup_unsup.v:173:34: Unsupported: 'binsof' in coverage select expression
173 | bins bin_multiple_fields = binsof(p.inner_packet.field);
| ^~~~~~
%Warning-COVERIGN: t/t_covergroup_unsup.v:173:7: Ignoring unsupported: explicit coverage cross bins
%Warning-COVERIGN: t/t_covergroup_unsup.v:173:7: Unsupported: explicit coverage cross bins
173 | bins bin_multiple_fields = binsof(p.inner_packet.field);
| ^~~~
%Error-UNSUPPORTED: t/t_covergroup_unsup.v:195:5: Unsupported: covergroup inheritance (extends) is not implemented
%Error-UNSUPPORTED: t/t_covergroup_unsup.v:195:5: Unsupported: covergroup inheritance (extends)
195 | covergroup extends cg_empty;
| ^~~~~~~~~~
... For error description see https://verilator.org/warn/UNSUPPORTED?v=latest