From 15277c9fa480def3b435d456b020ba819df31902 Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Sun, 5 Jul 2026 14:39:50 -0700 Subject: [PATCH] Add regression test for package names shadowing type identifiers Check that a package declaration can use a visible type identifier as its package name. Also check that the resulting package scope can be selected with a scope-qualified reference. Signed-off-by: Lars-Peter Clausen --- .../sv_type_identifier_package_name.v | 30 +++++++++++++++++++ ivtest/regress-vvp.list | 1 + .../sv_type_identifier_package_name.json | 5 ++++ 3 files changed, 36 insertions(+) create mode 100644 ivtest/ivltests/sv_type_identifier_package_name.v create mode 100644 ivtest/vvp_tests/sv_type_identifier_package_name.json diff --git a/ivtest/ivltests/sv_type_identifier_package_name.v b/ivtest/ivltests/sv_type_identifier_package_name.v new file mode 100644 index 000000000..3a470d562 --- /dev/null +++ b/ivtest/ivltests/sv_type_identifier_package_name.v @@ -0,0 +1,30 @@ +// Check that package names can shadow visible type identifiers. + +package p; + typedef int T; +endpackage + +import p::*; + +package T; + parameter int VALUE = 23; +endpackage + +module test; + + reg failed; + + initial begin + failed = 1'b0; + + if (T::VALUE !== 23) begin + $display("FAILED(%0d). Package name did not hide typedef", `__LINE__); + failed = 1'b1; + end + + if (!failed) begin + $display("PASSED"); + end + end + +endmodule diff --git a/ivtest/regress-vvp.list b/ivtest/regress-vvp.list index 26594699e..ed072cda6 100644 --- a/ivtest/regress-vvp.list +++ b/ivtest/regress-vvp.list @@ -395,6 +395,7 @@ sv_type_identifier_modport_name vvp_tests/sv_type_identifier_modport_name.json sv_type_identifier_module_name vvp_tests/sv_type_identifier_module_name.json sv_type_identifier_net_name vvp_tests/sv_type_identifier_net_name.json sv_type_identifier_package_item vvp_tests/sv_type_identifier_package_item.json +sv_type_identifier_package_name vvp_tests/sv_type_identifier_package_name.json sv_type_identifier_parameter_decl_name vvp_tests/sv_type_identifier_parameter_decl_name.json sv_type_identifier_parameter_port_name vvp_tests/sv_type_identifier_parameter_port_name.json sv_type_identifier_parameter_type_decl_name vvp_tests/sv_type_identifier_parameter_type_decl_name.json diff --git a/ivtest/vvp_tests/sv_type_identifier_package_name.json b/ivtest/vvp_tests/sv_type_identifier_package_name.json new file mode 100644 index 000000000..dd4076748 --- /dev/null +++ b/ivtest/vvp_tests/sv_type_identifier_package_name.json @@ -0,0 +1,5 @@ +{ + "type" : "normal", + "source" : "sv_type_identifier_package_name.v", + "iverilog-args" : [ "-g2005-sv" ] +}