From a58e7d94ec1eb8681d941ae6276c5db5c1c319b5 Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Thu, 30 May 2019 20:30:59 -0400 Subject: [PATCH] Error continuation lines no longer have %Error prefix. --- Changes | 2 + src/V3Error.cpp | 10 ++--- src/V3Graph.cpp | 2 +- src/V3LinkCells.cpp | 5 ++- src/V3LinkLevel.cpp | 8 +++- src/V3Number.cpp | 16 ++++---- src/V3Options.cpp | 6 +-- src/V3Order.cpp | 10 +++-- src/V3Simulate.h | 5 ++- src/V3SymTable.h | 2 +- src/V3Tristate.cpp | 4 +- src/verilog.l | 6 ++- src/verilog.y | 9 ++++- test_regress/t/t_array_list_bad.out | 2 +- test_regress/t/t_assert_dup_bad.out | 2 +- test_regress/t/t_cdc_async_bad.out | 2 +- test_regress/t/t_clk_scope_bad.out | 2 +- test_regress/t/t_concat_large_bad.out | 2 +- test_regress/t/t_const_bad.out | 2 +- test_regress/t/t_debug_fatalsrc_bad.pl | 2 +- test_regress/t/t_debug_fatalsrc_bt_bad.pl | 2 +- test_regress/t/t_delay_stmtdly_bad.out | 2 +- test_regress/t/t_dpi_dup_bad.out | 4 +- test_regress/t/t_enum_overlap_bad.out | 2 +- test_regress/t/t_flag_topmodule.v | 9 ++++- test_regress/t/t_flag_topmodule_bad.out | 4 ++ test_regress/t/t_flag_topmodule_bad.pl | 5 +-- test_regress/t/t_flag_werror_bad1.out | 2 +- test_regress/t/t_flag_wfatal.out | 2 +- test_regress/t/t_func_bad_width.out | 2 +- test_regress/t/t_func_const2_bad.out | 20 +++++----- test_regress/t/t_func_const_bad.out | 39 ++++++++----------- .../t/t_func_const_packed_array_bad.out | 18 ++++----- .../t/t_func_const_packed_struct_bad.out | 18 ++++----- .../t/t_func_const_packed_struct_bad2.out | 18 ++++----- test_regress/t/t_func_const_struct_bad.out | 18 ++++----- test_regress/t/t_func_void_bad.out | 2 +- test_regress/t/t_gen_cond_bitrange_bad.out | 2 +- test_regress/t/t_gen_missing_bad.out | 32 +++++++-------- test_regress/t/t_hierarchy_identifier_bad.out | 2 +- test_regress/t/t_inst_missing_bad.out | 2 +- test_regress/t/t_inst_overwide_bad.out | 2 +- test_regress/t/t_inst_recurse_bad.out | 3 ++ test_regress/t/t_inst_recurse_bad.pl | 5 +-- .../t/t_interface_array_nocolon_bad.out | 2 +- test_regress/t/t_interface_mismodport_bad.out | 2 +- test_regress/t/t_lint_always_comb_bad.out | 2 +- test_regress/t/t_lint_blksync_bad.out | 6 +-- test_regress/t/t_lint_colonplus_bad.out | 3 ++ test_regress/t/t_lint_colonplus_bad.pl | 5 +-- test_regress/t/t_lint_declfilename_bad.out | 3 ++ test_regress/t/t_lint_declfilename_bad.pl | 7 +--- test_regress/t/t_lint_defparam_bad.out | 3 ++ test_regress/t/t_lint_defparam_bad.pl | 7 +--- test_regress/t/t_lint_ifdepth_bad.out | 2 +- test_regress/t/t_lint_implicit_bad.out | 2 +- test_regress/t/t_lint_implicit_def_bad.out | 2 +- test_regress/t/t_lint_importstar_bad.out | 2 +- test_regress/t/t_lint_incabspath_bad.out | 3 ++ test_regress/t/t_lint_incabspath_bad.pl | 7 +--- test_regress/t/t_lint_infinite.out | 2 +- test_regress/t/t_lint_latch_bad.out | 6 +-- test_regress/t/t_lint_multidriven_bad.out | 10 ++--- test_regress/t/t_lint_once_bad.out | 2 +- test_regress/t/t_lint_pindup_bad.out | 4 +- test_regress/t/t_lint_pkg_colon_bad.out | 2 +- test_regress/t/t_lint_realcvt_bad.out | 3 ++ test_regress/t/t_lint_realcvt_bad.pl | 7 +--- test_regress/t/t_lint_repeat_bad.out | 2 +- test_regress/t/t_lint_restore_bad.out | 2 +- test_regress/t/t_lint_syncasyncnet_bad.out | 6 +-- test_regress/t/t_lint_unsized_bad.out | 3 +- test_regress/t/t_lint_unused_bad.out | 2 +- test_regress/t/t_lint_unused_iface_bad.out | 2 +- test_regress/t/t_lint_width_bad.out | 2 +- test_regress/t/t_mem_multi_ref_bad.out | 2 +- test_regress/t/t_metacmt_onoff.out | 2 +- test_regress/t/t_mod_dup_bad.out | 6 +++ test_regress/t/t_mod_dup_bad.pl | 8 +--- test_regress/t/t_order_loop_bad.pl | 6 +-- test_regress/t/t_param_concat_bad.out | 2 +- test_regress/t/t_param_scope_bad.out | 2 +- test_regress/t/t_param_sel_range_bad.out | 2 +- test_regress/t/t_past_bad.out | 2 +- test_regress/t/t_pp_dupdef_bad.out | 2 +- test_regress/t/t_select_bad_range.out | 2 +- test_regress/t/t_select_bad_range2.out | 2 +- test_regress/t/t_select_bad_range3.out | 2 +- test_regress/t/t_struct_unpacked_bad.out | 3 ++ test_regress/t/t_struct_unpacked_bad.pl | 5 +-- test_regress/t/t_tri_pull2_bad.out | 2 +- test_regress/t/t_tri_pull_bad.out | 2 +- test_regress/t/t_tri_pullvec_bad.out | 3 +- test_regress/t/t_unopt_combo_bad.out | 12 +++--- test_regress/t/t_unopt_converge_unopt_bad.out | 8 ++-- test_regress/t/t_unoptflat_simple_2_bad.out | 8 ++-- test_regress/t/t_var_bad_hide.out | 6 +-- test_regress/t/t_var_bad_hide2.out | 4 +- test_regress/t/t_var_bad_sameas.out | 8 ++-- test_regress/t/t_var_bad_sv.out | 2 +- test_regress/t/t_var_notfound_bad.out | 2 +- test_regress/t/t_var_rsvd_bad.out | 2 +- test_regress/t/t_var_types_bad.out | 2 +- 103 files changed, 275 insertions(+), 261 deletions(-) create mode 100644 test_regress/t/t_flag_topmodule_bad.out create mode 100644 test_regress/t/t_inst_recurse_bad.out create mode 100644 test_regress/t/t_lint_colonplus_bad.out create mode 100644 test_regress/t/t_lint_declfilename_bad.out create mode 100644 test_regress/t/t_lint_defparam_bad.out create mode 100644 test_regress/t/t_lint_incabspath_bad.out create mode 100644 test_regress/t/t_lint_realcvt_bad.out create mode 100644 test_regress/t/t_mod_dup_bad.out create mode 100644 test_regress/t/t_struct_unpacked_bad.out diff --git a/Changes b/Changes index 57319487c..42050b778 100644 --- a/Changes +++ b/Changes @@ -6,6 +6,8 @@ The contributors that suggested a given feature are shown in []. Thanks! *** Add --quiet-exit, bug1436. [Todd Strader] +**** Error continuation lines no longer have %Error prefix. + **** Support VerilatedFstC set_time_unit, bug1433. [Pieter Kapsenberg] **** Mark infrequently called functions with GCC cold attribute. diff --git a/src/V3Error.cpp b/src/V3Error.cpp index bd9b423a5..dedda8a2a 100644 --- a/src/V3Error.cpp +++ b/src/V3Error.cpp @@ -158,7 +158,7 @@ void V3Error::suppressThisWarning() { } string V3Error::warnMore() { - return msgPrefix(); + return string(msgPrefix().size(), ' '); } void V3Error::v3errorEnd(std::ostringstream& sstr) { @@ -182,13 +182,13 @@ void V3Error::v3errorEnd(std::ostringstream& sstr) { && !s_pretendError[s_errorCode]) { s_describedEachWarn[s_errorCode] = true; if (s_errorCode>=V3ErrorCode::EC_FIRST_WARN && !s_describedWarnings) { - std::cerr<(vertexp)) { vvertexp->modp()->v3error("Unsupported: Recursive multiple modules (module instantiates something leading back to itself): " - <modp()->prettyName()); - vvertexp->modp()->v3error("Note self-recursion (module instantiating itself directly) is supported."); + <modp()->prettyName()<nextp(), NodeModule)) { if (nodep->level()<=2) { if (topp) { + static int warnedOnce = 0; nodep->v3warn(E_MULTITOP, "Unsupported: Multiple top level modules: " - <prettyName()<<" and "<prettyName()); - nodep->v3warn(E_MULTITOP, "Fix, or use --top-module option to select which you want."); + <prettyName()<<" and "<prettyName()<warnMore() + +"... Fix, or use --top-module option to select which you want.") + : "")); } topp = nodep; } diff --git a/src/V3Number.cpp b/src/V3Number.cpp index d395ee8cb..32d17f645 100644 --- a/src/V3Number.cpp +++ b/src/V3Number.cpp @@ -150,14 +150,14 @@ void V3Number::V3NumberCreate(AstNode* nodep, const char* sourcep, FileLine* fl) product.opMul(*this, ten); this->opAdd(product, addend); if (product.bitsValue(width(), 4)) { // Overflowed - v3error("Too many digits for "<m_incDirUsers.empty()) { fl->v3error("This may be because there's no search path specified with -I."<v3error("Looked in:"<::iterator dirIter=m_impp->m_incDirUsers.begin(); dirIter!=m_impp->m_incDirUsers.end(); ++dirIter) { for (std::list::iterator extIter=m_impp->m_libExtVs.begin(); extIter != m_impp->m_libExtVs.end(); ++extIter) { string fn = V3Os::filenameFromDirBase(*dirIter, modname+*extIter); - fl->v3error(" "<::iterator dirIter=m_impp->m_incDirFallbacks.begin(); @@ -389,7 +389,7 @@ void V3Options::filePathLookedMsg(FileLine* fl, const string& modname) { for (std::list::iterator extIter=m_impp->m_libExtVs.begin(); extIter != m_impp->m_libExtVs.end(); ++extIter) { string fn = V3Os::filenameFromDirBase(*dirIter, modname+*extIter); - fl->v3error(" "<(vertexp)) { - std::cerr<nodep()->fileline()<<" "<nodep()->typeName()<nodep()->fileline()->warnMore() + <<" Example path: " + <nodep()->typeName()<(vertexp)) { - std::cerr<varScp()->fileline()<<" "<varScp()->prettyName()<varScp()->fileline()->warnMore() + <<" Example path: " + <varScp()->prettyName()<::iterator it=m_callStack.begin(); it != m_callStack.end(); ++it) { AstFuncRef* funcp = (*it)->m_funcp; - stack<<"\nCalled from:\n"<fileline()<<" " + stack<<"\n "<fileline() + <<"... Called from " <prettyName()<<"() with parameters:"; V3TaskConnects* tconnects = (*it)->m_tconnects; for (V3TaskConnects::iterator conIt = tconnects->begin(); @@ -194,7 +195,7 @@ public: AstVar* portp = conIt->first; AstNode* pinp = conIt->second->exprp(); AstNodeDType* dtypep = pinp->dtypep(); - stack<<"\n "<prettyName( + stack<<"\n "<prettyName( )<<" = "<user3p(pullp); // save off to indicate the pull direction } else { if (oldpullp->direction() != pullp->direction()) { - pullp->v3error("Unsupported: Conflicting pull directions."); - oldpullp->v3error("... Location of conflicting pull."); + pullp->v3error("Unsupported: Conflicting pull directions.\n" + <warnMore()<<"... Location of conflicting pull."); } } } diff --git a/src/verilog.l b/src/verilog.l index e8d5d80ef..61dee69af 100644 --- a/src/verilog.l +++ b/src/verilog.l @@ -124,8 +124,10 @@ void yyerror(const char* errmsg) { && PARSEP->curBisonVal().token == yP_COLONCOLON) { static int warned = false; if (!warned++) { - PARSEP->fileline()->v3error("Perhaps '"+*PARSEP->prevBisonVal().strp - +"' is a package which needs to be predeclared? (IEEE 2017 26.3)"); + std::cerr<fileline()->warnMore() + <<("... Perhaps '"+*PARSEP->prevBisonVal().strp + +"' is a package which needs to be predeclared? (IEEE 2017 26.3)") + <v3error(string("Unexpected \"")+tokname+"\": \""+tokname+"\" is a SystemVerilog keyword misused as an identifier."); - if (!toldonce++) fileline->v3error("Modify the Verilog-2001 code to avoid SV keywords, or use `begin_keywords or --language."); + fileline->v3error(string("Unexpected \"")+tokname+"\": \""+tokname + +"\" is a SystemVerilog keyword misused as an identifier." + +(!toldonce++ + ? "\n"+V3Error::warnMore() + +"... Modify the Verilog-2001 code to avoid SV keywords," + +" or use `begin_keywords or --language." + : "")); } //====================================================================== diff --git a/test_regress/t/t_array_list_bad.out b/test_regress/t/t_array_list_bad.out index 39dbacb69..3c40e735d 100644 --- a/test_regress/t/t_array_list_bad.out +++ b/test_regress/t/t_array_list_bad.out @@ -1,4 +1,4 @@ %Error: t/t_array_list_bad.v:37: Assignment pattern missed initializing elements: MEMBERDTYPE 't3' %Warning-WIDTH: t/t_array_list_bad.v:37: Operator ASSIGNDLY expects 3 bits on the Assign RHS, but Assign RHS's CONCAT generates 2 bits. -%Warning-WIDTH: Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_assert_dup_bad.out b/test_regress/t/t_assert_dup_bad.out index 0a22e5042..03499d763 100644 --- a/test_regress/t/t_assert_dup_bad.out +++ b/test_regress/t/t_assert_dup_bad.out @@ -1,3 +1,3 @@ %Error: t/t_assert_dup_bad.v:16: Duplicate declaration of block: covlabel -%Error: t/t_assert_dup_bad.v:14: ... Location of original declaration + t/t_assert_dup_bad.v:14: ... Location of original declaration %Error: Exiting due to diff --git a/test_regress/t/t_cdc_async_bad.out b/test_regress/t/t_cdc_async_bad.out index f3b5d0c4f..5c03b92ce 100644 --- a/test_regress/t/t_cdc_async_bad.out +++ b/test_regress/t/t_cdc_async_bad.out @@ -1,5 +1,5 @@ %Warning-CDCRSTLOGIC: t/t_cdc_async_bad.v:27: Logic in path that feeds async reset, via signal: t.rst2_bad_n -%Warning-CDCRSTLOGIC: Use "/* verilator lint_off CDCRSTLOGIC */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off CDCRSTLOGIC */" and lint_on around source to disable this message. %Warning-CDCRSTLOGIC: See details in obj_vlt/t_cdc_async_bad/Vt_cdc_async_bad__cdc.txt %Warning-CDCRSTLOGIC: t/t_cdc_async_bad.v:52: Logic in path that feeds async reset, via signal: t.rst6a_bad_n %Warning-CDCRSTLOGIC: t/t_cdc_async_bad.v:53: Logic in path that feeds async reset, via signal: t.rst6b_bad_n diff --git a/test_regress/t/t_clk_scope_bad.out b/test_regress/t/t_clk_scope_bad.out index e7638d942..483df445c 100644 --- a/test_regress/t/t_clk_scope_bad.out +++ b/test_regress/t/t_clk_scope_bad.out @@ -1,3 +1,3 @@ %Warning-CLKDATA: t/t_clk_scope_bad.v:35: Clock used as data (on rhs of assignment) in sequential block clk -%Warning-CLKDATA: Use "/* verilator lint_off CLKDATA */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off CLKDATA */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_concat_large_bad.out b/test_regress/t/t_concat_large_bad.out index 409362b78..eb84bb43b 100644 --- a/test_regress/t/t_concat_large_bad.out +++ b/test_regress/t/t_concat_large_bad.out @@ -1,3 +1,3 @@ %Warning-WIDTHCONCAT: t/t_concat_large_bad.v:8: More than a 8k bit replication is probably wrong: 32768 -%Warning-WIDTHCONCAT: Use "/* verilator lint_off WIDTHCONCAT */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off WIDTHCONCAT */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_const_bad.out b/test_regress/t/t_const_bad.out index 62ba5f20d..e1d3ea4bd 100644 --- a/test_regress/t/t_const_bad.out +++ b/test_regress/t/t_const_bad.out @@ -1,5 +1,5 @@ %Warning-WIDTH: t/t_const_bad.v:12: Unsized constant being X/Z extended to 68 bits: ?32?bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -%Warning-WIDTH: Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. %Warning-WIDTH: t/t_const_bad.v:13: Unsized constant being X/Z extended to 68 bits: ?32?bzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz %Warning-WIDTH: t/t_const_bad.v:14: Unsized constant being X/Z extended to 68 bits: ?32?bzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz %Error: Exiting due to diff --git a/test_regress/t/t_debug_fatalsrc_bad.pl b/test_regress/t/t_debug_fatalsrc_bad.pl index b22cf5fc2..682283339 100755 --- a/test_regress/t/t_debug_fatalsrc_bad.pl +++ b/test_regress/t/t_debug_fatalsrc_bad.pl @@ -14,7 +14,7 @@ compile( fails => $Self->{vlt_all}, expect => '%Error: Internal Error: .*: --debug-fatal-src -%Error: Internal Error: See the manual and http://www.veripool.org/verilator for more assistance. +.* See the manual and http://www.veripool.org/verilator for more assistance. %Error: Command Failed.*', ); diff --git a/test_regress/t/t_debug_fatalsrc_bt_bad.pl b/test_regress/t/t_debug_fatalsrc_bt_bad.pl index 78bd5699c..9e8973c20 100755 --- a/test_regress/t/t_debug_fatalsrc_bt_bad.pl +++ b/test_regress/t/t_debug_fatalsrc_bt_bad.pl @@ -15,7 +15,7 @@ compile( fails => 1, expect => '%Error: Internal Error: .*: --debug-fatal-src -%Error: Internal Error: See the manual and http://www.veripool.org/verilator for more assistance. +.*See the manual and http://www.veripool.org/verilator for more assistance. .*in V3Options::.* .*%Error: Command Failed.*', ); diff --git a/test_regress/t/t_delay_stmtdly_bad.out b/test_regress/t/t_delay_stmtdly_bad.out index 104bbf162..1136df927 100644 --- a/test_regress/t/t_delay_stmtdly_bad.out +++ b/test_regress/t/t_delay_stmtdly_bad.out @@ -1,5 +1,5 @@ %Warning-ASSIGNDLY: t/t_delay.v:19: Unsupported: Ignoring delay on this assignment/primitive. -%Warning-ASSIGNDLY: Use "/* verilator lint_off ASSIGNDLY */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off ASSIGNDLY */" and lint_on around source to disable this message. %Warning-ASSIGNDLY: t/t_delay.v:24: Unsupported: Ignoring delay on this assignment/primitive. %Warning-ASSIGNDLY: t/t_delay.v:27: Unsupported: Ignoring delay on this assignment/primitive. %Warning-STMTDLY: t/t_delay.v:33: Unsupported: Ignoring delay on this delayed statement. diff --git a/test_regress/t/t_dpi_dup_bad.out b/test_regress/t/t_dpi_dup_bad.out index af98cf1bf..5005fbc21 100644 --- a/test_regress/t/t_dpi_dup_bad.out +++ b/test_regress/t/t_dpi_dup_bad.out @@ -1,4 +1,4 @@ %Error: t/t_dpi_dup_bad.v:12: Duplicate declaration of DPI function with different formal arguments: t.oth_f_int2 -%Error: t/t_dpi_dup_bad.v:12: ... New prototype: pure int dpii_fa_bit (int, int) -%Error: t/t_dpi_dup_bad.v:11: ... Original prototype: int dpii_fa_bit (int) + t/t_dpi_dup_bad.v:12: ... New prototype: pure int dpii_fa_bit (int, int) + t/t_dpi_dup_bad.v:11: ... Original prototype: int dpii_fa_bit (int) %Error: Exiting due to diff --git a/test_regress/t/t_enum_overlap_bad.out b/test_regress/t/t_enum_overlap_bad.out index a3c1f2aaa..1d246b946 100644 --- a/test_regress/t/t_enum_overlap_bad.out +++ b/test_regress/t/t_enum_overlap_bad.out @@ -1,3 +1,3 @@ %Error: t/t_enum_overlap_bad.v:11: Overlapping enumeration value: e1b -%Error: t/t_enum_overlap_bad.v:9: ... Location of original declaration + t/t_enum_overlap_bad.v:9: ... Location of original declaration %Error: Exiting due to diff --git a/test_regress/t/t_flag_topmodule.v b/test_regress/t/t_flag_topmodule.v index 9b0282d3f..ba3e5b7f2 100644 --- a/test_regress/t/t_flag_topmodule.v +++ b/test_regress/t/t_flag_topmodule.v @@ -11,13 +11,20 @@ module a; end endmodule +module a2; + initial begin + $write("Bad top modules\n"); + $stop; + end +endmodule + module b; d d (); endmodule module c; initial begin - $write("Bad top modules\n"); + $write("Bad mid modules\n"); $stop; end endmodule diff --git a/test_regress/t/t_flag_topmodule_bad.out b/test_regress/t/t_flag_topmodule_bad.out new file mode 100644 index 000000000..346b43c34 --- /dev/null +++ b/test_regress/t/t_flag_topmodule_bad.out @@ -0,0 +1,4 @@ +%Error-MULTITOP: t/t_flag_topmodule.v:14: Unsupported: Multiple top level modules: a2 and a + t/t_flag_topmodule.v:14: ... Fix, or use --top-module option to select which you want. +%Error-MULTITOP: t/t_flag_topmodule.v:21: Unsupported: Multiple top level modules: b and a2 +%Error: Exiting due to diff --git a/test_regress/t/t_flag_topmodule_bad.pl b/test_regress/t/t_flag_topmodule_bad.pl index 693b39e04..1c769951e 100755 --- a/test_regress/t/t_flag_topmodule_bad.pl +++ b/test_regress/t/t_flag_topmodule_bad.pl @@ -14,10 +14,7 @@ top_filename("t/t_flag_topmodule.v"); compile( fails => 1, nc => 0, # Need to get it not to give the prompt - expect => -'%Error-MULTITOP: t/t_flag_topmodule.v:\d+: Unsupported: Multiple top level modules: .* -%Error-MULTITOP: t/t_flag_topmodule.v:\d+: Fix, or use --top-module option to select which you want. -%Error: Exiting due to.*', + expect_filename => $Self->{golden_filename}, ); ok(1); diff --git a/test_regress/t/t_flag_werror_bad1.out b/test_regress/t/t_flag_werror_bad1.out index c4b7272af..9d33320ec 100644 --- a/test_regress/t/t_flag_werror_bad1.out +++ b/test_regress/t/t_flag_werror_bad1.out @@ -1,3 +1,3 @@ %Warning-WIDTH: t/t_flag_werror.v:9: Operator ASSIGNW expects 4 bits on the Assign RHS, but Assign RHS's CONST '6'h2e' generates 6 bits. -%Warning-WIDTH: Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_flag_wfatal.out b/test_regress/t/t_flag_wfatal.out index d923dae22..e5c676d92 100644 --- a/test_regress/t/t_flag_wfatal.out +++ b/test_regress/t/t_flag_wfatal.out @@ -1,2 +1,2 @@ %Warning-WIDTH: t/t_flag_wfatal.v:9: Operator ASSIGNW expects 4 bits on the Assign RHS, but Assign RHS's CONST '6'h2e' generates 6 bits. -%Warning-WIDTH: Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. diff --git a/test_regress/t/t_func_bad_width.out b/test_regress/t/t_func_bad_width.out index 88926d41d..e3778931c 100644 --- a/test_regress/t/t_func_bad_width.out +++ b/test_regress/t/t_func_bad_width.out @@ -1,4 +1,4 @@ %Warning-WIDTH: t/t_func_bad_width.v:12: Operator FUNCREF 'MUX' expects 40 bits on the Function Argument, but Function Argument's VARREF 'in' generates 39 bits. -%Warning-WIDTH: Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. %Warning-WIDTH: t/t_func_bad_width.v:12: Operator ASSIGN expects 4 bits on the Assign RHS, but Assign RHS's FUNCREF 'MUX' generates 32 bits. %Error: Exiting due to diff --git a/test_regress/t/t_func_const2_bad.out b/test_regress/t/t_func_const2_bad.out index 48d3b8c58..bee54cccd 100644 --- a/test_regress/t/t_func_const2_bad.out +++ b/test_regress/t/t_func_const2_bad.out @@ -1,14 +1,12 @@ %Warning-USERFATAL: f_add = 15 -%Warning-USERFATAL: Use "/* verilator lint_off USERFATAL */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off USERFATAL */" and lint_on around source to disable this message. %Error: t/t_func_const2_bad.v:10: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_add2' -%Error: t/t_func_const2_bad.v:21: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing -Called from: -t/t_func_const2_bad.v:26: f_add() with parameters: - a = 32'h7 - b = 32'h8 -Called from: -t/t_func_const2_bad.v:10: f_add2() with parameters: - a = ?32?sh7 - b = ?32?sh8 - c = ?32?sh9 + t/t_func_const2_bad.v:21: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing + t/t_func_const2_bad.v:26: ... Called from f_add() with parameters: + a = 32'h7 + b = 32'h8 + t/t_func_const2_bad.v:10: ... Called from f_add2() with parameters: + a = ?32?sh7 + b = ?32?sh8 + c = ?32?sh9 %Error: Exiting due to diff --git a/test_regress/t/t_func_const_bad.out b/test_regress/t/t_func_const_bad.out index 4caa310e7..f43dcb844 100644 --- a/test_regress/t/t_func_const_bad.out +++ b/test_regress/t/t_func_const_bad.out @@ -1,33 +1,28 @@ %Error: t/t_func_const_bad.v:11: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_bad_output' -%Error: t/t_func_const_bad.v:12: ... Location of non-constant VAR 'o': Language violation: Outputs/refs not allowed in constant functions + t/t_func_const_bad.v:12: ... Location of non-constant VAR 'o': Language violation: Outputs/refs not allowed in constant functions %Error: t/t_func_const_bad.v:20: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_bad_dotted' -%Error: t/t_func_const_bad.v:22: ... Location of non-constant VARXREF 'EIGHT': Language violation: Dotted hierarchical references not allowed in constant functions -Called from: -t/t_func_const_bad.v:20: f_bad_dotted() with parameters: - a = ?32?sh2 + t/t_func_const_bad.v:22: ... Location of non-constant VARXREF 'EIGHT': Language violation: Dotted hierarchical references not allowed in constant functions + t/t_func_const_bad.v:20: ... Called from f_bad_dotted() with parameters: + a = ?32?sh2 %Error: t/t_func_const_bad.v:27: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_bad_nonparam' -%Error: t/t_func_const_bad.v:29: ... Location of non-constant VARREF 'modvar': Language violation: reference to non-function-local variable -Called from: -t/t_func_const_bad.v:27: f_bad_nonparam() with parameters: - a = ?32?sh3 + t/t_func_const_bad.v:29: ... Location of non-constant VARREF 'modvar': Language violation: reference to non-function-local variable + t/t_func_const_bad.v:27: ... Called from f_bad_nonparam() with parameters: + a = ?32?sh3 %Error: t/t_func_const_bad.v:35: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_bad_infinite' -%Error: t/t_func_const_bad.v:37: ... Location of non-constant WHILE: Loop unrolling took too long; probably this is an infinite loop, or set --unroll-count above 1024 -Called from: -t/t_func_const_bad.v:35: f_bad_infinite() with parameters: - a = ?32?sh3 + t/t_func_const_bad.v:37: ... Location of non-constant WHILE: Loop unrolling took too long; probably this is an infinite loop, or set --unroll-count above 1024 + t/t_func_const_bad.v:35: ... Called from f_bad_infinite() with parameters: + a = ?32?sh3 %Error: t/t_func_const_bad.v:43: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_bad_stop' -%Error: t/t_func_const_bad.v:45: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing -Called from: -t/t_func_const_bad.v:43: f_bad_stop() with parameters: - a = ?32?sh3 + t/t_func_const_bad.v:45: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing + t/t_func_const_bad.v:43: ... Called from f_bad_stop() with parameters: + a = ?32?sh3 -Info: Printing in loop: 0 -Info: Printing in loop: 1 -Info: Printing in loop: 2 %Warning-USERFATAL: Fatal Error -%Warning-USERFATAL: Use "/* verilator lint_off USERFATAL */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off USERFATAL */" and lint_on around source to disable this message. %Error: t/t_func_const_bad.v:49: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_bad_fatal' -%Error: t/t_func_const_bad.v:54: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing -Called from: -t/t_func_const_bad.v:49: f_bad_fatal() with parameters: - a = ?32?sh3 + t/t_func_const_bad.v:54: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing + t/t_func_const_bad.v:49: ... Called from f_bad_fatal() with parameters: + a = ?32?sh3 %Error: Exiting due to diff --git a/test_regress/t/t_func_const_packed_array_bad.out b/test_regress/t/t_func_const_packed_array_bad.out index a05fa144c..fd5aed943 100644 --- a/test_regress/t/t_func_const_packed_array_bad.out +++ b/test_regress/t/t_func_const_packed_array_bad.out @@ -1,13 +1,11 @@ %Warning-USERFATAL: f_add = 15 -%Warning-USERFATAL: Use "/* verilator lint_off USERFATAL */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off USERFATAL */" and lint_on around source to disable this message. %Error: t/t_func_const_packed_array_bad.v:11: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_add2' -%Error: t/t_func_const_packed_array_bad.v:22: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing -Called from: -t/t_func_const_packed_array_bad.v:30: f_add() with parameters: - params = [0 = 32'h7, 1 = 32'h8] -Called from: -t/t_func_const_packed_array_bad.v:11: f_add2() with parameters: - a = ?32?sh7 - b = ?32?sh8 - c = ?32?sh9 + t/t_func_const_packed_array_bad.v:22: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing + t/t_func_const_packed_array_bad.v:30: ... Called from f_add() with parameters: + params = [0 = 32'h7, 1 = 32'h8] + t/t_func_const_packed_array_bad.v:11: ... Called from f_add2() with parameters: + a = ?32?sh7 + b = ?32?sh8 + c = ?32?sh9 %Error: Exiting due to diff --git a/test_regress/t/t_func_const_packed_struct_bad.out b/test_regress/t/t_func_const_packed_struct_bad.out index 2b59b7eda..5900de393 100644 --- a/test_regress/t/t_func_const_packed_struct_bad.out +++ b/test_regress/t/t_func_const_packed_struct_bad.out @@ -1,13 +1,11 @@ %Warning-USERFATAL: f_add = 15 -%Warning-USERFATAL: Use "/* verilator lint_off USERFATAL */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off USERFATAL */" and lint_on around source to disable this message. %Error: t/t_func_const_packed_struct_bad.v:13: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_add2' -%Error: t/t_func_const_packed_struct_bad.v:24: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing -Called from: -t/t_func_const_packed_struct_bad.v:32: f_add() with parameters: - params = [0 = '{a: 32'h7, b: 32'h22b}, 1 = '{a: 32'h3039, b: 32'h8}] -Called from: -t/t_func_const_packed_struct_bad.v:13: f_add2() with parameters: - a = ?32?sh7 - b = ?32?sh8 - c = ?32?sh9 + t/t_func_const_packed_struct_bad.v:24: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing + t/t_func_const_packed_struct_bad.v:32: ... Called from f_add() with parameters: + params = [0 = '{a: 32'h7, b: 32'h22b}, 1 = '{a: 32'h3039, b: 32'h8}] + t/t_func_const_packed_struct_bad.v:13: ... Called from f_add2() with parameters: + a = ?32?sh7 + b = ?32?sh8 + c = ?32?sh9 %Error: Exiting due to diff --git a/test_regress/t/t_func_const_packed_struct_bad2.out b/test_regress/t/t_func_const_packed_struct_bad2.out index e58c94383..fb9a93bc6 100644 --- a/test_regress/t/t_func_const_packed_struct_bad2.out +++ b/test_regress/t/t_func_const_packed_struct_bad2.out @@ -1,13 +1,11 @@ %Warning-USERFATAL: f_add = 15 -%Warning-USERFATAL: Use "/* verilator lint_off USERFATAL */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off USERFATAL */" and lint_on around source to disable this message. %Error: t/t_func_const_packed_struct_bad2.v:19: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_add2' -%Error: t/t_func_const_packed_struct_bad2.v:30: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing -Called from: -t/t_func_const_packed_struct_bad2.v:42: f_add() with parameters: - params = [0 = '{a: 32'h7, foo: 6'hb, sub_params: '{b: 32'h37, bar: 8'h6f}}, 1 = '{a: 32'h3039, foo: 6'hc, sub_params: '{b: 32'h8, bar: 8'h70}}] -Called from: -t/t_func_const_packed_struct_bad2.v:19: f_add2() with parameters: - a = ?32?sh7 - b = ?32?sh8 - c = ?32?sh9 + t/t_func_const_packed_struct_bad2.v:30: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing + t/t_func_const_packed_struct_bad2.v:42: ... Called from f_add() with parameters: + params = [0 = '{a: 32'h7, foo: 6'hb, sub_params: '{b: 32'h37, bar: 8'h6f}}, 1 = '{a: 32'h3039, foo: 6'hc, sub_params: '{b: 32'h8, bar: 8'h70}}] + t/t_func_const_packed_struct_bad2.v:19: ... Called from f_add2() with parameters: + a = ?32?sh7 + b = ?32?sh8 + c = ?32?sh9 %Error: Exiting due to diff --git a/test_regress/t/t_func_const_struct_bad.out b/test_regress/t/t_func_const_struct_bad.out index 7a693139a..49c3f22cb 100644 --- a/test_regress/t/t_func_const_struct_bad.out +++ b/test_regress/t/t_func_const_struct_bad.out @@ -1,13 +1,11 @@ %Warning-USERFATAL: f_add = 15 -%Warning-USERFATAL: Use "/* verilator lint_off USERFATAL */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off USERFATAL */" and lint_on around source to disable this message. %Error: t/t_func_const_struct_bad.v:16: Expecting expression to be constant, but can't determine constant for FUNCREF 'f_add2' -%Error: t/t_func_const_struct_bad.v:27: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing -Called from: -t/t_func_const_struct_bad.v:37: f_add() with parameters: - params = '{a: 32'h7, b: 32'h8} -Called from: -t/t_func_const_struct_bad.v:16: f_add2() with parameters: - a = ?32?sh7 - b = ?32?sh8 - c = ?32?sh9 + t/t_func_const_struct_bad.v:27: ... Location of non-constant STOP: $stop executed during function constification; maybe indicates assertion firing + t/t_func_const_struct_bad.v:37: ... Called from f_add() with parameters: + params = '{a: 32'h7, b: 32'h8} + t/t_func_const_struct_bad.v:16: ... Called from f_add2() with parameters: + a = ?32?sh7 + b = ?32?sh8 + c = ?32?sh9 %Error: Exiting due to diff --git a/test_regress/t/t_func_void_bad.out b/test_regress/t/t_func_void_bad.out index d136ba931..bb0542681 100644 --- a/test_regress/t/t_func_void_bad.out +++ b/test_regress/t/t_func_void_bad.out @@ -1,3 +1,3 @@ %Warning-IGNOREDRETURN: t/t_func_void_bad.v:25: Ignoring return value of non-void function (IEEE 2017 13.4.1) -%Warning-IGNOREDRETURN: Use "/* verilator lint_off IGNOREDRETURN */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off IGNOREDRETURN */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_gen_cond_bitrange_bad.out b/test_regress/t/t_gen_cond_bitrange_bad.out index 0026efaeb..e39b20ccf 100644 --- a/test_regress/t/t_gen_cond_bitrange_bad.out +++ b/test_regress/t/t_gen_cond_bitrange_bad.out @@ -1,5 +1,5 @@ %Warning-SELRANGE: t/t_gen_cond_bitrange_bad.v:58: Selection index out of range: 2:2 outside 1:0 -%Warning-SELRANGE: Use "/* verilator lint_off SELRANGE */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off SELRANGE */" and lint_on around source to disable this message. %Warning-SELRANGE: t/t_gen_cond_bitrange_bad.v:70: Selection index out of range: 2:2 outside 1:0 %Warning-SELRANGE: t/t_gen_cond_bitrange_bad.v:83: Selection index out of range: 2:2 outside 1:0 %Warning-SELRANGE: t/t_gen_cond_bitrange_bad.v:96: Selection index out of range: 2:2 outside 1:0 diff --git a/test_regress/t/t_gen_missing_bad.out b/test_regress/t/t_gen_missing_bad.out index cd887c786..80183717e 100644 --- a/test_regress/t/t_gen_missing_bad.out +++ b/test_regress/t/t_gen_missing_bad.out @@ -1,18 +1,18 @@ %Error: t/t_gen_missing.v:42: Cannot find file containing module: foo_not_needed -%Error: t/t_gen_missing.v:42: Looked in: -%Error: t/t_gen_missing.v:42: t/foo_not_needed -%Error: t/t_gen_missing.v:42: t/foo_not_needed.v -%Error: t/t_gen_missing.v:42: t/foo_not_needed.sv -%Error: t/t_gen_missing.v:42: obj_dir//foo_not_needed -%Error: t/t_gen_missing.v:42: obj_dir//foo_not_needed.v -%Error: t/t_gen_missing.v:42: obj_dir//foo_not_needed.sv -%Error: t/t_gen_missing.v:42: ../include/foo_not_needed -%Error: t/t_gen_missing.v:42: ../include/foo_not_needed.v -%Error: t/t_gen_missing.v:42: ../include/foo_not_needed.sv -%Error: t/t_gen_missing.v:42: foo_not_needed -%Error: t/t_gen_missing.v:42: foo_not_needed.v -%Error: t/t_gen_missing.v:42: foo_not_needed.sv -%Error: t/t_gen_missing.v:42: obj_vlt/t_gen_missing_bad/foo_not_needed -%Error: t/t_gen_missing.v:42: obj_vlt/t_gen_missing_bad/foo_not_needed.v -%Error: t/t_gen_missing.v:42: obj_vlt/t_gen_missing_bad/foo_not_needed.sv + ... Looked in: + t/foo_not_needed + t/foo_not_needed.v + t/foo_not_needed.sv + obj_dir//foo_not_needed + obj_dir//foo_not_needed.v + obj_dir//foo_not_needed.sv + ../include/foo_not_needed + ../include/foo_not_needed.v + ../include/foo_not_needed.sv + foo_not_needed + foo_not_needed.v + foo_not_needed.sv + obj_vlt/t_gen_missing_bad/foo_not_needed + obj_vlt/t_gen_missing_bad/foo_not_needed.v + obj_vlt/t_gen_missing_bad/foo_not_needed.sv %Error: Exiting due to diff --git a/test_regress/t/t_hierarchy_identifier_bad.out b/test_regress/t/t_hierarchy_identifier_bad.out index 0da1c3aa0..0664dbe1a 100644 --- a/test_regress/t/t_hierarchy_identifier_bad.out +++ b/test_regress/t/t_hierarchy_identifier_bad.out @@ -1,5 +1,5 @@ %Warning-ENDLABEL: t/t_hierarchy_identifier_bad.v:33: End label 'if_cnt_finish_bad' does not match begin label 'if_cnt_finish' -%Warning-ENDLABEL: Use "/* verilator lint_off ENDLABEL */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off ENDLABEL */" and lint_on around source to disable this message. %Warning-ENDLABEL: t/t_hierarchy_identifier_bad.v:39: End label 'generate_for_bad' does not match begin label 'generate_for' %Warning-ENDLABEL: t/t_hierarchy_identifier_bad.v:46: End label 'generate_if_if_bad' does not match begin label 'generate_if_if' %Warning-ENDLABEL: t/t_hierarchy_identifier_bad.v:50: End label 'generate_if_else_bad' does not match begin label 'generate_if_else' diff --git a/test_regress/t/t_inst_missing_bad.out b/test_regress/t/t_inst_missing_bad.out index ddb56f204..048bea2ef 100644 --- a/test_regress/t/t_inst_missing_bad.out +++ b/test_regress/t/t_inst_missing_bad.out @@ -1,5 +1,5 @@ %Warning-PINNOCONNECT: t/t_inst_missing_bad.v:8: Cell pin is not connected: __pinNumber2 -%Warning-PINNOCONNECT: Use "/* verilator lint_off PINNOCONNECT */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off PINNOCONNECT */" and lint_on around source to disable this message. %Warning-PINCONNECTEMPTY: t/t_inst_missing_bad.v:8: Cell pin connected by name with empty reference: nc %Warning-PINMISSING: t/t_inst_missing_bad.v:8: Cell has missing pin: missing %Error: Exiting due to diff --git a/test_regress/t/t_inst_overwide_bad.out b/test_regress/t/t_inst_overwide_bad.out index 88dbf90f0..babd4b74b 100644 --- a/test_regress/t/t_inst_overwide_bad.out +++ b/test_regress/t/t_inst_overwide_bad.out @@ -1,5 +1,5 @@ %Warning-WIDTH: t/t_inst_overwide.v:22: Output port connection 'outy_w92' expects 92 bits on the pin connection, but pin connection's VARREF 'outc_w30' generates 30 bits. -%Warning-WIDTH: Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. %Warning-WIDTH: t/t_inst_overwide.v:23: Output port connection 'outz_w22' expects 22 bits on the pin connection, but pin connection's VARREF 'outd_w73' generates 73 bits. %Warning-WIDTH: t/t_inst_overwide.v:26: Input port connection 'inw_w31' expects 31 bits on the pin connection, but pin connection's VARREF 'ina_w1' generates 1 bits. %Warning-WIDTH: t/t_inst_overwide.v:27: Input port connection 'inx_w11' expects 11 bits on the pin connection, but pin connection's VARREF 'inb_w61' generates 61 bits. diff --git a/test_regress/t/t_inst_recurse_bad.out b/test_regress/t/t_inst_recurse_bad.out new file mode 100644 index 000000000..e25f3952e --- /dev/null +++ b/test_regress/t/t_inst_recurse_bad.out @@ -0,0 +1,3 @@ +%Error: t/t_inst_recurse_bad.v:17: Unsupported: Recursive multiple modules (module instantiates something leading back to itself): looped + ... Note self-recursion (module instantiating itself directly) is supported. +%Error: Exiting due to diff --git a/test_regress/t/t_inst_recurse_bad.pl b/test_regress/t/t_inst_recurse_bad.pl index e0a1fb933..ac8a3e44a 100755 --- a/test_regress/t/t_inst_recurse_bad.pl +++ b/test_regress/t/t_inst_recurse_bad.pl @@ -11,10 +11,7 @@ scenarios(simulator => 1); compile( fails => 1, - expect => -'.*%Error: t/t_inst_recurse_bad.v:\d+: Unsupported: Recursive multiple modules \(module instantiates something leading back to itself\): looped -%Error: t/t_inst_recurse_bad.v:\d+: Note self-recursion \(module instantiating itself directly\) is supported. -%Error: Exiting due to.*', + expect_filename => $Self->{golden_filename}, ); ok(1); diff --git a/test_regress/t/t_interface_array_nocolon_bad.out b/test_regress/t/t_interface_array_nocolon_bad.out index 363dc8cb5..316a9663b 100644 --- a/test_regress/t/t_interface_array_nocolon_bad.out +++ b/test_regress/t/t_interface_array_nocolon_bad.out @@ -1,5 +1,5 @@ %Warning-LITENDIAN: t/t_interface_array_nocolon_bad.v:25: Little endian cell range connecting to vector: MSB < LSB of cell range: 0:2 -%Warning-LITENDIAN: Use "/* verilator lint_off LITENDIAN */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off LITENDIAN */" and lint_on around source to disable this message. %Warning-LITENDIAN: t/t_interface_array_nocolon_bad.v:26: Little endian cell range connecting to vector: MSB < LSB of cell range: 1:3 %Warning-LITENDIAN: t/t_interface_array_nocolon_bad.v:29: Little endian cell range connecting to vector: MSB < LSB of cell range: 0:2 %Warning-LITENDIAN: t/t_interface_array_nocolon_bad.v:30: Little endian cell range connecting to vector: MSB < LSB of cell range: 1:3 diff --git a/test_regress/t/t_interface_mismodport_bad.out b/test_regress/t/t_interface_mismodport_bad.out index ec1b46f5c..5b6b8519e 100644 --- a/test_regress/t/t_interface_mismodport_bad.out +++ b/test_regress/t/t_interface_mismodport_bad.out @@ -1,3 +1,3 @@ %Error: t/t_interface_mismodport_bad.v:35: Can't find definition of 'bad' in dotted signal: isub.bad -%Error: Known scopes under 'bad': + ... Known scopes under 'bad': %Error: Exiting due to diff --git a/test_regress/t/t_lint_always_comb_bad.out b/test_regress/t/t_lint_always_comb_bad.out index 81bc36f64..3ce47c2d8 100644 --- a/test_regress/t/t_lint_always_comb_bad.out +++ b/test_regress/t/t_lint_always_comb_bad.out @@ -1,6 +1,6 @@ %Error-PROCASSWIRE: t/t_lint_always_comb_bad.v:28: Procedural assignment to wire, perhaps intended var (IEEE 2017 6.5): temp1 %Error-PROCASSWIRE: t/t_lint_always_comb_bad.v:30: Procedural assignment to wire, perhaps intended var (IEEE 2017 6.5): temp1 %Warning-ALWCOMBORDER: t/t_lint_always_comb_bad.v:31: Always_comb variable driven after use: mid -%Warning-ALWCOMBORDER: Use "/* verilator lint_off ALWCOMBORDER */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off ALWCOMBORDER */" and lint_on around source to disable this message. %Error-PROCASSWIRE: t/t_lint_always_comb_bad.v:45: Procedural assignment to wire, perhaps intended var (IEEE 2017 6.5): temp1_d1r %Error: Exiting due to diff --git a/test_regress/t/t_lint_blksync_bad.out b/test_regress/t/t_lint_blksync_bad.out index 1d4ffef0f..d59370891 100644 --- a/test_regress/t/t_lint_blksync_bad.out +++ b/test_regress/t/t_lint_blksync_bad.out @@ -1,6 +1,6 @@ %Warning-BLKSEQ: t/t_lint_blksync_bad.v:23: Blocking assignments (=) in sequential (flop or latch) block; suggest delayed assignments (<=). -%Warning-BLKSEQ: Use "/* verilator lint_off BLKSEQ */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off BLKSEQ */" and lint_on around source to disable this message. %Warning-COMBDLY: t/t_lint_blksync_bad.v:30: Delayed assignments (<=) in non-clocked (non flop or latch) block; suggest blocking assignments (=). -%Warning-COMBDLY: *** See the manual before disabling this, -%Warning-COMBDLY: else you may end up with different sim results. + *** See the manual before disabling this, + else you may end up with different sim results. %Error: Exiting due to diff --git a/test_regress/t/t_lint_colonplus_bad.out b/test_regress/t/t_lint_colonplus_bad.out new file mode 100644 index 000000000..33cffa284 --- /dev/null +++ b/test_regress/t/t_lint_colonplus_bad.out @@ -0,0 +1,3 @@ +%Warning-COLONPLUS: t/t_lint_colonplus_bad.v:12: Perhaps instead of ':+' the intent was '+:'? + ... Use "/* verilator lint_off COLONPLUS */" and lint_on around source to disable this message. +%Error: Exiting due to diff --git a/test_regress/t/t_lint_colonplus_bad.pl b/test_regress/t/t_lint_colonplus_bad.pl index 7e04de051..21b4f790d 100755 --- a/test_regress/t/t_lint_colonplus_bad.pl +++ b/test_regress/t/t_lint_colonplus_bad.pl @@ -15,10 +15,7 @@ compile( make_top_shell => 0, make_main => 0, fails => 1, - expect => -q{%Warning-COLONPLUS: t/t_lint_colonplus_bad.v:\d+: Perhaps instead of ':\+' the intent was '\+:'\? -%Warning-COLONPLUS: Use .* -.*%Error: Exiting due to.*}, + expect_filename => $Self->{golden_filename}, ); ok(1); diff --git a/test_regress/t/t_lint_declfilename_bad.out b/test_regress/t/t_lint_declfilename_bad.out new file mode 100644 index 000000000..05e66f650 --- /dev/null +++ b/test_regress/t/t_lint_declfilename_bad.out @@ -0,0 +1,3 @@ +%Warning-DECLFILENAME: t/t_lint_declfilename.v:6: Filename 't_lint_declfilename' does not match MODULE name: t + ... Use "/* verilator lint_off DECLFILENAME */" and lint_on around source to disable this message. +%Error: Exiting due to diff --git a/test_regress/t/t_lint_declfilename_bad.pl b/test_regress/t/t_lint_declfilename_bad.pl index c9defd4c7..5c9e66ac0 100755 --- a/test_regress/t/t_lint_declfilename_bad.pl +++ b/test_regress/t/t_lint_declfilename_bad.pl @@ -7,7 +7,7 @@ if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); di # Lesser General Public License Version 3 or the Perl Artistic License # Version 2.0. -scenarios(vlt_all => 1); +scenarios(vlt => 1); top_filename("t/t_lint_declfilename.v"); @@ -17,10 +17,7 @@ compile( verilator_make_gcc => 0, make_top_shell => 0, make_main => 0, - expect => -'%Warning-DECLFILENAME: t/t_lint_declfilename.v:6: Filename \'t_lint_declfilename\' does not match MODULE name: t -%Warning-DECLFILENAME: Use .* to disable this message. -%Error: Exiting due to.*', + expect_filename => $Self->{golden_filename}, ); ok(1); diff --git a/test_regress/t/t_lint_defparam_bad.out b/test_regress/t/t_lint_defparam_bad.out new file mode 100644 index 000000000..b88488f76 --- /dev/null +++ b/test_regress/t/t_lint_defparam_bad.out @@ -0,0 +1,3 @@ +%Warning-DEFPARAM: t/t_lint_defparam.v:9: Suggest replace defparam with Verilog 2001 #(.P(...etc...)) + ... Use "/* verilator lint_off DEFPARAM */" and lint_on around source to disable this message. +%Error: Exiting due to diff --git a/test_regress/t/t_lint_defparam_bad.pl b/test_regress/t/t_lint_defparam_bad.pl index 079ba4535..706d2b88a 100755 --- a/test_regress/t/t_lint_defparam_bad.pl +++ b/test_regress/t/t_lint_defparam_bad.pl @@ -7,7 +7,7 @@ if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); di # Lesser General Public License Version 3 or the Perl Artistic License # Version 2.0. -scenarios(vlt_all => 1); +scenarios(vlt => 1); top_filename("t/t_lint_defparam.v"); @@ -17,10 +17,7 @@ compile( verilator_make_gcc => 0, make_top_shell => 0, make_main => 0, - expect => -'%Warning-DEFPARAM: t/t_lint_defparam.v:\d+: Suggest replace defparam with Verilog 2001 #\(.P\(...etc...\)\) -%Warning-DEFPARAM: Use .* to disable this message. -%Error: Exiting due to.*', + expect_filename => $Self->{golden_filename}, ); ok(1); diff --git a/test_regress/t/t_lint_ifdepth_bad.out b/test_regress/t/t_lint_ifdepth_bad.out index 986b61e0f..7f79da650 100644 --- a/test_regress/t/t_lint_ifdepth_bad.out +++ b/test_regress/t/t_lint_ifdepth_bad.out @@ -1,3 +1,3 @@ %Warning-IFDEPTH: t/t_lint_ifdepth_bad.v:21: Deep 'if' statement; suggest unique/priority to avoid slow logic -%Warning-IFDEPTH: Use "/* verilator lint_off IFDEPTH */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off IFDEPTH */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_lint_implicit_bad.out b/test_regress/t/t_lint_implicit_bad.out index 207a453ec..a6f636875 100644 --- a/test_regress/t/t_lint_implicit_bad.out +++ b/test_regress/t/t_lint_implicit_bad.out @@ -1,5 +1,5 @@ %Warning-IMPLICIT: t/t_lint_implicit.v:10: Signal definition not found, creating implicitly: b -%Warning-IMPLICIT: Use "/* verilator lint_off IMPLICIT */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off IMPLICIT */" and lint_on around source to disable this message. %Warning-IMPLICIT: t/t_lint_implicit.v:12: Signal definition not found, creating implicitly: nt0 %Warning-IMPLICIT: t/t_lint_implicit.v:15: Signal definition not found, creating implicitly: dummy1 %Warning-IMPLICIT: t/t_lint_implicit.v:15: Signal definition not found, creating implicitly: dummy2 diff --git a/test_regress/t/t_lint_implicit_def_bad.out b/test_regress/t/t_lint_implicit_def_bad.out index 8227b7f38..d96da3a05 100644 --- a/test_regress/t/t_lint_implicit_def_bad.out +++ b/test_regress/t/t_lint_implicit_def_bad.out @@ -1,4 +1,4 @@ %Warning-IMPLICIT: t/t_lint_implicit_def_bad.v:10: Signal definition not found, creating implicitly: imp_warn -%Warning-IMPLICIT: Use "/* verilator lint_off IMPLICIT */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off IMPLICIT */" and lint_on around source to disable this message. %Error: t/t_lint_implicit_def_bad.v:15: Signal definition not found, and implicit disabled with `default_nettype: imp_err %Error: Exiting due to diff --git a/test_regress/t/t_lint_importstar_bad.out b/test_regress/t/t_lint_importstar_bad.out index d0a800b7d..08f821b0a 100644 --- a/test_regress/t/t_lint_importstar_bad.out +++ b/test_regress/t/t_lint_importstar_bad.out @@ -1,3 +1,3 @@ %Warning-IMPORTSTAR: t/t_lint_importstar_bad.v:10: Import::* in $unit scope may pollute global namespace -%Warning-IMPORTSTAR: Use "/* verilator lint_off IMPORTSTAR */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off IMPORTSTAR */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_lint_incabspath_bad.out b/test_regress/t/t_lint_incabspath_bad.out new file mode 100644 index 000000000..fd0c2c6d8 --- /dev/null +++ b/test_regress/t/t_lint_incabspath_bad.out @@ -0,0 +1,3 @@ +%Warning-INCABSPATH: t/t_lint_incabspath.v:6: Suggest `include with absolute path be made relative, and use +include: /dev/null + ... Use "/* verilator lint_off INCABSPATH */" and lint_on around source to disable this message. +%Error: Exiting due to diff --git a/test_regress/t/t_lint_incabspath_bad.pl b/test_regress/t/t_lint_incabspath_bad.pl index 63577bfa3..d12605484 100755 --- a/test_regress/t/t_lint_incabspath_bad.pl +++ b/test_regress/t/t_lint_incabspath_bad.pl @@ -7,7 +7,7 @@ if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); di # Lesser General Public License Version 3 or the Perl Artistic License # Version 2.0. -scenarios(vlt_all => 1); +scenarios(vlt => 1); top_filename("t/t_lint_incabspath.v"); @@ -17,10 +17,7 @@ compile( verilator_make_gcc => 0, make_top_shell => 0, make_main => 0, - expect => -'%Warning-INCABSPATH: t/t_lint_incabspath.v:\d+: Suggest `include with absolute path be made relative, and use \+include: /dev/null -%Warning-INCABSPATH: Use .* to disable this message. -%Error: Exiting due to.*', + expect_filename => $Self->{golden_filename}, ); ok(1); diff --git a/test_regress/t/t_lint_infinite.out b/test_regress/t/t_lint_infinite.out index 420d93243..bfab775ea 100644 --- a/test_regress/t/t_lint_infinite.out +++ b/test_regress/t/t_lint_infinite.out @@ -1,4 +1,4 @@ %Warning-INFINITELOOP: t/t_lint_infinite.v:9: Infinite loop (condition always true) -%Warning-INFINITELOOP: Use "/* verilator lint_off INFINITELOOP */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off INFINITELOOP */" and lint_on around source to disable this message. %Warning-INFINITELOOP: t/t_lint_infinite.v:11: Infinite loop (condition always true) %Error: Exiting due to diff --git a/test_regress/t/t_lint_latch_bad.out b/test_regress/t/t_lint_latch_bad.out index aa66c70f9..f72e4393a 100644 --- a/test_regress/t/t_lint_latch_bad.out +++ b/test_regress/t/t_lint_latch_bad.out @@ -1,5 +1,5 @@ %Warning-COMBDLY: t/t_lint_latch_bad.v:24: Delayed assignments (<=) in non-clocked (non flop or latch) block; suggest blocking assignments (=). -%Warning-COMBDLY: Use "/* verilator lint_off COMBDLY */" and lint_on around source to disable this message. -%Warning-COMBDLY: *** See the manual before disabling this, -%Warning-COMBDLY: else you may end up with different sim results. + ... Use "/* verilator lint_off COMBDLY */" and lint_on around source to disable this message. + *** See the manual before disabling this, + else you may end up with different sim results. %Error: Exiting due to diff --git a/test_regress/t/t_lint_multidriven_bad.out b/test_regress/t/t_lint_multidriven_bad.out index 9936093ac..f2f5d8767 100644 --- a/test_regress/t/t_lint_multidriven_bad.out +++ b/test_regress/t/t_lint_multidriven_bad.out @@ -1,8 +1,8 @@ %Warning-MULTIDRIVEN: t/t_lint_multidriven_bad.v:20: Signal has multiple driving blocks with different clocking: t.mem -%Warning-MULTIDRIVEN: t/t_lint_multidriven_bad.v:26: ... Location of first driving block -%Warning-MULTIDRIVEN: t/t_lint_multidriven_bad.v:23: ... Location of other driving block -%Warning-MULTIDRIVEN: Use "/* verilator lint_off MULTIDRIVEN */" and lint_on around source to disable this message. + t/t_lint_multidriven_bad.v:26: ... Location of first driving block + t/t_lint_multidriven_bad.v:23: ... Location of other driving block + ... Use "/* verilator lint_off MULTIDRIVEN */" and lint_on around source to disable this message. %Warning-MULTIDRIVEN: t/t_lint_multidriven_bad.v:18: Signal has multiple driving blocks with different clocking: out2 -%Warning-MULTIDRIVEN: t/t_lint_multidriven_bad.v:34: ... Location of first driving block -%Warning-MULTIDRIVEN: t/t_lint_multidriven_bad.v:31: ... Location of other driving block + t/t_lint_multidriven_bad.v:34: ... Location of first driving block + t/t_lint_multidriven_bad.v:31: ... Location of other driving block %Error: Exiting due to diff --git a/test_regress/t/t_lint_once_bad.out b/test_regress/t/t_lint_once_bad.out index c7996f476..066fed8ca 100644 --- a/test_regress/t/t_lint_once_bad.out +++ b/test_regress/t/t_lint_once_bad.out @@ -1,4 +1,4 @@ %Warning-UNUSED: t/t_lint_once_bad.v:18: Signal is not driven, nor used: unus1 -%Warning-UNUSED: Use "/* verilator lint_off UNUSED */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off UNUSED */" and lint_on around source to disable this message. %Warning-UNUSED: t/t_lint_once_bad.v:18: Signal is not driven, nor used: unus2 %Error: Exiting due to diff --git a/test_regress/t/t_lint_pindup_bad.out b/test_regress/t/t_lint_pindup_bad.out index b013a844f..d9b0d5c4a 100644 --- a/test_regress/t/t_lint_pindup_bad.out +++ b/test_regress/t/t_lint_pindup_bad.out @@ -1,6 +1,6 @@ %Error: t/t_lint_pindup_bad.v:17: Duplicate pin connection: i -%Error: t/t_lint_pindup_bad.v:16: ... Location of original pin connection + t/t_lint_pindup_bad.v:16: ... Location of original pin connection %Error: t/t_lint_pindup_bad.v:18: Pin not found: __pinNumber4 %Error: t/t_lint_pindup_bad.v:14: Duplicate parameter pin connection: P -%Error: t/t_lint_pindup_bad.v:14: ... Location of original parameter pin connection + t/t_lint_pindup_bad.v:14: ... Location of original parameter pin connection %Error: Exiting due to diff --git a/test_regress/t/t_lint_pkg_colon_bad.out b/test_regress/t/t_lint_pkg_colon_bad.out index 7bddff295..aee56e4b4 100644 --- a/test_regress/t/t_lint_pkg_colon_bad.out +++ b/test_regress/t/t_lint_pkg_colon_bad.out @@ -1,4 +1,4 @@ %Error: t/t_lint_pkg_colon_bad.v:6: syntax error, unexpected ::, expecting ')' or ',' -%Error: t/t_lint_pkg_colon_bad.v:6: Perhaps 'mispkg' is a package which needs to be predeclared? (IEEE 2017 26.3) + t/t_lint_pkg_colon_bad.v:6: ... Perhaps 'mispkg' is a package which needs to be predeclared? (IEEE 2017 26.3) %Error: t/t_lint_pkg_colon_bad.v:7: syntax error, unexpected ::, expecting ',' or ';' %Error: Exiting due to diff --git a/test_regress/t/t_lint_realcvt_bad.out b/test_regress/t/t_lint_realcvt_bad.out new file mode 100644 index 000000000..529830f17 --- /dev/null +++ b/test_regress/t/t_lint_realcvt_bad.out @@ -0,0 +1,3 @@ +%Warning-REALCVT: t/t_lint_realcvt_bad.v:9: Implicit conversion of real to integer + ... Use "/* verilator lint_off REALCVT */" and lint_on around source to disable this message. +%Error: Exiting due to diff --git a/test_regress/t/t_lint_realcvt_bad.pl b/test_regress/t/t_lint_realcvt_bad.pl index f7cea6254..4c77c2256 100755 --- a/test_regress/t/t_lint_realcvt_bad.pl +++ b/test_regress/t/t_lint_realcvt_bad.pl @@ -7,7 +7,7 @@ if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); di # Lesser General Public License Version 3 or the Perl Artistic License # Version 2.0. -scenarios(vlt_all => 1); +scenarios(vlt => 1); compile( v_flags2 => ["--lint-only -Wwarn-REALCVT"], @@ -15,10 +15,7 @@ compile( make_top_shell => 0, make_main => 0, fails => 1, - expect => -'%Warning-REALCVT: t/t_lint_realcvt_bad.v:\d+: Implicit conversion of real to integer -%Warning-REALCVT: Use .* to disable this message. -%Error: Exiting due to.*', + expect_filename => $Self->{golden_filename}, ); ok(1); diff --git a/test_regress/t/t_lint_repeat_bad.out b/test_regress/t/t_lint_repeat_bad.out index 8d318b6dd..728ecb737 100644 --- a/test_regress/t/t_lint_repeat_bad.out +++ b/test_regress/t/t_lint_repeat_bad.out @@ -1,3 +1,3 @@ %Warning-WIDTH: t/t_lint_repeat_bad.v:17: Operator ASSIGNW expects 1 bits on the Assign RHS, but Assign RHS's VARREF 'a' generates 2 bits. -%Warning-WIDTH: Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_lint_restore_bad.out b/test_regress/t/t_lint_restore_bad.out index ae6b7db53..4b8d915df 100644 --- a/test_regress/t/t_lint_restore_bad.out +++ b/test_regress/t/t_lint_restore_bad.out @@ -1,3 +1,3 @@ %Warning-WIDTH: t/t_lint_restore_bad.v:18: Operator ASSIGN expects 5 bits on the Assign RHS, but Assign RHS's CONST '64'h1' generates 64 bits. -%Warning-WIDTH: Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_lint_syncasyncnet_bad.out b/test_regress/t/t_lint_syncasyncnet_bad.out index 45b959673..cee7bcb74 100644 --- a/test_regress/t/t_lint_syncasyncnet_bad.out +++ b/test_regress/t/t_lint_syncasyncnet_bad.out @@ -1,5 +1,5 @@ %Warning-SYNCASYNCNET: t/t_lint_syncasyncnet_bad.v:15: Signal flopped as both synchronous and async: rst_both_l -%Warning-SYNCASYNCNET: t/t_lint_syncasyncnet_bad.v:90: ... Location of async usage -%Warning-SYNCASYNCNET: t/t_lint_syncasyncnet_bad.v:58: ... Location of sync usage -%Warning-SYNCASYNCNET: Use "/* verilator lint_off SYNCASYNCNET */" and lint_on around source to disable this message. + t/t_lint_syncasyncnet_bad.v:90: ... Location of async usage + t/t_lint_syncasyncnet_bad.v:58: ... Location of sync usage + ... Use "/* verilator lint_off SYNCASYNCNET */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_lint_unsized_bad.out b/test_regress/t/t_lint_unsized_bad.out index 91eebe714..e9ef69463 100644 --- a/test_regress/t/t_lint_unsized_bad.out +++ b/test_regress/t/t_lint_unsized_bad.out @@ -1,3 +1,4 @@ %Error: t/t_lint_unsized_bad.v:7: Too many digits for 32 bit number: 'd123456789123456789123456789 -%Error: t/t_lint_unsized_bad.v:7: As that number was unsized ('d...) it is limited to 32 bits (IEEE 2017 5.7.1) + ... As that number was unsized ('d...) it is limited to 32 bits (IEEE 2017 5.7.1) + ... Suggest adding a size to it. %Error: Exiting due to diff --git a/test_regress/t/t_lint_unused_bad.out b/test_regress/t/t_lint_unused_bad.out index aa38595c4..8a5dbf59c 100644 --- a/test_regress/t/t_lint_unused_bad.out +++ b/test_regress/t/t_lint_unused_bad.out @@ -1,5 +1,5 @@ %Warning-UNUSED: t/t_lint_unused_bad.v:16: Bits of signal are not used: assunu1[5:1] -%Warning-UNUSED: Use "/* verilator lint_off UNUSED */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off UNUSED */" and lint_on around source to disable this message. %Warning-UNDRIVEN: t/t_lint_unused_bad.v:20: Bits of signal are not driven: udrb2[14:13,11] %Warning-UNUSED: t/t_lint_unused_bad.v:25: Signal is not driven, nor used: unu3 %Warning-UNUSED: t/t_lint_unused_bad.v:27: Bits of signal are not driven, nor used: mixed[3] diff --git a/test_regress/t/t_lint_unused_iface_bad.out b/test_regress/t/t_lint_unused_iface_bad.out index 597313383..e2c848cfd 100644 --- a/test_regress/t/t_lint_unused_iface_bad.out +++ b/test_regress/t/t_lint_unused_iface_bad.out @@ -1,4 +1,4 @@ %Warning-UNDRIVEN: t/t_lint_unused_iface_bad.v:7: Signal is not driven: sig_udrv -%Warning-UNDRIVEN: Use "/* verilator lint_off UNDRIVEN */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off UNDRIVEN */" and lint_on around source to disable this message. %Warning-UNUSED: t/t_lint_unused_iface_bad.v:8: Signal is not used: sig_uusd %Error: Exiting due to diff --git a/test_regress/t/t_lint_width_bad.out b/test_regress/t/t_lint_width_bad.out index a808446bc..778ffb33a 100644 --- a/test_regress/t/t_lint_width_bad.out +++ b/test_regress/t/t_lint_width_bad.out @@ -1,5 +1,5 @@ %Warning-WIDTH: t/t_lint_width_bad.v:16: Operator VAR 'XS' expects 4 bits on the Initial value, but Initial value's CONST '?32?bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' generates 32 bits. -%Warning-WIDTH: Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. %Warning-WIDTH: t/t_lint_width_bad.v:38: Operator ASSIGNW expects 5 bits on the Assign RHS, but Assign RHS's VARREF 'in' generates 4 bits. %Warning-WIDTH: t/t_lint_width_bad.v:20: Operator SHIFTL expects 5 bits on the LHS, but LHS's CONST '1'h1' generates 1 bits. %Warning-WIDTH: t/t_lint_width_bad.v:26: Operator ASSIGNW expects 6 bits on the Assign RHS, but Assign RHS's SHIFTL generates 7 bits. diff --git a/test_regress/t/t_mem_multi_ref_bad.out b/test_regress/t/t_mem_multi_ref_bad.out index adae2e2a9..c7fef17f7 100644 --- a/test_regress/t/t_mem_multi_ref_bad.out +++ b/test_regress/t/t_mem_multi_ref_bad.out @@ -2,7 +2,7 @@ %Error: t/t_mem_multi_ref_bad.v:14: Extracting 2 bits from only 1 bit number %Error: t/t_mem_multi_ref_bad.v:15: Illegal bit or array select; type does not have a bit range, or bad dimension: type is logic %Warning-SELRANGE: t/t_mem_multi_ref_bad.v:15: Selection index out of range: 1:1 outside 0:0 -%Warning-SELRANGE: Use "/* verilator lint_off SELRANGE */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off SELRANGE */" and lint_on around source to disable this message. %Error: t/t_mem_multi_ref_bad.v:16: Illegal bit or array select; type does not have a bit range, or bad dimension: type is logic %Warning-SELRANGE: t/t_mem_multi_ref_bad.v:16: Selection index out of range: 1:1 outside 0:0 %Error: t/t_mem_multi_ref_bad.v:18: Illegal +: or -: select; type already selected, or bad dimension: type is UNPACKARRAYDTYPE diff --git a/test_regress/t/t_metacmt_onoff.out b/test_regress/t/t_metacmt_onoff.out index a29efcc4e..6cddaf571 100644 --- a/test_regress/t/t_metacmt_onoff.out +++ b/test_regress/t/t_metacmt_onoff.out @@ -1,4 +1,4 @@ %Warning-LITENDIAN: t/t_metacmt_onoff.v:5: Little bit endian vector: MSB < LSB of bit range: 0:1 -%Warning-LITENDIAN: Use "/* verilator lint_off LITENDIAN */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off LITENDIAN */" and lint_on around source to disable this message. %Warning-LITENDIAN: t/t_metacmt_onoff.v:5: Little bit endian vector: MSB < LSB of bit range: 0:3 %Error: Exiting due to diff --git a/test_regress/t/t_mod_dup_bad.out b/test_regress/t/t_mod_dup_bad.out new file mode 100644 index 000000000..a55c4eec9 --- /dev/null +++ b/test_regress/t/t_mod_dup_bad.out @@ -0,0 +1,6 @@ +%Warning-MODDUP: t/t_mod_dup_bad.v:13: Duplicate declaration of module: a + t/t_mod_dup_bad.v:6: ... Location of original declaration + ... Use "/* verilator lint_off MODDUP */" and lint_on around source to disable this message. +%Error-MULTITOP: t/t_mod_dup_bad.v:16: Unsupported: Multiple top level modules: b and test + t/t_mod_dup_bad.v:16: ... Fix, or use --top-module option to select which you want. +%Error: Exiting due to diff --git a/test_regress/t/t_mod_dup_bad.pl b/test_regress/t/t_mod_dup_bad.pl index 92d6612c5..856b43919 100755 --- a/test_regress/t/t_mod_dup_bad.pl +++ b/test_regress/t/t_mod_dup_bad.pl @@ -7,15 +7,11 @@ if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); di # Lesser General Public License Version 3 or the Perl Artistic License # Version 2.0. -scenarios(vlt_all => 1); +scenarios(vlt => 1); compile( fails => 1, - expect => -'%Warning-MODDUP: t/t_mod_dup_bad.v:\d+: Duplicate declaration of module: a -%Warning-MODDUP: t/t_mod_dup_bad.v:\d+: ... Location of original declaration -.* -%Error: Exiting due to.*', + expect_filename => $Self->{golden_filename}, ); ok(1); diff --git a/test_regress/t/t_order_loop_bad.pl b/test_regress/t/t_order_loop_bad.pl index a29a29006..10de67e00 100755 --- a/test_regress/t/t_order_loop_bad.pl +++ b/test_regress/t/t_order_loop_bad.pl @@ -17,9 +17,9 @@ compile( make_main => 0, expect => '%Error: Circular logic when ordering code .* -%Error: Example path: t/t_order_loop_bad.v:\d+: ALWAYS -%Error: Example path: t/t_order_loop_bad.v:\d+: t.ready -%Error: Example path: t/t_order_loop_bad.v:\d+: ACTIVE + *t/t_order_loop_bad.v:\d+: + Example path: ALWAYS + *t/t_order_loop_bad.v:\d+: + Example path: t.ready + *t/t_order_loop_bad.v:\d+: + Example path: ACTIVE .*', ); diff --git a/test_regress/t/t_param_concat_bad.out b/test_regress/t/t_param_concat_bad.out index c7612e141..110baca05 100644 --- a/test_regress/t/t_param_concat_bad.out +++ b/test_regress/t/t_param_concat_bad.out @@ -1,5 +1,5 @@ %Warning-WIDTHCONCAT: t/t_param_concat.v:18: Unsized numbers/parameters not allowed in concatenations. -%Warning-WIDTHCONCAT: Use "/* verilator lint_off WIDTHCONCAT */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off WIDTHCONCAT */" and lint_on around source to disable this message. %Warning-WIDTHCONCAT: t/t_param_concat.v:18: Unsized numbers/parameters not allowed in replications. %Warning-WIDTHCONCAT: t/t_param_concat.v:19: Unsized numbers/parameters not allowed in replications. %Error: Exiting due to diff --git a/test_regress/t/t_param_scope_bad.out b/test_regress/t/t_param_scope_bad.out index affa99b8d..9f397e65e 100644 --- a/test_regress/t/t_param_scope_bad.out +++ b/test_regress/t/t_param_scope_bad.out @@ -1,3 +1,3 @@ %Warning-CASEOVERLAP: t/t_param_scope_bad.v:27: Case values overlap (example pattern 0x2) -%Warning-CASEOVERLAP: Use "/* verilator lint_off CASEOVERLAP */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off CASEOVERLAP */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_param_sel_range_bad.out b/test_regress/t/t_param_sel_range_bad.out index 9eec9f6f7..8eb678a4f 100644 --- a/test_regress/t/t_param_sel_range_bad.out +++ b/test_regress/t/t_param_sel_range_bad.out @@ -1,3 +1,3 @@ %Warning-SELRANGE: t/t_param_sel_range.v:40: Selection index out of range: 7:7 outside 4:0 -%Warning-SELRANGE: Use "/* verilator lint_off SELRANGE */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off SELRANGE */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_past_bad.out b/test_regress/t/t_past_bad.out index 548b0ec85..6bda9f53a 100644 --- a/test_regress/t/t_past_bad.out +++ b/test_regress/t/t_past_bad.out @@ -1,4 +1,4 @@ %Error: t/t_past_bad.v:11: $past tick value must be constant and >= 1 (IEEE 2017 16.9.3) %Warning-TICKCOUNT: t/t_past_bad.v:12: $past tick value of 10000 may have a large performance cost -%Warning-TICKCOUNT: Use "/* verilator lint_off TICKCOUNT */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off TICKCOUNT */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_pp_dupdef_bad.out b/test_regress/t/t_pp_dupdef_bad.out index 6de6783ee..53e0992e1 100644 --- a/test_regress/t/t_pp_dupdef_bad.out +++ b/test_regress/t/t_pp_dupdef_bad.out @@ -1,5 +1,5 @@ %Warning-REDEFMACRO: t/t_pp_dupdef.v:10: Redefining existing define: DUP, with different value: barney -%Warning-REDEFMACRO: Use "/* verilator lint_off REDEFMACRO */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off REDEFMACRO */" and lint_on around source to disable this message. %Warning-REDEFMACRO: t/t_pp_dupdef.v:10: Previous definition is here, with value: fred %Warning-REDEFMACRO: t/t_pp_dupdef.v:13: Redefining existing define: DUPP, with different value: paramed(x,z) (x*z) %Warning-REDEFMACRO: t/t_pp_dupdef.v:13: Previous definition is here, with value: paramed(x) (x) diff --git a/test_regress/t/t_select_bad_range.out b/test_regress/t/t_select_bad_range.out index 21a97befd..b63fa0466 100644 --- a/test_regress/t/t_select_bad_range.out +++ b/test_regress/t/t_select_bad_range.out @@ -1,4 +1,4 @@ %Warning-SELRANGE: t/t_select_bad_range.v:15: Selection index out of range: 44:44 outside 43:0 -%Warning-SELRANGE: Use "/* verilator lint_off SELRANGE */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off SELRANGE */" and lint_on around source to disable this message. %Warning-SELRANGE: t/t_select_bad_range.v:16: Selection index out of range: 44:41 outside 43:0 %Error: Exiting due to diff --git a/test_regress/t/t_select_bad_range2.out b/test_regress/t/t_select_bad_range2.out index e0897fce0..74866f9d8 100644 --- a/test_regress/t/t_select_bad_range2.out +++ b/test_regress/t/t_select_bad_range2.out @@ -1,3 +1,3 @@ %Warning-SELRANGE: t/t_select_bad_range2.v:50: Selection index out of range: 3:2 outside 1:0 -%Warning-SELRANGE: Use "/* verilator lint_off SELRANGE */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off SELRANGE */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_select_bad_range3.out b/test_regress/t/t_select_bad_range3.out index 37db8655d..3b8d4b761 100644 --- a/test_regress/t/t_select_bad_range3.out +++ b/test_regress/t/t_select_bad_range3.out @@ -1,3 +1,3 @@ %Warning-SELRANGE: t/t_select_bad_range3.v:18: Selection index out of range: 13 outside 12:10 -%Warning-SELRANGE: Use "/* verilator lint_off SELRANGE */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off SELRANGE */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_struct_unpacked_bad.out b/test_regress/t/t_struct_unpacked_bad.out new file mode 100644 index 000000000..d1c0d5ee2 --- /dev/null +++ b/test_regress/t/t_struct_unpacked_bad.out @@ -0,0 +1,3 @@ +%Warning-UNPACKED: t/t_struct_unpacked_bad.v:8: Unsupported: Unpacked struct/union + ... Use "/* verilator lint_off UNPACKED */" and lint_on around source to disable this message. +%Error: Exiting due to diff --git a/test_regress/t/t_struct_unpacked_bad.pl b/test_regress/t/t_struct_unpacked_bad.pl index 4725e7bda..43933e6ae 100755 --- a/test_regress/t/t_struct_unpacked_bad.pl +++ b/test_regress/t/t_struct_unpacked_bad.pl @@ -11,10 +11,7 @@ scenarios(simulator => 1); compile( fails => $Self->{vlt_all}, - expect => -q{%Warning-UNPACKED: t/t_struct_unpacked_bad.v:\d+: Unsupported: Unpacked struct/union -%Warning-UNPACKED: Use .* -.*%Error: Exiting due to.*}, + expect_filename => $Self->{golden_filename}, ); ok(1); diff --git a/test_regress/t/t_tri_pull2_bad.out b/test_regress/t/t_tri_pull2_bad.out index 933d6c838..b6c50583e 100644 --- a/test_regress/t/t_tri_pull2_bad.out +++ b/test_regress/t/t_tri_pull2_bad.out @@ -1,3 +1,3 @@ %Error: t/t_tri_pull2_bad.v:9: Unsupported: Conflicting pull directions. -%Error: t/t_tri_pull2_bad.v:19: ... Location of conflicting pull. + t/t_tri_pull2_bad.v:19: ... Location of conflicting pull. %Error: Exiting due to diff --git a/test_regress/t/t_tri_pull_bad.out b/test_regress/t/t_tri_pull_bad.out index 932e381f0..463005bf7 100644 --- a/test_regress/t/t_tri_pull_bad.out +++ b/test_regress/t/t_tri_pull_bad.out @@ -1,3 +1,3 @@ %Error: t/t_tri_pull_bad.v:10: Unsupported: Conflicting pull directions. -%Error: t/t_tri_pull_bad.v:9: ... Location of conflicting pull. + t/t_tri_pull_bad.v:9: ... Location of conflicting pull. %Error: Exiting due to diff --git a/test_regress/t/t_tri_pullvec_bad.out b/test_regress/t/t_tri_pullvec_bad.out index d1ee749df..4894d17af 100644 --- a/test_regress/t/t_tri_pullvec_bad.out +++ b/test_regress/t/t_tri_pullvec_bad.out @@ -1,4 +1,5 @@ %Error: t/t_tri_pullvec_bad.v:10: Unsupported: Conflicting pull directions. -%Error: t/t_tri_pullvec_bad.v:9: ... Location of conflicting pull. + t/t_tri_pullvec_bad.v:9: ... Location of conflicting pull. %Error: t/t_tri_pullvec_bad.v:11: Unsupported: Conflicting pull directions. + t/t_tri_pullvec_bad.v:9: ... Location of conflicting pull. %Error: Exiting due to diff --git a/test_regress/t/t_unopt_combo_bad.out b/test_regress/t/t_unopt_combo_bad.out index 5e02f0e7b..ecf708de7 100644 --- a/test_regress/t/t_unopt_combo_bad.out +++ b/test_regress/t/t_unopt_combo_bad.out @@ -1,8 +1,8 @@ %Warning-UNOPTFLAT: t/t_unopt_combo.v:23: Signal unoptimizable: Feedback to clock or circular logic: t.c -%Warning-UNOPTFLAT: Use "/* verilator lint_off UNOPTFLAT */" and lint_on around source to disable this message. -%Warning-UNOPTFLAT: Example path: t/t_unopt_combo.v:23: t.c -%Warning-UNOPTFLAT: Example path: t/t_unopt_combo.v:80: ALWAYS -%Warning-UNOPTFLAT: Example path: t/t_unopt_combo.v:22: t.b -%Warning-UNOPTFLAT: Example path: t/t_unopt_combo.v:116: ALWAYS -%Warning-UNOPTFLAT: Example path: t/t_unopt_combo.v:23: t.c + ... Use "/* verilator lint_off UNOPTFLAT */" and lint_on around source to disable this message. + t/t_unopt_combo.v:23: Example path: t.c + t/t_unopt_combo.v:80: Example path: ALWAYS + t/t_unopt_combo.v:22: Example path: t.b + t/t_unopt_combo.v:116: Example path: ALWAYS + t/t_unopt_combo.v:23: Example path: t.c %Error: Exiting due to diff --git a/test_regress/t/t_unopt_converge_unopt_bad.out b/test_regress/t/t_unopt_converge_unopt_bad.out index 7129e3eec..12e1ee418 100644 --- a/test_regress/t/t_unopt_converge_unopt_bad.out +++ b/test_regress/t/t_unopt_converge_unopt_bad.out @@ -1,6 +1,6 @@ %Warning-UNOPT: t/t_unopt_converge.v:18: Signal unoptimizable: Feedback to public clock or circular logic: x -%Warning-UNOPT: Use "/* verilator lint_off UNOPT */" and lint_on around source to disable this message. -%Warning-UNOPT: Example path: t/t_unopt_converge.v:18: x -%Warning-UNOPT: Example path: t/t_unopt_converge.v:21: ALWAYS -%Warning-UNOPT: Example path: t/t_unopt_converge.v:18: x + ... Use "/* verilator lint_off UNOPT */" and lint_on around source to disable this message. + t/t_unopt_converge.v:18: Example path: x + t/t_unopt_converge.v:21: Example path: ALWAYS + t/t_unopt_converge.v:18: Example path: x %Error: Exiting due to diff --git a/test_regress/t/t_unoptflat_simple_2_bad.out b/test_regress/t/t_unoptflat_simple_2_bad.out index bffe4c2f8..c3ce88471 100644 --- a/test_regress/t/t_unoptflat_simple_2_bad.out +++ b/test_regress/t/t_unoptflat_simple_2_bad.out @@ -1,8 +1,8 @@ %Warning-UNOPTFLAT: t/t_unoptflat_simple_2.v:14: Signal unoptimizable: Feedback to clock or circular logic: t.x -%Warning-UNOPTFLAT: Use "/* verilator lint_off UNOPTFLAT */" and lint_on around source to disable this message. -%Warning-UNOPTFLAT: Example path: t/t_unoptflat_simple_2.v:14: t.x -%Warning-UNOPTFLAT: Example path: t/t_unoptflat_simple_2.v:16: ASSIGNW -%Warning-UNOPTFLAT: Example path: t/t_unoptflat_simple_2.v:14: t.x + ... Use "/* verilator lint_off UNOPTFLAT */" and lint_on around source to disable this message. + t/t_unoptflat_simple_2.v:14: Example path: t.x + t/t_unoptflat_simple_2.v:16: Example path: ASSIGNW + t/t_unoptflat_simple_2.v:14: Example path: t.x %Warning-UNOPTFLAT: Widest candidate vars to split: %Warning-UNOPTFLAT: t/t_unoptflat_simple_2.v:14: t.x, width 3, fanout 12 %Warning-UNOPTFLAT: Most fanned out candidate vars to split: diff --git a/test_regress/t/t_var_bad_hide.out b/test_regress/t/t_var_bad_hide.out index 52e25fe37..1bf791004 100644 --- a/test_regress/t/t_var_bad_hide.out +++ b/test_regress/t/t_var_bad_hide.out @@ -1,6 +1,6 @@ %Warning-VARHIDDEN: t/t_var_bad_hide.v:15: Declaration of signal hides declaration in upper scope: top -%Warning-VARHIDDEN: t/t_var_bad_hide.v:12: ... Location of original declaration -%Warning-VARHIDDEN: Use "/* verilator lint_off VARHIDDEN */" and lint_on around source to disable this message. + t/t_var_bad_hide.v:12: ... Location of original declaration + ... Use "/* verilator lint_off VARHIDDEN */" and lint_on around source to disable this message. %Warning-VARHIDDEN: t/t_var_bad_hide.v:21: Declaration of signal hides declaration in upper scope: top -%Warning-VARHIDDEN: t/t_var_bad_hide.v:12: ... Location of original declaration + t/t_var_bad_hide.v:12: ... Location of original declaration %Error: Exiting due to diff --git a/test_regress/t/t_var_bad_hide2.out b/test_regress/t/t_var_bad_hide2.out index 881972ebf..bc506f348 100644 --- a/test_regress/t/t_var_bad_hide2.out +++ b/test_regress/t/t_var_bad_hide2.out @@ -1,4 +1,4 @@ %Warning-VARHIDDEN: t/t_var_bad_hide2.v:13: Declaration of signal hides declaration in upper scope: t -%Warning-VARHIDDEN: t/t_var_bad_hide2.v:6: ... Location of original declaration -%Warning-VARHIDDEN: Use "/* verilator lint_off VARHIDDEN */" and lint_on around source to disable this message. + t/t_var_bad_hide2.v:6: ... Location of original declaration + ... Use "/* verilator lint_off VARHIDDEN */" and lint_on around source to disable this message. %Error: Exiting due to diff --git a/test_regress/t/t_var_bad_sameas.out b/test_regress/t/t_var_bad_sameas.out index 42003a1f3..97ac911e2 100644 --- a/test_regress/t/t_var_bad_sameas.out +++ b/test_regress/t/t_var_bad_sameas.out @@ -1,11 +1,11 @@ %Error: t/t_var_bad_sameas.v:9: Unsupported in C: Cell has the same name as variable: varfirst -%Error: t/t_var_bad_sameas.v:8: ... Location of original declaration + t/t_var_bad_sameas.v:8: ... Location of original declaration %Error: t/t_var_bad_sameas.v:10: Unsupported in C: Task has the same name as cell: varfirst -%Error: t/t_var_bad_sameas.v:9: ... Location of original declaration + t/t_var_bad_sameas.v:9: ... Location of original declaration %Error: t/t_var_bad_sameas.v:13: Unsupported in C: Variable has same name as cell: cellfirst %Error: t/t_var_bad_sameas.v:14: Unsupported in C: Task has the same name as cell: cellfirst -%Error: t/t_var_bad_sameas.v:12: ... Location of original declaration + t/t_var_bad_sameas.v:12: ... Location of original declaration %Error: t/t_var_bad_sameas.v:17: Unsupported in C: Variable has same name as task: taskfirst %Error: t/t_var_bad_sameas.v:18: Unsupported in C: Cell has the same name as task: taskfirst -%Error: t/t_var_bad_sameas.v:16: ... Location of original declaration + t/t_var_bad_sameas.v:16: ... Location of original declaration %Error: Exiting due to diff --git a/test_regress/t/t_var_bad_sv.out b/test_regress/t/t_var_bad_sv.out index 80dfe9fcd..0b64372a4 100644 --- a/test_regress/t/t_var_bad_sv.out +++ b/test_regress/t/t_var_bad_sv.out @@ -1,5 +1,5 @@ %Error: t/t_var_bad_sv.v:7: Unexpected "do": "do" is a SystemVerilog keyword misused as an identifier. -%Error: t/t_var_bad_sv.v:7: Modify the Verilog-2001 code to avoid SV keywords, or use `begin_keywords or --language. + ... Modify the Verilog-2001 code to avoid SV keywords, or use `begin_keywords or --language. %Error: t/t_var_bad_sv.v:8: Unexpected "do": "do" is a SystemVerilog keyword misused as an identifier. %Error: t/t_var_bad_sv.v:8: syntax error, unexpected '(', expecting ')' %Error: Exiting due to diff --git a/test_regress/t/t_var_notfound_bad.out b/test_regress/t/t_var_notfound_bad.out index 485f68d5c..4f35d661c 100644 --- a/test_regress/t/t_var_notfound_bad.out +++ b/test_regress/t/t_var_notfound_bad.out @@ -1,6 +1,6 @@ %Error: t/t_var_notfound_bad.v:14: Can't find definition of variable: nf %Error: t/t_var_notfound_bad.v:15: Can't find definition of 'subsubz' in dotted scope/variable: sub.subsubz -%Error: Known scopes under 'sub': subsub + ... Known scopes under 'sub': subsub %Error: t/t_var_notfound_bad.v:16: Can't find definition of task/function: nofunc %Error: t/t_var_notfound_bad.v:17: Can't find definition of task/function: notask %Error: t/t_var_notfound_bad.v:18: Found definition of 'a_var' as a VAR but expected a task/function diff --git a/test_regress/t/t_var_rsvd_bad.out b/test_regress/t/t_var_rsvd_bad.out index 661c1a96d..0998e311c 100644 --- a/test_regress/t/t_var_rsvd_bad.out +++ b/test_regress/t/t_var_rsvd_bad.out @@ -1,4 +1,4 @@ %Warning-SYMRSVDWORD: t/t_var_rsvd_port.v:11: Symbol matches C++ keyword: 'bool' -%Warning-SYMRSVDWORD: Use "/* verilator lint_off SYMRSVDWORD */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off SYMRSVDWORD */" and lint_on around source to disable this message. %Warning-SYMRSVDWORD: t/t_var_rsvd_port.v:14: Symbol matches C++ keyword: 'switch' %Error: Exiting due to diff --git a/test_regress/t/t_var_types_bad.out b/test_regress/t/t_var_types_bad.out index 5b1f911cd..86e1dcf87 100644 --- a/test_regress/t/t_var_types_bad.out +++ b/test_regress/t/t_var_types_bad.out @@ -4,7 +4,7 @@ %Error: t/t_var_types_bad.v:45: Illegal bit or array select; type does not have a bit range, or bad dimension: type is real %Error: t/t_var_types_bad.v:45: Expected integral (non-real) input to SEL %Warning-REALCVT: t/t_var_types_bad.v:45: Implicit conversion of real to integer -%Warning-REALCVT: Use "/* verilator lint_off REALCVT */" and lint_on around source to disable this message. + ... Use "/* verilator lint_off REALCVT */" and lint_on around source to disable this message. %Error: t/t_var_types_bad.v:46: Illegal bit or array select; type does not have a bit range, or bad dimension: type is real %Error: t/t_var_types_bad.v:46: Expected integral (non-real) input to SEL %Warning-REALCVT: t/t_var_types_bad.v:46: Implicit conversion of real to integer