﻿# 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\.

![0897_PVS_Studio_Release_716_ru/image1.png](https://import.viva64.com/docx/blog/0897_PVS_Studio_Release_716_ru/image1.png)

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

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

![0897_PVS_Studio_Release_716_ru/image3.png](https://import.viva64.com/docx/blog/0897_PVS_Studio_Release_716_ru/image3.png)

С точки зрения пользователя, не произошло никаких серьёзных изменений в интерфейсе анализатора и в принципах работы с ним\. Да, нам теперь стоит написать обновлённый вариант статьи 2019 года "[PVS\-Studio для Visual Studio](https://pvs-studio.ru/ru/blog/posts/cpp/0635/)", но в целом приведённые в ней описания актуальны\.

## Поддержка \.NET 6 и C\# 10\.0

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

Пользуясь случаем, предлагаем вашему вниманию статью "[Обзор нововведений в C\# 10](https://pvs-studio.ru/ru/blog/posts/csharp/0875/)"\.

## MISRA C

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

См\. также:

* [Что такое MISRA и как её готовить](https://pvs-studio.ru/ru/blog/posts/cpp/0702/);
* [Зачем нужен отчёт MISRA Compliance и как его получить в PVS\-Studio?](https://pvs-studio.ru/ru/blog/posts/cpp/0863/)
* [Классификация предупреждений PVS\-Studio согласно стандартам: MISRA C, MISRA C\+\+](https://pvs-studio.ru/ru/pvs-studio/sast/misra/)\.

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

Механизм отключения выдачи предупреждений на существующем коде \([baseline разметка, подавление предупреждений](https://pvs-studio.ru/ru/docs/manual/0032/)\) дополнен для работы с Unreal Engine проектами\. В данном релизе baseline механизм можно использовать для UE проектов в версии анализатора PVS\-Studio для командной строки\. В следующей версии PVS\-Studio также будет расширена поддержка подавления предупреждений при работе с UE проектами напрямую из сред разработки Visual Studio и JetBrains Rider\.

**Примечание\.** Вы можете подробнее ознакомиться с идеологией отключения предупреждений на существующем коде в статье "[Как внедрить статический анализатор кода в legacy проект и не демотивировать команду](https://pvs-studio.ru/ru/blog/posts/0743/)"\.

Появился новый раздел документации, в котором описано использование PVS\-Studio для проверки проектов, позволяющих сгенерировать описание сборочного процесса в формате [JSON Compilation Database](https://pvs-studio.ru/ru/docs/manual/6557/)\. Данный метод подходит для проектов на основе CMake, QBS, Ninja и т\.п\. 

В плагинах PVS\-Studio для [JetBrains IDEA](https://pvs-studio.ru/ru/docs/manual/6703/), [Rider и CLion](https://pvs-studio.ru/ru/docs/manual/0052/) добавлена возможность переназначения shortcut'ов для наиболее часто используемых действий по проверке проектов и работе с результатами анализа\.

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

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

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

1. [Развитие инструментария С\+\+ программистов: статические анализаторы кода](https://pvs-studio.ru/ru/blog/posts/cpp/0873/)\.
1. [Как один разработчик PVS\-Studio защищал баг в проверяемом проекте](https://pvs-studio.ru/ru/blog/posts/cpp/0880/)\.
1. [Слава баг\-репортам, или как мы сократили время анализа проекта пользователя с 80 до 4 часов](https://pvs-studio.ru/ru/blog/posts/csharp/0885/)\.
1. [Прокачка статического анализа проектов на Unreal Engine 4 и проверка автосимулятора Carla](https://pvs-studio.ru/ru/blog/posts/cpp/0888/)\.
1. [Разнообразие ошибок в C\# коде на примере CMS DotNetNuke: 40 вопросов к качеству](https://pvs-studio.ru/ru/blog/posts/csharp/0890/)\.
1. [Спасибо, Марио, но код стоит поправить – проверка TheXTech](https://pvs-studio.ru/ru/blog/posts/cpp/0889/)\.
1. [OWASP Top Ten и Software Composition Analysis \(SCA\)](https://pvs-studio.ru/ru/blog/posts/csharp/0876/)\.
1. [Вызов виртуальных функций в конструкторах и деструкторах \(C\+\+\)](https://pvs-studio.ru/ru/blog/posts/cpp/0891/)\.

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

Спасибо за внимание и интерес к нашему продукту\. Если у вас есть вопросы или пожелания, мы всегда готовы [пообщаться с вами](https://pvs-studio.ru/ru/about-feedback/)\. Также мы будем рады вашим отзывам по новым функциям, реализованным в анализаторе\.