Опубликован 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.
>>> Подробности
В этом выпуске представлены новые проверки:
пропущенный 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.
>>> Подробности
Ещё новости по теме:
18:20