Internals: Improve cppcheck flow and fix up issues (#6311)

Added cppcheck-suppressions.txt in the repo root. You can add new
patterns in there instead of having to parse the XML output.

Also configure to add the -D__GNUC__ preprocessor macro, which makes it
understand UASSERT (it understands the 'noreturn' function attribute).

Added some case by case specific suppressions and fixed up other code,
especially in V3Ast*h and V3Dfg*.h, including code generated by astgen
that had some no-ops that irks cppcheck.

One thing it does not seem to like is `const` class members with default
initializers in the class. It will assume that's always the value, even
if overridden in the constructor. We had few so removed them.

With that a lot of files in `src/` are now clean or only have a handful
of issues. Therefore, I have also deleted cppcheck_filtered, and made it
produce human readable output straight to the terminal.

Regarding cleaning up the reported nits, I kind of got bored after
V3[A-E] so pausing here. Apologies for the merge conflicts.

Tested with cppcheck 2.13.0
This commit is contained in:
Geza Lore
2025-08-19 22:02:10 +01:00
committed by GitHub
parent 636a6b8cd2
commit a0edd4e907
44 changed files with 357 additions and 468 deletions
+5 -5
View File
@@ -33,14 +33,14 @@ class V3DiagSarifImp final {
// METHODS
void calculate() {
for (auto& msgr : m_messages)
for (const VErrorMessage& msgr : m_messages)
if (msgr.code().isNamed()) m_codes.emplace(msgr.code());
int i = 0;
for (const auto& code : m_codes) m_codeIndex[code] = i++;
for (const V3ErrorCode& code : m_codes) m_codeIndex[code] = i++;
}
void putRules(V3OutJsonFile& of) const {
for (const auto& code : m_codes) {
for (const V3ErrorCode& code : m_codes) {
of.begin().put("id", code.ascii()).put("helpUri", code.url()).end();
}
}
@@ -97,7 +97,7 @@ class V3DiagSarifImp final {
of.begin("message");
putText(of, first_clean, first_fmt);
of.end();
if (auto fl = msg.fileline()) {
if (const FileLine* const fl = msg.fileline()) {
of.begin("locations", '[').begin();
putLocation(of, fl);
of.end();
@@ -175,7 +175,7 @@ public:
.end();
of.begin("results", '[');
for (auto& msgr : m_messages) putResult(of, msgr);
for (const VErrorMessage& msgr : m_messages) putResult(of, msgr);
of.end();
of.end(); // runs ]