>
>
PVS-Studio 7.29: проверка Java-кода в V…

Глеб Асламов
Статей: 14

PVS-Studio 7.29: проверка Java-кода в VS Code, умные указатели Boost, плагин для Qt Creator на macOS

Вышел новый релиз 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++

Для тех, кто пишет на C#

Для тех, кто пишет на Java

Статьи общей тематики

Хотите проверить свой проект с помощью PVS-Studio? Начните с этой страницы.

Если вы хотите получать новости о новых релизах, можете подписаться на рассылку от команды PVS-Studio по ссылке.