Check expression width for sanity

Assertion to check for insane expression widths that are likely caused
by compiler bugs.
This commit is contained in:
Stephen Williams 2008-09-28 08:58:08 -07:00
parent 0bb1f9740b
commit 729771e562
2 changed files with 8 additions and 1 deletions

View File

@ -1992,6 +1992,13 @@ void NetExpr::cast_signed(bool flag)
signed_flag_ = flag; signed_flag_ = flag;
} }
void NetExpr::expr_width(unsigned w)
{
// Catch underflow wrap errors.
ivl_assert(*this, w < (UINT_MAX - 256));
width_ = w;
}
bool NetExpr::has_width() const bool NetExpr::has_width() const
{ {
return true; return true;

View File

@ -1581,7 +1581,7 @@ class NetExpr : public LineInfo {
protected: protected:
void expr_width(unsigned w) { width_ = w; } void expr_width(unsigned w);
void cast_signed_base_(bool flag) {signed_flag_ = flag; } void cast_signed_base_(bool flag) {signed_flag_ = flag; }
private: private: