>
>
PVS-Studio 7.07

Святослав Размыслов
Статей: 90

PVS-Studio 7.07

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

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

Между релизами анализатора 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.