Cppcheck встроенное подавление при использовании compile_commands. json - PullRequest
1 голос
/ 28 марта 2020

Я пытаюсь узнать о cppcheck, и поэтому я интегрирую его в сборку travis моего примера проекта. Благодаря cppcheck я исправил много проблем, но есть некоторые ложные срабатывания, которые я хотел бы игнорировать с помощью встроенного подавления.

a. cpp

struct A {
  int i;
};

// cppcheck-suppress unusedFunction
A operator+(const A &a1, const A &a2) {
  return A{a1.i + a2.i};
}

int main() {
  return 0;
}

compile_commands. json

[
  {
    "directory": "/path/to/source",
    "command": "/usr/bin/clang++-9 -std=gnu++17 -o a.o -c a.cpp",
    "file": "a.cpp"
  }
]

Когда я запускаю cppcheck (версия 1.82) как cppcheck --enable=all --inline-suppr a.cpp, тогда это нормально. Но когда я запускаю его с файлом compile_commands. json, таким как cppcheck --enable=all --inline-suppr --project=compile_commands.json, то получаю следующий результат:

Checking a.cpp ...
[a.cpp:6]: (style) The function 'operator+' is never used.

Есть ли какая-либо задокументированная причина, почему cppcheck ведет себя по-разному в упомянутых случаях? Если нет, то возможно ли, что это ошибка?

1 Ответ

1 голос
/ 28 марта 2020

Я предполагаю, что это была ошибка в версии 1.82, потому что в более новой версии она работает отлично.

...