Warn when a negative value is assigned to a genvar (-g2001 only) (issue #567)
(cherry picked from commit 668f9850bc)
This commit is contained in:
parent
cdbc2c466f
commit
48ab896fa6
|
|
@ -115,6 +115,7 @@ class PGenerate : public PNamedItem, public LexicalScope {
|
||||||
SymbolType symbol_type() const;
|
SymbolType symbol_type() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void check_for_valid_genvar_value_(long value);
|
||||||
bool generate_scope_loop_(Design*des, NetScope*container);
|
bool generate_scope_loop_(Design*des, NetScope*container);
|
||||||
bool generate_scope_condit_(Design*des, NetScope*container, bool else_flag);
|
bool generate_scope_condit_(Design*des, NetScope*container, bool else_flag);
|
||||||
bool generate_scope_case_(Design*des, NetScope*container);
|
bool generate_scope_case_(Design*des, NetScope*container);
|
||||||
|
|
|
||||||
|
|
@ -895,6 +895,18 @@ bool PGenerate::generate_scope(Design*des, NetScope*container)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PGenerate::check_for_valid_genvar_value_(long value)
|
||||||
|
{
|
||||||
|
if (generation_flag < GN_VER2005 && value < 0) {
|
||||||
|
cerr << get_fileline() << ": warning: A negative value (" << value
|
||||||
|
<< ") has been assigned to genvar '" << loop_index << "'."
|
||||||
|
<< endl;
|
||||||
|
cerr << get_fileline() << ": : This is illegal in "
|
||||||
|
"Verilog-2001. Use at least -g2005 to remove this warning."
|
||||||
|
<< endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is the elaborate scope method for a generate loop.
|
* This is the elaborate scope method for a generate loop.
|
||||||
*/
|
*/
|
||||||
|
|
@ -939,6 +951,7 @@ bool PGenerate::generate_scope_loop_(Design*des, NetScope*container)
|
||||||
}
|
}
|
||||||
|
|
||||||
genvar = init->value().as_long();
|
genvar = init->value().as_long();
|
||||||
|
check_for_valid_genvar_value_(genvar);
|
||||||
delete init_ex;
|
delete init_ex;
|
||||||
|
|
||||||
if (debug_scopes)
|
if (debug_scopes)
|
||||||
|
|
@ -1009,6 +1022,7 @@ bool PGenerate::generate_scope_loop_(Design*des, NetScope*container)
|
||||||
<< genvar << " to " << step->value().as_long() << endl;
|
<< genvar << " to " << step->value().as_long() << endl;
|
||||||
|
|
||||||
genvar = step->value().as_long();
|
genvar = step->value().as_long();
|
||||||
|
check_for_valid_genvar_value_(genvar);
|
||||||
container->genvar_tmp_val = genvar;
|
container->genvar_tmp_val = genvar;
|
||||||
delete step;
|
delete step;
|
||||||
delete test_ex;
|
delete test_ex;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue