18.01.2022

Опубликован cppcheck 2.6

Вышла новая версия cppcheck — статического анализатора исходного кода для языков C и C++.

В этом выпуске представлены новые проверки:

  • пропущенный return в функции;
  • запись перекрывающихся (overlapping) данных, обнаружение UB;
  • сравнение с значением вне допустимого диапазона типов;
  • отключение copy elision из-за использования return std::move(local);
  • открытие файла на чтение и запись в разных потоках (streams).

Также внесены улучшения:

  • Поддерживаются цветов в выводе диагностик на Unix-based платформ.
  • Добавлен символьный анализ для ValueFlow.
  • Правила, использующие «define» tokenlist, могут быть сопоставлены и с #include.
  • Библиотечный тег может использовать тег , что позволяет задать yields или specify для контейнера, принимаемого входным аргументом свободной функции (например, std::size, std::empty, std::begin, std::end, и т.д);
  • Библиотечный тег может задавать тег для умных указателей, реализующих единоличное владение. Реализовано предупреждение о провисших ссылках на такие указатели;
  • Исправлены проблемы при использовании флага --cppcheck-build-dir;
  • htmlreport теперь может выводить информацию об авторе (получаемую с помощью git blame);
  • Больше предупреждений о не-константных переменных, которые можно сделать константными.

Помимо этого, была завершена проверка соответствия исходного кода стандарту MISRA C 2012: реализованы все правила MISRA C 2012, кроме 1.1, 1.2 (должны обеспечиваться компилятором) и 17.3 (может обеспечиваться компилятором), включая правила в поправках 1 и 2.

Исходный код анализатора распространяется по лицензии GPLv3.

>>> Подробности

Источник.