Reinstate error recovery for range expressions.

If an error is found whilst elaborating a range expression in a signal
declaration, create a dummy range and continue elaboration. This stops
the compiler reporting an error every time that signal is referenced.
This commit is contained in:
Martin Whitaker 2014-10-31 21:42:23 +00:00
parent b286b76134
commit 871d447ff7
2 changed files with 4 additions and 4 deletions

View File

@ -996,10 +996,6 @@ NetNet* PWire::elaborate_sig(Design*des, NetScope*scope) const
<< ". Now check for consistency." << endl;
}
/* If we find errors here, then give up on this signal. */
if (bad_range)
return 0;
/* We have a port size error */
if (port_set_ && net_set_ && !test_ranges_eeq(plist, nlist)) {

View File

@ -972,6 +972,10 @@ bool evaluate_ranges(Design*des, NetScope*scope,
delete texpr;
/* Error recovery */
if (bad_lsb) use_lsb = 0;
if (bad_msb) use_msb = use_lsb;
llist.push_back(netrange_t(use_msb, use_lsb));
}