﻿# PVS\-Studio 7\.31: new C\+\+ analyzer features, enhanced user annotations, and more

PVS\-Studio 7\.31 has been released\. We have so much news to share with you\! We've enhanced the user annotation system, the mode to analyze individual files, and much more\! Learn more release details here\.

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


> You can download the latest version of PVS\-Studio \[here\]\(https://pvs\-studio\.com/en/pvs\-studio/try\-free/\)\\\.



**Enhanced individual file analysis mode**

We've enhanced the mode to analyze individual files via the _\-\-source\-files_ flag in the _pvs\-studio\-analyzer_ utility\.


> If you want to know more about the analysis flags, check out it \[here\]\(https://pvs\-studio\.com/en/docs/manual/6615/\#flags\)\\\.



We've improved the handling of scenarios in which the compilation dependency cache for C and C\+\+ files differs from the project structure\. 

This could happen if you often switch branches in one workspace or analyze different project versions\.

If you want to learn more about this mode, check out the [documentation](https://pvs-studio.com/en/docs/manual/0055/#cpp_dependency_cache)\.

**New feature to customize configuration files**

The PVS\-Studio for C\+\+ now supports setting up the _\.pvsconfig_ configuration files based on the analyzer version that uses these files\.

If you want to learn more, check out the [documentation](https://pvs-studio.com/en/docs/manual/6630/#sections)\.

**Enhanced user annotation system**

[The system of user annotations](https://pvs-studio.com/en/docs/manual/6743/) in C\+\+ analyzer now supports setting the constraints of allowed and disallowed values for integer function parameters\.

If you want to learn more about the system of user annotations, check out the [documentation](https://pvs-studio.com/en/docs/manual/6743/)\.

**Enhanced CircleCI documentation**

We've enhanced and updated the documentation on the PVS\-Studio integration into the CircleCI cloud CI system\.

You can find the enhanced documentation [here](https://pvs-studio.com/en/docs/manual/0054/)\.

**New diagnostic rules**

C, C\+\+

* [V1108](https://pvs-studio.com/en/docs/warnings/v1108/)\. Constraint specified in a custom function annotation on the parameter is violated\.
* [V1109](https://pvs-studio.com/en/docs/warnings/v1109/)\. Function is deprecated\. Consider switching to an equivalent newer function\.
* [V1110](https://pvs-studio.com/en/docs/warnings/v1110/)\. Constructor of a class inherited from 'QObject' does not use a pointer to a parent object\.

C\#

* [V3199](https://pvs-studio.com/en/docs/warnings/v3199/)\. Index from end operator used with the value that is less than or equal to zero\. Index is out of bound\.
* [V3200](https://pvs-studio.com/en/docs/warnings/v3200/)\. Possible overflow\. The expression will be evaluated before casting\. Consider casting one of the operands instead\.

Java

* [V6113](https://pvs-studio.com/en/docs/warnings/v6113/)\. Suspicious division\. Absolute value of the left operand is less than the value of the right operand\.
* [V6114](https://pvs-studio.com/en/docs/warnings/v6114/)\. The 'A' class containing Closeable members does not release the resources that the field is holding\.



**Articles**

For C\+\+ programmers:

* [How much UB is in my compiler?](https://pvs-studio.com/en/blog/posts/cpp/1130/)
* [C\+\+ programmer's guide to undefined behavior: part 1 of 11](https://pvs-studio.com/en/blog/posts/cpp/1129/)
* [Error on verge of extinction, or why I put if \(x \= 42\) in Red List of C & C\+\+ bugs](https://pvs-studio.com/en/blog/posts/cpp/1127/)
* [What errors are lurking in LLVM code?](https://pvs-studio.com/en/blog/posts/cpp/1126/)
* [Eleven moments of ReactOS: user mode gets better?](https://pvs-studio.com/en/blog/posts/cpp/1122/)
* [Compilation of gripping C\+\+ conference talks from 2023](https://pvs-studio.com/en/blog/posts/1120/)
* [Let's check the qdEngine game engine, part one: top 10 warnings issued by PVS\-Studio](https://pvs-studio.com/en/blog/posts/cpp/1119/)
* [Let's check the qdEngine game engine, part two: simplifying C\+\+ code](https://pvs-studio.com/en/blog/posts/cpp/1121/)
* [Let's check the qdEngine game engine, part three: 10 more bugs](https://pvs-studio.com/en/blog/posts/cpp/1123/)
* [C\+\+: freeing resources in destructors using helper functions](https://pvs-studio.com/en/blog/posts/cpp/1125/)

For C\# programmers:

* [Garnet\. Does Microsoft's cache \-store also store bugs?](https://pvs-studio.com/en/blog/posts/csharp/1124/)
* [Nephalem's nightmare\. Exploring errors in Diablo 3 server emulator code](https://pvs-studio.com/en/blog/posts/csharp/1118/)

For Java programmers:

* [How template method can ruin your Java code](https://pvs-studio.com/en/blog/posts/java/1132/)
* [Volatile, DCL, and synchronization pitfalls in Java](https://pvs-studio.com/en/blog/posts/java/1128/)
* [21 bugs in 21st version of Apache NetBeans](https://pvs-studio.com/en/blog/posts/java/1117/)

Articles on general topics:

* [Smile while drowning in bugs](https://pvs-studio.com/en/blog/posts/cpp/1131/)

**New videos**

We've also got a new series of videos about Andrey Karpov's mini\-book "60 terrible tips for a C\+\+ developer"\!


> If you can't wait to dive into the rest of the terrible tips, you can read the full version on our \[blog\]\(https://pvs\-studio\.com/en/blog/posts/cpp/1053/\)\\\.



If you want to write efficient, reliable and well\-structured C\+\+ programs, it's helpful to know about errors and inefficient approaches\. Now in video format:

<https://www.youtube.com/watch?v=QmNvnpACS9w>




> Do you want to check a project with PVS\\\-Studio? Then start from \[this page\]\(https://pvs\-studio\.com/en/pvs\-studio/try\-free/\)\\\.



If you would like to get news on latest releases, subscribe to the PVS\-Studio newsletter [here](https://pvs-studio.com/en/subscribe/)\.