>
>
PVS-Studio 7.16, взятие рубежей: MISRA …

Андрей Карпов
Статей: 674

PVS-Studio 7.16, взятие рубежей: MISRA C, Visual Studio 2022, .NET 6

Последний релиз в уходящем 2021 году закрывает сразу несколько важных задач, поставленных перед командой PVS-Studio. Добавлена поддержка Visual Studio 2022, платформы .NET 6 и C# 10.0. Для стандарта MISRA C реализованы все диагностики категории Mandatory.

Поддержка Visual Studio 2022

В PVS-Studio добавлена поддержка Visual Studio 2022. Анализатор можно использовать для проверки кода C++ и C# проектов. Поддерживаются проекты, использующие новые версии стандартных C++ и .NET библиотек.

С точки зрения пользователя, не произошло никаких серьёзных изменений в интерфейсе анализатора и в принципах работы с ним. Да, нам теперь стоит написать обновлённый вариант статьи 2019 года "PVS-Studio для Visual Studio", но в целом приведённые в ней описания актуальны.

Поддержка .NET 6 и C# 10.0

В C# анализаторе PVS-Studio добавлена поддержка платформы .NET 6 для Windows, Linux и macOS, а также новой версии языка: C# 10.0. Кроме того, сам C# анализатор под Linux и macOS теперь работает под .NET 6.

Пользуясь случаем, предлагаем вашему вниманию статью "Обзор нововведений в C# 10".

MISRA C

В PVS-Studio на 80% поддержан стандарт обеспечения безопасности и надёжности MISRA C. При этом полностью покрыта категория предупреждений Mandatory, а также большая часть категории Required.

См. также:

Различные улучшения

Механизм отключения выдачи предупреждений на существующем коде (baseline разметка, подавление предупреждений) дополнен для работы с Unreal Engine проектами. В данном релизе baseline механизм можно использовать для UE проектов в версии анализатора PVS-Studio для командной строки. В следующей версии PVS-Studio также будет расширена поддержка подавления предупреждений при работе с UE проектами напрямую из сред разработки Visual Studio и JetBrains Rider.

Примечание. Вы можете подробнее ознакомиться с идеологией отключения предупреждений на существующем коде в статье "Как внедрить статический анализатор кода в legacy проект и не демотивировать команду".

Появился новый раздел документации, в котором описано использование PVS-Studio для проверки проектов, позволяющих сгенерировать описание сборочного процесса в формате JSON Compilation Database. Данный метод подходит для проектов на основе CMake, QBS, Ninja и т.п.

В плагинах PVS-Studio для JetBrains IDEA, Rider и CLion добавлена возможность переназначения shortcut'ов для наиболее часто используемых действий по проверке проектов и работе с результатами анализа.

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

  • V833. Using 'std::move' function with const object disables move semantics.
  • V1076. Code contains invisible characters that may alter its logic. Consider enabling the display of invisible characters in the code editor.
  • V2615. MISRA. A compatible declaration should be visible when an object or function with external linkage is defined.
  • V2616. MISRA. All conditional inclusion preprocessor directives should reside in the same file as the conditional inclusion directive to which they are related.
  • V2617. MISRA. Object should not be assigned or copied to an overlapping object.
  • V2618. MISRA. Identifiers declared in the same scope and name space should be distinct.
  • V2619. MISRA. Typedef names should be unique across all name spaces.
  • V2620. MISRA. Value of a composite expression should not be cast to a different essential type category or a wider essential type.
  • V2621. MISRA. Tag names should be unique across all name spaces.
  • V2622. MISRA. External object or function should be declared once in one and only one file.
  • V5616. OWASP. Possible command injection. Potentially tainted data is used to create OS command.

Некоторые свежие публикации в нашем блоге

Обратная связь

Спасибо за внимание и интерес к нашему продукту. Если у вас есть вопросы или пожелания, мы всегда готовы пообщаться с вами. Также мы будем рады вашим отзывам по новым функциям, реализованным в анализаторе.