Обновить
44
0
Георгий Грибков@GGribkov

Senior Software Engineer at Activision Blizzard

Отправить сообщение
PVS-Studio на них есть :) Мимо такой игры мы пройти не смогли.
Если вам интересно посмотреть, какие ошибки мы там нашли, предлагаю почитать статью:
VVVVVV??? VVVVVV!!!
Да, готовят! Сегодня выйдет статья :)
Тут пропал пробел перед этой частицей. Спасибо за внимательность!
Еще как можно)
Вот руководство по запуску анализа на Travis CI:
habr.com/ru/company/pvs-studio/blog/458072
А вот пример:
habr.com/ru/company/pvs-studio/blog/464645
Если не секрет — с чем связана ваша заинтересованность в старых изданиях MISRA C? Ведь более современные версии стандарта содержат как новые правила, так и переосмысленные и доработанные старые. Ситуация здесь примерно такая же, как у разных изданий технической литературы — читать стоит самое последнее, ведь так?

P. S. Мы сейчас усиленно занимаемся поддержкой MISRA C:2012 и MISRA C++:2008.
На момент написания комментария в PVS-Studio есть 50 готовых MISRA-диагностик и еще около 20 на подходе (одна диагностика анализатора — это обычно несколько правил MISRA). И хотя наш анализатор уже можно использовать для проверки соответствия стандарту MISRA, мы продолжаем стремиться к полному покрытию всех правил. Поэтому ваше ожидание не проходит зря :)
PVS-Studio умеет встраиваться в различные IDE. Например, в виде плагина для Visual Studio или IntelliJ IDEA. Поэтому искать ошибки и просматривать отчет можно не выходя из IDE. Поэтому перейти к определению символа можно без всяких проблем.
Файл вполне может содержать терминальные нули. Например, это может использоваться, чтобы удобно разбить содержимое буфера на строки.
Да, содержимое файла может быть длиннее буфера. Именно поэтому вторым параметром функция fgets принимает число, ограничивающее количество считываемых символов.
Если ты ничего не введешь и нажмешь Enter, то fgets считает символ переноса строки и вернет указатель на "\n\0".
Но в примере, который демонстрируется на видео, вводится не пустая строка, а строка, которая начинается с символа '\0'. Можно подробнее почитать об этом по ссылке на оригинальную статью.
Я заметил, что ошибки, связанные с именами вида 'var1', 'var2', встречаются практически в каждом проверенном проекте. Создается впечатление: «Назвал переменные очень похоже — жди беды». Неужели ошибки такого рода превратились в пандемию? Самое обидное, что их и правда бывает сложно обнаружить с помощью Code Review. Конечно, их можно избежать, просто давая сущностям более различимые имена, но соблазн бывает велик)
2

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность