PVS-Studio 7.07


Пока в мире останавливаются производства и закрываются компании, программисты продолжают работать удалённо. Так, наша команда подготовила очередной релиз, девизом которого является повышение стабильности.

https://import.viva64.com/docx/blog/0728_Release_7_07_ru/image1.png

Работа над ошибками

Между релизами анализатора Microsoft выпустила несколько обновлений для компилятора Visual C++, в которых появилась начальная поддержка стандарта C++20, например, концептов. Обычно компании не спешат обновлять компиляторы, т.к. самые свежие версии могут быть не самыми стабильными. Но такие компании есть, причём и среди наших клиентов. Некоторые пользователи могли столкнуться с такой ошибкой:

V003 Unrecognized error found: PtreeCpp11Initializer was constructed incorrectly. Consider inspecting the '__cdecl VivaCore::PtreeCpp11Initializer::PtreeCpp11Initializer(const char *,class VivaCore::Ptree *,class VivaCore::Ptree *)' constructor.

С радостью сообщаем, что в PVS-Studio 7.07 эта ошибка исправлена. Концепты поддержаны. Тут важно отметить, что поддержка новых стандартов разработчиками компиляторов и разработчиками анализаторов отличается. Для нас это не очень болезненный процесс, поэтому быстро справились с задачей. А в будущем подумаем, как синхронизировать наши обновления с обновлениями компиляторов.

Новые диагностики

Кроме повышения стабильности и подготовки новых продуктов (об этом будет далее), мы сделали несколько новых диагностических правил:

  • V1053. Calling the 'foo' virtual function in the constructor/destructor may lead to unexpected result at runtime.
  • V1054. Object slicing. Derived class object was copied to the base class object.
  • V1055. The 'sizeof' expression returns the size of the container type, not the number of elements. Consider using the 'size()' function.
  • V2573. MISRA. Identifiers that start with '__' or '_[A-Z]' are reserved.

Плагин для SonarQube

Мы давно выпустили плагин для SonarQube с поддержкой работы в Windows и Linux. Работа плагина в macOS не была востребована до недавнего времени, но, тем не менее, спрос появился, и добавили платформу в поддержку. Смотрите обновлённую документацию.

C# анализатор для Linux и macOS

Те новые продукты, на которые я ранее ссылался, C# анализатор для Linux и macOS и плагин для JetBrains Rider, к сожалению, не вошли в этот релиз, как мы ожидали. Но мы проделали большую работу, и новые продукты готовы. Примерно месяц назад мы объявили сбор заявок на участие в Beta-тесте. Сразу после релиза мы планируем запустить тестирование, так что если вы ещё не подали заявку, то это всё ещё можно сделать.

Другие обновления

  • В утилите для преобразования XML отчётов анализатора (PlogConverter) добавлена поддержка формата для Continuous Integration сервера TeamCity.
  • Сommand line анализатор Visual Studio \ MSBuild проектов (PVS-Studio_Cmd.exe) теперь умеет выбирать отдельные проекты для анализа с помощью флагов --selectProjects / --excludeProjects.


Найдите ошибки в своем C, C++, C# и Java коде

Предлагаем попробовать проверить код вашего проекта с помощью анализатора кода PVS-Studio. Одна найденная в нём ошибка скажет вам о пользе методологии статического анализа кода больше, чем десяток статей.

goto PVS-Studio;



Найденные ошибки

Проверено проектов
409
Собрано ошибок
14 072

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;
Этот сайт использует куки и другие технологии, чтобы предоставить вам более персонализированный опыт. Продолжая просмотр страниц нашего веб-сайта, вы принимаете условия использования этих файлов. Если вы не хотите, чтобы ваши данные обрабатывались, пожалуйста, покиньте данный сайт. Подробнее →
Принять