write_verilog: dump zero width constants correctly.
authorwhitequark <whitequark@whitequark.org>
Tue, 16 Jul 2019 20:57:05 +0000 (20:57 +0000)
committerwhitequark <whitequark@whitequark.org>
Tue, 16 Jul 2019 21:00:09 +0000 (21:00 +0000)
commit4ff44d85a5cb63c7b3f67c2f2398e62db7f199eb
tree536cba16037cc59b32c3a8fc6a64181d43a2f5cd
parentf8e470c1d1178680034a28a9f28b161acf667701
write_verilog: dump zero width constants correctly.

Before this commit, zero width constants 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.)

Fixes #948 (again).
backends/verilog/verilog_backend.cc