Подтвердить что ты не робот

Набор правил для cppcheck

Cppcheck позволяет создавать свои собственные файлы правил, но я не знаю, сколько из функций cppcheck выставляется.

Кто-нибудь работает над набором, который будет применять JSF или MISRA правила?

4b9b3361

Ответ 1

Вы не сможете реализовать все правила и директивы MISRA/JSF в качестве правил cppcheck, в основном только простые, ограничивающие определенные функции языка C и конструкции или связанные с стилем (некоторые из них приходят на ум: пробелы перед/после./- > , # аргументов в одной строке, использование объединений для предоставления различных методов доступа к памяти, наличие unsigned/signed до char и т.д.).

Пользователь Ира Бакстер в значительной степени прибил его в comment по другому вопросу, касающемуся cppcheck: not все может быть представлено/упрощено как шаблон. Использование шаблонов для пользовательских правил затрудняет обработку и обнаружение проблем более высокого уровня, связанных, например, с типами (например, sizeof() для типов; вам придется анализировать и собирать токены (typedefs, enums), используемые как представление типа), наследование (например, классы, включая производные, используемые как виртуальные, так и не виртуальные) и область, Они должны быть жестко закодированы в cppcheck (вы всегда можете использовать fork cppcheck...)

В любом случае, вы коснулись правил MISRA (или JSF)? Это требование для проекта? Если нет, вы можете получить копию рекомендаций MISRA (у вас уже есть JSF) и проверить те, которые вы можете реализовать, используя шаблоны PCRE. Если это требование, я предлагаю вам "инвестировать" в коммерческий продукт, который проверяет руководство MISRA/JSF и использует оба инструмента.

Последнее замечание: вам не нужны все правила MISRA/JSF, и многие инструменты оставляют небольшой процент от них.

Ответ 2

Из того, что я могу сказать, просматривая документацию, он выглядит довольно разоблаченным. http://cppcheck.sourceforge.net/manual.pdf.