diff --git a/ivtest/ivltests/sv_type_identifier_block_label_name.v b/ivtest/ivltests/sv_type_identifier_block_label_name.v new file mode 100644 index 000000000..36dc7fc7c --- /dev/null +++ b/ivtest/ivltests/sv_type_identifier_block_label_name.v @@ -0,0 +1,28 @@ +// Check that block labels can shadow visible type identifiers. + +typedef int T; + +module test; + + reg failed; + reg value; + + initial begin + failed = 1'b0; + value = 0; + + begin : T + value = value + 1; + end : T + + if (value !== 1) begin + $display("FAILED(%0d). block labels did not hide typedefs", `__LINE__); + failed = 1'b1; + end + + if (!failed) begin + $display("PASSED"); + end + end + +endmodule diff --git a/ivtest/ivltests/sv_type_identifier_fork_label_name.v b/ivtest/ivltests/sv_type_identifier_fork_label_name.v new file mode 100644 index 000000000..507312c78 --- /dev/null +++ b/ivtest/ivltests/sv_type_identifier_fork_label_name.v @@ -0,0 +1,28 @@ +// Check that fork block labels can shadow visible type identifiers. + +typedef int T; + +module test; + + reg failed; + reg value; + + initial begin + failed = 1'b0; + value = 1'b0; + + fork : T + value = 1'b1; + join : T + + if (value !== 1'b1) begin + $display("FAILED(%0d). fork label did not hide typedef", `__LINE__); + failed = 1'b1; + end + + if (!failed) begin + $display("PASSED"); + end + end + +endmodule diff --git a/ivtest/ivltests/sv_type_identifier_generate_label_name.v b/ivtest/ivltests/sv_type_identifier_generate_label_name.v new file mode 100644 index 000000000..01ac046e8 --- /dev/null +++ b/ivtest/ivltests/sv_type_identifier_generate_label_name.v @@ -0,0 +1,25 @@ +// Check that generate block labels can shadow visible type identifiers. + +typedef int G; +module test; + + reg failed; + + if (1) begin : G + localparam int VALUE = 1; + end : G + + initial begin + failed = 1'b0; + + if (G.VALUE != 1) begin + $display("FAILED(%0d). generate labels did not hide typedefs", `__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 ed072cda6..19f2caa98 100644 --- a/ivtest/regress-vvp.list +++ b/ivtest/regress-vvp.list @@ -386,10 +386,13 @@ sv_soft_packed_union vvp_tests/sv_soft_packed_union.json sv_soft_packed_union_fail1 vvp_tests/sv_soft_packed_union_fail1.json sv_super_member_fail vvp_tests/sv_super_member_fail.json sv_type_identifier_ams_name_fields vvp_tests/sv_type_identifier_ams_name_fields.json +sv_type_identifier_block_label_name vvp_tests/sv_type_identifier_block_label_name.json sv_type_identifier_config_name vvp_tests/sv_type_identifier_config_name.json sv_type_identifier_enum_item_name vvp_tests/sv_type_identifier_enum_item_name.json sv_type_identifier_foreach_name vvp_tests/sv_type_identifier_foreach_name.json +sv_type_identifier_fork_label_name vvp_tests/sv_type_identifier_fork_label_name.json sv_type_identifier_function_name vvp_tests/sv_type_identifier_function_name.json +sv_type_identifier_generate_label_name vvp_tests/sv_type_identifier_generate_label_name.json sv_type_identifier_genvar_name vvp_tests/sv_type_identifier_genvar_name.json 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 diff --git a/ivtest/vvp_tests/sv_type_identifier_block_label_name.json b/ivtest/vvp_tests/sv_type_identifier_block_label_name.json new file mode 100644 index 000000000..badf56ebb --- /dev/null +++ b/ivtest/vvp_tests/sv_type_identifier_block_label_name.json @@ -0,0 +1,5 @@ +{ + "type" : "normal", + "source" : "sv_type_identifier_block_label_name.v", + "iverilog-args" : [ "-g2005-sv" ] +} diff --git a/ivtest/vvp_tests/sv_type_identifier_fork_label_name.json b/ivtest/vvp_tests/sv_type_identifier_fork_label_name.json new file mode 100644 index 000000000..2aca16cd9 --- /dev/null +++ b/ivtest/vvp_tests/sv_type_identifier_fork_label_name.json @@ -0,0 +1,5 @@ +{ + "type" : "normal", + "source" : "sv_type_identifier_fork_label_name.v", + "iverilog-args" : [ "-g2005-sv" ] +} diff --git a/ivtest/vvp_tests/sv_type_identifier_generate_label_name.json b/ivtest/vvp_tests/sv_type_identifier_generate_label_name.json new file mode 100644 index 000000000..488dea150 --- /dev/null +++ b/ivtest/vvp_tests/sv_type_identifier_generate_label_name.json @@ -0,0 +1,9 @@ +{ + "type" : "normal", + "source" : "sv_type_identifier_generate_label_name.v", + "iverilog-args" : [ "-g2005-sv" ], + "vlog95" : { + "__comment" : "Named generate scopes are not translated by vlog95", + "type" : "CE" + } +}