write_verilog: dump zero width sigspecs correctly.
authorwhitequark <whitequark@whitequark.org>
Sat, 11 Dec 2021 12:01:52 +0000 (12:01 +0000)
committerwhitequark <whitequark@whitequark.org>
Sat, 11 Dec 2021 12:01:52 +0000 (12:01 +0000)
commit86f2804dc3f80cd74349c62888376c8596fb1856
tree6782061feabf37590b146aa194f66717160e146a
parent8e91857fabe75e032810bb09a22af1b18cb8172f
write_verilog: dump zero width sigspecs correctly.

Before this commit, zero width sigspecs were dumped as "" (empty
string). Unfortunately, 1364-2005 5.2.3.3 indicates that an empty
string is equivalent to "\0", and is 8 bits wide, so that's wrong.

After this commit, a replication operation with a count of zero is
used instead, which is explicitly permitted per 1364-2005 5.1.14,
and is defined to have size zero. (Its operand has to have a non-zero
size for it to be legal, though.)

PR #1203 has addressed this issue before, but in an incomplete way.
backends/verilog/verilog_backend.cc