From 39a5c731ac7aeac925fa6e5fe5f3851e82d8d988 Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Sat, 26 Jul 2025 15:48:19 -0400 Subject: [PATCH] Tests: Fix missing forward decls (#6202 partial) --- src/verilog.y | 3 ++- test_regress/t/t_enum_bad_circdecl.out | 14 +++++++------- test_regress/t/t_enum_bad_circdecl.v | 7 +++---- test_regress/t/t_enum_recurse_bad2.out | 4 ++-- test_regress/t/t_enum_recurse_bad2.v | 1 + ...d_nested_typedef.py => t_typedef_fwd_nested.py} | 2 +- ...ard_nested_typedef.v => t_typedef_fwd_nested.v} | 1 + 7 files changed, 17 insertions(+), 15 deletions(-) rename test_regress/t/{t_forward_nested_typedef.py => t_typedef_fwd_nested.py} (93%) rename test_regress/t/{t_forward_nested_typedef.v => t_typedef_fwd_nested.v} (98%) diff --git a/src/verilog.y b/src/verilog.y index 834b79b96..44354aece 100644 --- a/src/verilog.y +++ b/src/verilog.y @@ -7592,7 +7592,8 @@ class_item: // ==IEEE: class_item { const string cgName = $1->name(); $1->name("__vlAnonCG_" + cgName); - AstVar* const newp = new AstVar{$1, VVarType::VAR, cgName, VFlagChildDType{}, new AstRefDType($1, $1->name())}; + AstVar* const newp = new AstVar{$1->fileline(), VVarType::VAR, cgName, + VFlagChildDType{}, new AstRefDType($1->fileline(), $1->name())}; $$ = addNextNull($1, newp); } // // local_parameter_declaration under parameter_declaration diff --git a/test_regress/t/t_enum_bad_circdecl.out b/test_regress/t/t_enum_bad_circdecl.out index f3e6e08d0..97448fd94 100644 --- a/test_regress/t/t_enum_bad_circdecl.out +++ b/test_regress/t/t_enum_bad_circdecl.out @@ -1,9 +1,9 @@ -%Error: t/t_enum_bad_circdecl.v:11:6: Typedef has self-reference: 'bad_redecl' - : ... note: In instance 't' - 11 | } bad_redecl; - | ^~~~~~~~~~ - t/t_enum_bad_circdecl.v:9:17: ... Location of reference - 9 | typedef enum bad_redecl [2:0] { - | ^~~~~~~~~~ +%Error: t/t_enum_bad_circdecl.v:10:41: Typedef has self-reference: 'bad_redecl' + : ... note: In instance 't' + 10 | typedef enum bad_redecl [2:0] {VALUE} bad_redecl; + | ^~~~~~~~~~ + t/t_enum_bad_circdecl.v:10:16: ... Location of reference + 10 | typedef enum bad_redecl [2:0] {VALUE} bad_redecl; + | ^~~~~~~~~~ ... See the manual at https://verilator.org/verilator_doc.html?v=latest for more assistance. %Error: Exiting due to diff --git a/test_regress/t/t_enum_bad_circdecl.v b/test_regress/t/t_enum_bad_circdecl.v index bb5478c50..8599269a3 100644 --- a/test_regress/t/t_enum_bad_circdecl.v +++ b/test_regress/t/t_enum_bad_circdecl.v @@ -4,10 +4,9 @@ // any use, without warranty, 2020 by Wilson Snyder. // SPDX-License-Identifier: CC0-1.0 -module t(); +module t; - typedef enum bad_redecl [2:0] { - VALUE - } bad_redecl; + typedef enum bad_redecl; + typedef enum bad_redecl [2:0] {VALUE} bad_redecl; endmodule diff --git a/test_regress/t/t_enum_recurse_bad2.out b/test_regress/t/t_enum_recurse_bad2.out index 0c481a895..bc0e8fe41 100644 --- a/test_regress/t/t_enum_recurse_bad2.out +++ b/test_regress/t/t_enum_recurse_bad2.out @@ -1,5 +1,5 @@ -%Error: t/t_enum_recurse_bad2.v:7:14: Self-referential enumerated type definition - 7 | typedef enum foo_t { A = 'b0, B = 'b1 } foo_t; +%Error: t/t_enum_recurse_bad2.v:8:14: Self-referential enumerated type definition + 8 | typedef enum foo_t { A = 'b0, B = 'b1 } foo_t; | ^~~~~ ... See the manual at https://verilator.org/verilator_doc.html?v=latest for more assistance. %Error: Exiting due to diff --git a/test_regress/t/t_enum_recurse_bad2.v b/test_regress/t/t_enum_recurse_bad2.v index 8cec4c4e0..449b05bfa 100644 --- a/test_regress/t/t_enum_recurse_bad2.v +++ b/test_regress/t/t_enum_recurse_bad2.v @@ -4,4 +4,5 @@ // any use, without warranty, 2019 by Wilson Snyder. // SPDX-License-Identifier: CC0-1.0 +typedef enum foo_t; typedef enum foo_t { A = 'b0, B = 'b1 } foo_t; diff --git a/test_regress/t/t_forward_nested_typedef.py b/test_regress/t/t_typedef_fwd_nested.py similarity index 93% rename from test_regress/t/t_forward_nested_typedef.py rename to test_regress/t/t_typedef_fwd_nested.py index d4f986441..dbdaf4551 100755 --- a/test_regress/t/t_forward_nested_typedef.py +++ b/test_regress/t/t_typedef_fwd_nested.py @@ -9,7 +9,7 @@ import vltest_bootstrap -test.scenarios('simulator') +test.scenarios('simulator_st') test.compile() diff --git a/test_regress/t/t_forward_nested_typedef.v b/test_regress/t/t_typedef_fwd_nested.v similarity index 98% rename from test_regress/t/t_forward_nested_typedef.v rename to test_regress/t/t_typedef_fwd_nested.v index ff643e21c..e6e99040b 100644 --- a/test_regress/t/t_forward_nested_typedef.v +++ b/test_regress/t/t_typedef_fwd_nested.v @@ -6,6 +6,7 @@ typedef class Bar; typedef Bar Baz; +typedef class Quux; typedef Quux #(16, 32) Quux_t; typedef Quux_t Quuux_t;