diff options
-rw-r--r-- | passes/cmds/select.cc | 3 | ||||
-rw-r--r-- | tests/select/no_warn_prefixed_arg_memb.ys | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/passes/cmds/select.cc b/passes/cmds/select.cc index fc693d20e..b64b077e4 100644 --- a/passes/cmds/select.cc +++ b/passes/cmds/select.cc @@ -775,7 +775,8 @@ static void select_stmt(RTLIL::Design *design, std::string arg, bool disable_emp arg_mod = arg.substr(0, pos); if (!prefixed) arg_mod_found[arg_mod] = false; arg_memb = arg.substr(pos+1); - if (!prefixed) arg_memb_found[arg_memb] = false; + bool arg_memb_prefixed = GetSize(arg_memb) >= 2 && isalpha(arg_memb[0]) && arg_memb[1] == ':'; + if (!arg_memb_prefixed) arg_memb_found[arg_memb] = false; } } diff --git a/tests/select/no_warn_prefixed_arg_memb.ys b/tests/select/no_warn_prefixed_arg_memb.ys new file mode 100644 index 000000000..596a6ed70 --- /dev/null +++ b/tests/select/no_warn_prefixed_arg_memb.ys @@ -0,0 +1,5 @@ +logger -expect-no-warnings +read_verilog ../../examples/igloo2/example.v +hierarchy +proc +select example/t:$add |