Вышел новый релиз PVS-Studio — 7.29. Теперь можно запускать анализ Java-проектов через плагин для VS Code, проверять умные указатели Boost, использовать плагин PVS-Studio для Qt Creator 12 на macOS, и это ещё не всё! Больше подробностей в этой заметке.

Загрузить актуальную версию PVS-Studio можно здесь.
Поддержка Java проектов в плагине для Visual Studio Code
В плагине PVS-Studio для Visual Studio Code появилась возможность анализа Java-проектов. Функционал включает в себя:
-
запуск анализа и просмотр отчёта;
-
подавление предупреждений с помощью suppress-файлов;
-
инкрементальный анализ;
-
и другие функции, описанные в соответствующем разделе документации.

Поддержка умных указателей Boost
Анализатор C++ получил поддержку умных указателей из библиотеки Boost: boost::unique_ptr и boost::shared_ptr.
Теперь анализатор PVS-Studio определяет ошибки наподобие разыменовывания нулевого указателя при использовании данных классов.
Учёт хэша строки для разметки ложноположительных срабатываний
В новой версии PVS-Studio появился режим учёта хэша строки исходного кода, вызвавшей срабатывание при разметке ложноположительных срабатываний.
В PVS-Studio и до этого считался хэш, но он применялся для навигации и более эффективной работы suppress-файлов. Теперь появился новый способ применения хэша: его можно указать в строке при разметке ложноположительных срабатываний. Это позволяет понять, менялась ли строка кода с момента отметки срабатывания как ложного. В случае наличия изменений в коде, отметка ложноположительного срабатывания перестанет подавлять предупреждение анализатора.
Пример строки, в которой указывается отметка ложноположительного срабатывания и хэш для отслеживания изменений:
std::string(4, std::string().at(0)); //-V530 //-VH"920700501"
Поддержка этой функциональности появилась в плагинах PVS-Studio для Microsoft Visual Studio. Подробнее про новый режим можно узнать в документации.
Примечание. Если вам интересно поподробнее узнать о способах и технологиях подавления ложноположительных срабатываний, то можете ознакомиться с этой статьёй.
Поддержка плагина для Qt Creator 12 на macOS
Появилась поддержка плагина PVS-Studio для Qt Creator 12 на операционных системах семейства macOS.
Подробнее про использование плагина PVS-Studio в Qt Creator можно узнать в документации.
Новые диагностики
C, С++
-
V839. Decreased performance. Function returns a constant value. This may interfere with the move semantics.
-
V1104. Priority of the ‘M’ operator is higher than that of the ‘N’ operator. Possible missing parentheses.
-
V2625. MISRA. Identifier with external linkage should be unique.
C#
-
V3194. Calling ‘OfType’ for collection will return an empty collection. It is not possible to cast collection elements to the type parameter.
-
V3195. Collection initializer implicitly calls ‘Add’ method. Using it on member with default value of null will result in null dereference exception.
Java
-
V6108. Do not use real-type variables in ‘for’ loop counters.
-
V6109. Potentially predictable seed is used in pseudo-random number generator.
С++ квиз от PVS-Studio и Сергея Кушниренко

В этом релизе команда PVS-Studio вместе с Сергеем Кушниренко подготовила С++ квиз на основе ошибок, описанных в его статьях.
Попробуйте найти ошибки в коде и проверить свою внимательность и знание языка! Квиз доступен по ссылке.
Статьи
Для тех, кто пишет на C++
-
Предновогоднее шоу: Топ 10 ошибок в C и С++ проектах в 2023 году
-
Следует ли проверять указатель на NULL перед вызовом функции free?
-
От винта! Смотрим движок War Thunder и говорим с его создателями
-
Квиз со звёздочкой для С++ программистов от Сергея Кушниренко
Для тех, кто пишет на C#
Для тех, кто пишет на Java
Статьи общей тематики
Хотите проверить свой проект с помощью PVS-Studio? Начните с этой страницы.
Если вы хотите получать новости о новых релизах, можете подписаться на рассылку от команды PVS-Studio по ссылке.
Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Gleb Aslamov. PVS-Studio 7.29: Java code check in VS Code, Boost smart pointers, and plugin for Qt Creator on macOS.
ссылка на оригинал статьи https://habr.com/ru/articles/793374/
Добавить комментарий