Cleanup REDEFMACRO to not show two separate warnings

This commit is contained in:
Wilson Snyder 2021-03-17 20:33:31 -04:00
parent 96f9f8558b
commit 334e42b38e
2 changed files with 13 additions and 10 deletions

View File

@ -335,12 +335,15 @@ void V3PreProcImp::define(FileLine* fl, const string& name, const string& value,
if (!(defValue(name) == value
&& defParams(name) == params)) { // Duplicate defs are OK
fl->v3warn(REDEFMACRO, "Redefining existing define: '"
<< name << "', with different value: " << value
<< (params == "" ? "" : " ") << params);
defFileline(name)->v3warn(REDEFMACRO, "Previous definition is here, with value: "
<< defValue(name)
<< (defParams(name).empty() ? "" : " ")
<< defParams(name));
<< name << "', with different value: '" << value
<< (params == "" ? "" : " ") << params << "'\n"
<< fl->warnContextPrimary() << '\n'
<< defFileline(name)->warnOther()
<< "... Location of previous definition, with value: '"
<< defValue(name)
<< (defParams(name).empty() ? "" : " ")
<< defParams(name) << "'\n"
<< defFileline(name)->warnContextSecondary());
}
undef(name);
}

View File

@ -1,6 +1,6 @@
%Warning-REDEFMACRO: t/t_pp_dupdef.v:11:20: Redefining existing define: 'DUP', with different value: barney
%Warning-REDEFMACRO: t/t_pp_dupdef.v:11:20: Redefining existing define: 'DUP', with different value: 'barney'
t/t_pp_dupdef.v:11:20: ... Location of previous definition, with value: 'fred'
... Use "/* verilator lint_off REDEFMACRO */" and lint_on around source to disable this message.
%Warning-REDEFMACRO: t/t_pp_dupdef.v:11:20: Previous definition is here, with value: fred
%Warning-REDEFMACRO: t/t_pp_dupdef.v:14:33: Redefining existing define: 'DUPP', with different value: paramed(x,z) (x*z)
%Warning-REDEFMACRO: t/t_pp_dupdef.v:14:33: Previous definition is here, with value: paramed(x) (x)
%Warning-REDEFMACRO: t/t_pp_dupdef.v:14:33: Redefining existing define: 'DUPP', with different value: 'paramed(x,z) (x*z)'
t/t_pp_dupdef.v:14:33: ... Location of previous definition, with value: 'paramed(x) (x)'
%Error: Exiting due to