From cbf6c64d059209dbbac1c2fc9dc45001960327fa Mon Sep 17 00:00:00 2001 From: Matthew Ballance Date: Thu, 19 Mar 2026 14:48:02 +0000 Subject: [PATCH] Update format of unsupported messages for consistency Signed-off-by: Matthew Ballance --- src/verilog.y | 127 +++++++++--------- test_regress/t/t_covergroup_extends_unsup.out | 2 +- .../t/t_covergroup_trans_repeat_unsup_bad.out | 2 +- test_regress/t/t_covergroup_unsup.out | 120 ++++++++--------- 4 files changed, 126 insertions(+), 125 deletions(-) diff --git a/src/verilog.y b/src/verilog.y index 16e1da99f..5f3d68def 100644 --- a/src/verilog.y +++ b/src/verilog.y @@ -3958,16 +3958,16 @@ value_range: // ==IEEE: value_range/open_value_range covergroup_value_range: // ==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: // IEEE: part of case_item @@ -6936,10 +6936,11 @@ covergroup_declaration: // ==IEEE: covergroup_declaration { AstSenTree* clockp = nullptr; AstNode* sampleArgsp = nullptr; if ($4) { - if (VN_IS($4, SenItem)) + if (VN_IS($4, SenItem)) { clockp = new AstSenTree{$1, VN_AS($4, SenItem)}; - else + } else { sampleArgsp = $4; + } } $$ = new AstCovergroup{$1, *$2, static_cast($3), static_cast(sampleArgsp), $6, clockp}; @@ -6951,7 +6952,7 @@ covergroup_declaration: // ==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: // ==IEEE: cover_point // // [ [ data_type_or_implicit ] cover_point_identifier ':' ] yCOVERPOINT yCOVERPOINT expr iffE bins_or_empty { AstCoverpoint* const cp = new AstCoverpoint{$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{$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{$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{$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{$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{$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{$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: // IEEE: part of cover_point, others +iffE: // IEEE: part of cover_point, others /* empty */ { $$ = nullptr; } | yIFF '(' expr ')' { $$ = $3; /* Keep iff condition for coverpoint */ } @@ -7071,9 +7072,9 @@ bins_or_options: // ==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{$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{$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: // ==IEEE: bins_or_options DEL($6); } else { $$ = nullptr; - BBCOVERIGN($2, "Ignoring unsupported: bin array (non-auto)"); + BBCOVERIGN($2, "Unsupported: 'bins' array (non-auto)"); DEL($4, $6); } } | yIGNORE_BINS idAny/*bin_identifier*/ bins_orBraE '=' '{' range_list '}' iffE - { $$ = new AstCoverBin{$2, *$2, $6, true, false}; - if ($3) VN_AS($$, CoverBin)->isArray(true); - DEL($8); } + { AstCoverBin* const binp = new AstCoverBin{$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{$2, *$2, $6, false, true}; - if ($3) VN_AS($$, CoverBin)->isArray(true); - DEL($8); } + { AstCoverBin* const binp = new AstCoverBin{$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{$2, *$2, $6, false, false}; DEL($10, $12); /* TODO: Support 'with' clause */ } @@ -7103,11 +7104,11 @@ bins_or_options: // ==IEEE: bins_or_options { $$ = new AstCoverBin{$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($6, "Ignoring unsupported: cover bin 'with' specification"); DEL($8, $10); } + { $$ = nullptr; BBCOVERIGN($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($6, "Ignoring unsupported: cover bin 'with' specification"); DEL($8, $10); } + { $$ = nullptr; BBCOVERIGN($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($6, "Ignoring unsupported: cover bin 'with' specification"); DEL($8, $10); } + { $$ = nullptr; BBCOVERIGN($6, "Unsupported: 'with' in cover bin"); DEL($8, $10); } | yWILDCARD yBINS idAny/*bin_identifier*/ bins_orBraE '=' '{' range_list '}' iffE { $$ = new AstCoverBin{$3, *$3, $7, false, false, true}; DEL($9); } @@ -7118,11 +7119,11 @@ bins_or_options: // ==IEEE: bins_or_options { $$ = new AstCoverBin{$3, *$3, $7, false, true, true}; DEL($9); } | yWILDCARD yBINS idAny/*bin_identifier*/ bins_orBraE '=' '{' range_list '}' yWITH__PAREN '(' cgexpr ')' iffE - { $$ = nullptr; BBCOVERIGN($9, "Ignoring unsupported: cover bin 'wildcard' 'with' specification"); DEL($7, $11, $13); } + { $$ = nullptr; BBCOVERIGN($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($9, "Ignoring unsupported: cover bin 'wildcard' 'with' specification"); DEL($7, $11, $13); } + { $$ = nullptr; BBCOVERIGN($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($9, "Ignoring unsupported: cover bin 'wildcard' 'with' specification"); DEL($7, $11, $13); } + { $$ = nullptr; BBCOVERIGN($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: // ==IEEE: bins_or_options $$ = new AstCoverBin{$2, *$2, static_cast($5), VCoverBinsType{VCoverBinsType::BINS_ILLEGAL}, isArray != nullptr}; DEL($6); } | yWILDCARD yBINS idAny/*bin_identifier*/ bins_orBraE '=' trans_list iffE - { $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: cover bin 'wildcard' trans list"); DEL($6, $7);} + { $$ = nullptr; BBCOVERIGN($1, "Unsupported: 'wildcard' transition list in cover bin"); DEL($6, $7);} | yWILDCARD yIGNORE_BINS idAny/*bin_identifier*/ bins_orBraE '=' trans_list iffE - { $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: cover bin 'wildcard' trans list"); DEL($6, $7);} + { $$ = nullptr; BBCOVERIGN($1, "Unsupported: 'wildcard' transition list in cover bin"); DEL($6, $7);} | yWILDCARD yILLEGAL_BINS idAny/*bin_identifier*/ bins_orBraE '=' trans_list iffE - { $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: cover bin 'wildcard' trans list"); DEL($6, $7);} + { $$ = nullptr; BBCOVERIGN($1, "Unsupported: 'wildcard' transition list in cover bin"); DEL($6, $7);} // | yBINS idAny/*bin_identifier*/ bins_orBraE '=' yDEFAULT iffE { $$ = new AstCoverBin{$2, *$2, VCoverBinsType::BINS_DEFAULT}; @@ -7154,11 +7155,11 @@ bins_or_options: // ==IEEE: bins_or_options { $$ = new AstCoverBin{$2, *$2, VCoverBinsType::BINS_ILLEGAL}; DEL($6); } | yBINS idAny/*bin_identifier*/ bins_orBraE '=' yDEFAULT ySEQUENCE iffE - { $$ = nullptr; BBCOVERIGN($6, "Ignoring unsupported: cover bin 'default' 'sequence'"); DEL($7); } + { $$ = nullptr; BBCOVERIGN($6, "Unsupported: 'sequence' in default cover bin"); DEL($7); } | yIGNORE_BINS idAny/*bin_identifier*/ bins_orBraE '=' yDEFAULT ySEQUENCE iffE - { $$ = nullptr; BBCOVERIGN($6, "Ignoring unsupported: cover bin 'default' 'sequence'"); DEL($7); } + { $$ = nullptr; BBCOVERIGN($6, "Unsupported: 'sequence' in default cover bin"); DEL($7); } | yILLEGAL_BINS idAny/*bin_identifier*/ bins_orBraE '=' yDEFAULT ySEQUENCE iffE - { $$ = nullptr; BBCOVERIGN($6, "Ignoring unsupported: cover bin 'default' 'sequence'"); DEL($7); } + { $$ = nullptr; BBCOVERIGN($6, "Unsupported: 'sequence' in default cover bin"); DEL($7); } ; bins_orBraE: // IEEE: part of bins_or_options: returns fileline (abuse for boolean flag) @@ -7174,15 +7175,15 @@ trans_list: // ==IEEE: trans_list trans_set: // ==IEEE: trans_set (returns AstCoverTransSet) trans_range_list { - // Single transition item - wrap in AstCoverTransSet - $$ = new AstCoverTransSet{$1, static_cast($1)}; + AstCoverTransItem* const itemp = static_cast($1); + $$ = new AstCoverTransSet{$1, itemp}; } | trans_set yP_EQGT trans_range_list { - // Chain transition items with => operator - // Add new item to existing set - $$ = $1; - static_cast($$)->addItemsp(static_cast($3)); + AstCoverTransSet* const setp = static_cast($1); + AstCoverTransItem* const itemp = static_cast($3); + setp->addItemsp(itemp); + $$ = setp; } ; @@ -7192,17 +7193,17 @@ trans_range_list: // ==IEEE: trans_range_list (returns AstCoverTransItem $$ = new AstCoverTransItem{$1, $1, VTransRepType::NONE}; } | trans_item yP_BRASTAR cgexpr ']' - { $$ = nullptr; BBCOVERIGN($2, "Ignoring unsupported: cover '[*'"); DEL($1, $3); } + { $$ = nullptr; BBCOVERIGN($2, "Unsupported: '[*]' in cover transition"); DEL($1, $3); } | trans_item yP_BRASTAR cgexpr ':' cgexpr ']' - { $$ = nullptr; BBCOVERIGN($2, "Ignoring unsupported: cover '[*'"); DEL($1, $3, $5); } + { $$ = nullptr; BBCOVERIGN($2, "Unsupported: '[*]' in cover transition"); DEL($1, $3, $5); } | trans_item yP_BRAMINUSGT cgexpr ']' - { $$ = nullptr; BBCOVERIGN($2, "Ignoring unsupported: cover '[->'"); DEL($1, $3); } + { $$ = nullptr; BBCOVERIGN($2, "Unsupported: '[->' in cover transition"); DEL($1, $3); } | trans_item yP_BRAMINUSGT cgexpr ':' cgexpr ']' - { $$ = nullptr; BBCOVERIGN($2, "Ignoring unsupported: cover '[->'"); DEL($1, $3, $5); } + { $$ = nullptr; BBCOVERIGN($2, "Unsupported: '[->' in cover transition"); DEL($1, $3, $5); } | trans_item yP_BRAEQ cgexpr ']' - { $$ = nullptr; BBCOVERIGN($2, "Ignoring unsupported: cover '[='"); DEL($1, $3); } + { $$ = nullptr; BBCOVERIGN($2, "Unsupported: '[=]' in cover transition"); DEL($1, $3); } | trans_item yP_BRAEQ cgexpr ':' cgexpr ']' - { $$ = nullptr; BBCOVERIGN($2, "Ignoring unsupported: cover '[='"); DEL($1, $3, $5); } + { $$ = nullptr; BBCOVERIGN($2, "Unsupported: '[=]' in cover transition"); DEL($1, $3, $5); } ; trans_item: // ==IEEE: range_list (returns range list node) @@ -7340,16 +7341,16 @@ cross_body_itemList: // IEEE: part of cross_body cross_body_item: // ==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: // ==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: // // 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: //UNSUP cgexpr yMATCHES cgexpr {..} //UNSUP // Below are all removed | idAny '(' list_of_argumentsE ')' - { $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: coverage select function call"); DEL($3); } + { $$ = nullptr; BBCOVERIGN($1, "Unsupported: function call in coverage select expression"); DEL($3); } //UNSUP // Above are all removed, replace with: ; @@ -7426,7 +7427,7 @@ coverage_eventE: // IEEE: [ coverage_event ] } } | yP_ATAT '(' block_event_expression ')' - { $$ = nullptr; BBCOVERIGN($1, "Ignoring unsupported: coverage '@@' events"); DEL($3); } + { $$ = nullptr; BBCOVERIGN($1, "Unsupported: '@@' coverage event"); DEL($3); } ; block_event_expression: // ==IEEE: block_event_expression diff --git a/test_regress/t/t_covergroup_extends_unsup.out b/test_regress/t/t_covergroup_extends_unsup.out index ff2af26ad..6da853f7c 100644 --- a/test_regress/t/t_covergroup_extends_unsup.out +++ b/test_regress/t/t_covergroup_extends_unsup.out @@ -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 diff --git a/test_regress/t/t_covergroup_trans_repeat_unsup_bad.out b/test_regress/t/t_covergroup_trans_repeat_unsup_bad.out index f80901ea2..90d00a753 100644 --- a/test_regress/t/t_covergroup_trans_repeat_unsup_bad.out +++ b/test_regress/t/t_covergroup_trans_repeat_unsup_bad.out @@ -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 diff --git a/test_regress/t/t_covergroup_unsup.out b/test_regress/t/t_covergroup_unsup.out index d18d0311e..c340d191e 100644 --- a/test_regress/t/t_covergroup_unsup.out +++ b/test_regress/t/t_covergroup_unsup.out @@ -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