Errors detected in Open Source projects by the PVS-Studio developers through static analysis


We regularly check various open-source projects with PVS-Studio and send analysis results to developers and usually describe them in our posts as well. Besides, we add them into our bug database. This database is posted below on this page.

The bugs are grouped according to the number of the diagnostic rule that is used to detect them. The right column contains a link to the corresponding error samples.

We have deliberately refused to implement an option to view all the bugs found in a particular project: this might lead to an incorrect impression regarding the number of errors in the project and the analyzer's capabilities. You see, the tool is rapidly developing. While it found 10 bugs in a project one year ago, it doesn't mean at all that it will find the same amount now. Compare, for instance, the reports of ReactOS checks: first report, second report (a year and a half later).

You can offer us other open-source projects for analysis. The project types supported by PVS-Studio are given in the tool description.

This database may serve a unique resource for reflection on coding standards development, concepts of articles on programming rules, and help you in other researches regarding enhancing software reliability. We wish you interesting researches.



Error CodeError DescriptionProject List
V501There are identical sub-expressions to the left and to the right of the 'foo' operator.
Protocol Buffers, SwiftShader, XNU kernel, TDLib, Krita, Android, Amazon Lumberyard, Azure Service Fabric, Vangers: One For The Road, NCBI Genome Workbench, ...
V502Perhaps the '?:' operator works in a different way than it was expected. The '?:' operator has a lower priority than the 'foo' operator.
OpenToonz, Open X-Ray Engine, OpenJDK, CryEngine V, GCC, Linux Kernel, Scilab, Amazon Lumberyard, Perl 5, NCBI Genome Workbench, ...
V503This is a nonsensical comparison: pointer < 0.
Scilab, OGDF, Asterisk, .NET CoreCLR, Haiku Operation System, GINV, FreeBSD Kernel, OpenToonz, Far2l, Tizen, ...
V504It is highly probable that the semicolon ';' is missing after 'return' keyword.
Inkscape.
V505The 'alloca' function is used inside the loop. This can quickly overflow stack.
Crystal Space 3D SDK, Multi-threaded Dynamic Queue, Pixie, DeSmuME, Synergy, Tizen, EFL Core Libraries.
V506Pointer to local variable 'X' is stored outside the scope of this variable. Such a pointer will become invalid.
WinSCP, Miranda NG, Unreal Engine 4, PHP:Hypertext Preprocessor, RT-Thread.
V507Pointer to local array 'X' is stored outside the scope of this array. Such a pointer will become invalid.
MySQL, Source Engine SDK, Scilab, Miranda NG, MAME, GNU Octave, Inkscape, GCC, Tizen, Android, ...
V509The 'throw' operator inside the destructor should be placed within the try..catch block. Raising exception inside the destructor is illegal.
Chromium, Geant4 software, Protocol Buffers, Source Engine SDK, Data Distribution Service, FlightGear, TortoiseGit, WebRTC, LibreOffice, 7-Zip, ...
V510The 'Foo' function is not expected to receive class-type variable as 'N' actual argument.
Quake-III-Arena, Wild Magic 5, Scilab, Unreal Engine 4, Chromium, Apple II emulator, Telegram, Computational Network Toolkit, CryEngine V, libusbx, ...
V511The sizeof() operator returns size of the pointer, and not of the array, in given expression.
Shareaza, Wolfenstein 3D, Chromium, MySQL, Intel AMT SDK, ReactOS, Samba, Source Engine SDK, Oracle VM Virtual Box.
V512A call of the 'Foo' function will lead to a buffer overflow or underflow.
Unreal Engine 4, FreeBSD Kernel, Stickies, CodeLite, CryEngine V, Tizen, EFL Core Libraries, Ardour, WebRTC, XNU kernel, ...
V513Use _beginthreadex/_endthreadex functions instead of CreateThread/ExitThread functions.
Multi Theft Auto, Trans-Proteomic Pipeline, SeqAn, Snes9x, PostgreSQL Database Management System, Source Engine SDK, Tesseract.
V514Dividing sizeof a pointer by another value. There is a probability of logical error presence.
Miranda IM, ReactOS, Notepad++, OpenMS, OpenCOLLADA, Scilab, Miranda NG.
V516Consider inspecting an odd expression. Non-null function pointer is compared to null.
Audacity, Micro-Manager.
V517The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence.
Tizen, Bind, EFL Core Libraries, MuseScore, Rosegarden, Ardour, XNU kernel, RT-Thread, TDLib, Krita, ...
V518The 'malloc' function allocates strange amount of memory calculated by 'strlen(expr)'. Perhaps the correct variant is strlen(expr) + 1.
FCEUX.
V519The 'x' variable is assigned values twice successively. Perhaps this is a mistake.
EFL Core Libraries, ClickHouse, Protocol Buffers, ANGLE, SwiftShader, XNU kernel, RT-Thread, Krita, Android, NCBI Genome Workbench, ...
V520The comma operator ',' in array index expression.
G3D Content Pak.
V521Such expressions using the ',' operator are dangerous. Make sure the expression is correct.
CryEngine 3 SDK, Grassroots DICOM library (GDCM), Oracle VM Virtual Box, Unreal Engine 4, ReactOS, CryEngine V, Steinberg SDKs, Amazon Lumberyard, Azure Service Fabric, Godot Engine, ...
V522Dereferencing of the null pointer might take place.
Audacity, Sphinx (search engine), V8 JavaScript Engine, Yasm, WebRTC, XNU kernel, Krita, Android, Vangers: One For The Road, Perl 5, ...
V523The 'then' statement is equivalent to the 'else' statement.
Audacity, Rosegarden, Steinberg SDKs, PDFium, RT-Thread, Krita, Amazon Lumberyard, Perl 5, NCBI Genome Workbench, LibreOffice, ...
V524It is odd that the body of 'Foo_1' function is fully equivalent to the body of 'Foo_2' function.
Trans-Proteomic Pipeline, SeqAn, Geant4 software, Chromium, OpenMW, Spring Engine, The GTK+ Project, Open X-Ray Engine, Tizen, MuseScore, ...
V525The code contains the collection of similar blocks. Check items X, Y, Z, ... in lines N1, N2, N3, ...
Fennec Media, Notepad++, Miranda IM, MySQL, Trans-Proteomic Pipeline, SeqAn, Source Engine SDK, Scilab, SlimDX, Android, ...
V526The 'strcmp' function returns 0 if corresponding strings are equal. Consider examining the condition for mistakes.
wxWidgets, Network Security Services (NSS), PostgreSQL Database Management System, Micro-Manager.
V527It is odd that the 'zero' value is assigned to pointer. Probably meant: *ptr = zero.
PNG library, Apache HTTP Server, ReactOS, Trans-Proteomic Pipeline, Scilab, Haiku Operation System, Tizen.
V528It is odd that pointer is compared with the 'zero' value. Probably meant: *ptr != zero.
Apache HTTP Server, Scilab, TortoiseGit, Miranda NG, The GTK+ Project, GCC, ReOpenLDAP, GDB, Partio, Aspell, ...
V529Odd semicolon ';' after 'if/for/while' operator.
Fennec Media, ReactOS, CamStudio, Windows 8 Driver Samples, QuickThread, VirtualDub, Oracle VM Virtual Box, Haiku Operation System, MAME, CryEngine V, ...
V530The return value of function 'Foo' is required to be utilized.
Casablanca, CodeLite, Clang, CryEngine V, Scilab, Audacity, Ardour, Android, ANGLE, LibreOffice, ...
V531It is odd that a sizeof() operator is multiplied by sizeof().
XUIFramework, NetDefender Firewall, ReactOS, CrashRpt library, Oracle VM Virtual Box.
V532Consider inspecting the statement of '*pointer++' pattern. Probably meant: '(*pointer)++'.
eMule Plus, FCEUX, IPP Samples, Apache HTTP Server, DeSmuME, OpenSSL, Miranda NG, Godot Engine, Open X-Ray Engine.
V533It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'X'.
Doom 3, Simple DirectMedia Layer, Godot Engine, Unreal Engine 4, Open X-Ray Engine, LibreOffice.
V534It is likely that a wrong variable is being compared inside the 'for' operator. Consider reviewing 'X'.
Source Engine SDK, Coin3D, Oracle VM Virtual Box, .NET CoreCLR, Android, Azure Service Fabric, NCBI Genome Workbench.
V535The variable 'X' is being used for this loop and for the outer loop.
Visualization Toolkit (VTK), Wine Is Not an Emulator, Haiku Operation System, FreeBSD Kernel, The GTK+ Project, CryEngine V, Blender, Tizen, Android, NCBI Genome Workbench, ...
V536Be advised that the utilized constant value is represented by an octal form.
eLynx Image Processing SDK and Lab, Miranda IM, PostgreSQL Database Management System, Micro-Manager, TortoiseGit, Chromium, Linux Kernel.
V537Consider reviewing the correctness of 'X' item's usage.
IPP Samples, Miranda IM, ReactOS, Quake-III-Arena, Trinity Core, Blender, Source Engine SDK, Expat.
V538The line contains control character 0x0B (vertical tabulation).
EA WebKit.
V539Consider inspecting iterators which are being passed as arguments to function 'Foo'.
CryEngine V.
V540Member 'x' should point to string terminated by two 0 characters.
Fennec Media, Chromium, WinSCP.
V541It is dangerous to print a string into itself.
PCSX2, CAMEL, Mozilla Firefox, UCSniff, TinyCAD, Scilab, FreeBSD Kernel, Serious Engine 1 v.1.10, Ardour.
V542Consider inspecting an odd type cast: 'Type1' to ' Type2'.
Miranda IM.
V543It is odd that value 'X' is assigned to the variable 'Y' of HRESULT type.
WinMerge, Oracle VM Virtual Box, Unreal Engine 4.
V545Such conditional expression of 'if' statement is incorrect for the HRESULT type value 'Foo'. The SUCCEEDED or FAILED macro should be used instead.
VirtualDub, Qt, LibreOffice, Apache HTTP Server, ANGLE.
V546Member of a class is initialized with itself: 'Foo(Foo)'.
Boost (C++ libraries), OpenToonz, CryEngine V, ClickHouse, Amazon Lumberyard.
V547Expression is always true/false.
XNU kernel, RT-Thread, Krita, System Shock, Azure Service Fabric, 0 A.D., Perl 5, Opus, Perl Compatible Regular Expressions, Libwebsockets, ...
V548Consider reviewing type casting. TYPE X[][] is not equivalent to TYPE **X.
Haiku Operation System.
V549The 'first' argument of 'Foo' function is equal to the 'second' argument.
CryEngine 3 SDK, Micro-Manager, Miranda NG, The GTK+ Project, GDB, Linux Kernel, CryEngine V, Skia Graphics Engine, Android, Amazon Lumberyard, ...
V550An odd precise comparison. It's probably better to use a comparison with defined precision: fabs(A - B) < Epsilon or fabs(A - B) > Epsilon.
CAMEL, ffdshow.
V552A bool type variable is being incremented. Perhaps another variable should be incremented instead.
7-Zip.
V554Incorrect use of smart pointer.
Chromium, Boost (C++ libraries), Haiku Operation System, OpenToonz, Casablanca, Nana, Skia Graphics Engine, Android, 0 A.D., LibreOffice.
V555The expression of the 'A - B > 0' kind will work as 'A != B'.
Trans-Proteomic Pipeline, Scilab, OpenSSL, Wine Is Not an Emulator, PHP:Hypertext Preprocessor, OpenJPEG, K Desktop Environment, FreeSWITCH.
V556The values of different enum types are compared.
Source Engine SDK, Unreal Engine 4, TortoiseGit, Linux Kernel, OpenToonz, Casablanca, Blender, SCIM, Tizen, EFL Core Libraries, ...
V557Array overrun is possible.
.NET CoreCLR, MuseScore, Rosegarden, libvpx, SQLite, XNU kernel, Android, Amazon Lumberyard, NCBI Genome Workbench, LibreOffice, ...
V558Function returns the pointer/reference to temporary local object.
SeqAn, VirtualDub, Geant4 software, Clang, EFL Core Libraries, Android.
V559Suspicious assignment inside the conditional expression of 'if/while/for' statement.
Miranda IM, Intel AMT SDK, Data Distribution Service, Scilab, Miranda NG, The GTK+ Project, Serious Engine 1 v.1.10.
V560A part of conditional expression is always true/false.
EFL Core Libraries, MuseScore, Rosegarden, Chromium, XNU kernel, RT-Thread, Krita, Android, System Shock, NCBI Genome Workbench, ...
V561It's probably better to assign value to 'foo' variable than to declare it anew.
FlightGear, Unreal Engine 4, Oracle VM Virtual Box, Godot Engine, Telegram, Firebird, OpenJDK, Chromium, Amazon Lumberyard, NCBI Genome Workbench, ...
V562It's odd to compare a bool type value with a value of N.
Spvolren, ReactOS, Blender, Windows 8 Driver Samples, Haiku Operation System, NCBI Genome Workbench.
V563It is possible that this 'else' branch must apply to the previous 'if' statement.
BCmenu, Squirrel, PeerBlock, Trans-Proteomic Pipeline, Cfront, Open X-Ray Engine.
V564The '&' or '|' operator is applied to bool type value. You've probably forgotten to include parentheses or intended to use the '&&' or '||' operator.
Doom 3, Battle for Wesnoth, Blender, FFmpeg, Unreal Engine 4, OpenMW, K Desktop Environment, Oracle VM Virtual Box, Amazon Lumberyard, Perl 5, ...
V565An empty exception handler. Silent suppression of exceptions can hide the presence of bugs in source code during testing.
G3D Content Pak.
V567The modification of a variable is unsequenced relative to another operation on the same variable. This may lead to undefined behavior.
Unreal Engine 4, Apple II emulator, Gamer_Z eXtreme Party, FreeSWITCH, CryEngine V, CMaNGOS, Far2l, Steinberg SDKs, ofPennerEasing, LibreOffice, ...
V568It's odd that the argument of sizeof() operator is the expression.
OpenCV, Asterisk, Haiku Operation System, Far2l, CryEngine V, EFL Core Libraries, XNU kernel, RT-Thread, Android, Azure Service Fabric, ...
V569Truncation of constant value.
FreeBSD Kernel.
V570The variable is assigned to itself.
Oracle VM Virtual Box, The GTK+ Project, Open X-Ray Engine, CryEngine V, Steinberg SDKs, Amazon Lumberyard, Azure Service Fabric, Vangers: One For The Road, 0 A.D., NCBI Genome Workbench, ...
V571Recurring check. This condition was already verified in previous line.
Apache HTTP Server, CodeLite, CMaNGOS, Bind, Tizen, Enlightenment, EFL Core Libraries, Ardour, Steinberg SDKs, NCBI Genome Workbench, ...
V572It is odd that the object which was created using 'new' operator is immediately cast to another type.
wxWidgets, Cocos2d-x, Tizen.
V573Uninitialized variable 'Foo' was used. The variable was used to initialize itself.
Multi Theft Auto, Firebird, Word for Windows 1.1a, Clang.
V575Function receives an odd argument.
PostgreSQL Database Management System, Chromium, V8 JavaScript Engine, OpenVR, SwiftShader, Yasm, WebRTC, Android, Vangers: One For The Road, Qt, ...
V576Incorrect format. Consider checking the N actual argument of the 'Foo' function.
Cfront, Dolphin Smalltalk 7, Open X-Ray Engine, ReOpenLDAP, ICQ, Far2l, EFL Core Libraries, Tizen, Enlightenment, 0 A.D., ...
V578An odd bitwise operation detected. Consider verifying it.
NetXMS, RT-Thread, Android.
V579The 'Foo' function receives the pointer and its size as arguments. It is possibly a mistake. Inspect the N argument.
Mozilla Thunderbird, FreeBSD Kernel, Serious Engine 1 v.1.10, Open X-Ray Engine, OpenJDK, CryEngine V, GDB, GNU GRUB, MySQL, RT-Thread, ...
V581The conditional expressions of the 'if' statements situated alongside each other are identical.
Unreal Engine 4, FreeSWITCH, Firebird, Open X-Ray Engine, Inkscape, GDB, Linux Kernel, Far2l, Skia Graphics Engine, Krita, ...
V583The '?:' operator, regardless of its conditional expression, always returns one and the same value.
FreeBSD Kernel, CryEngine V, ReOpenLDAP, Chromium, CMaNGOS, Audacity, V8 JavaScript Engine, TDLib, Krita, Vangers: One For The Road, ...
V584The same value is present on both sides of the operator. The expression is incorrect or it can be simplified.
Far2l, Asterisk, Ruby MRI.
V586The 'Foo' function is called twice for deallocation of the same resource.
Blender, OpenMW, VNL, Miranda NG.
V587An odd sequence of assignments of this kind: A = B; B = A;.
Windows 8 Driver Samples, Mozilla Firefox, LibreOffice, Git, GNU GRUB, EFL Core Libraries.
V588The expression of the 'A =+ B' kind is utilized. Consider reviewing it, as it is possible that 'A += B' was meant.
Libxml2, Trans-Proteomic Pipeline.
V590Consider inspecting this expression. The expression is excessive or contains a misprint.
GCC, GDB, Chromium, Clang, Scilab, EFL Core Libraries, Audacity, Krita, Qt, NCBI Genome Workbench, ...
V591Non-void function should return a value.
Haiku Operation System, SETI@home, Unreal Engine 4, Open X-Ray Engine, Chromium, Clang, Aspell, EFL Core Libraries, Android, NCBI Genome Workbench, ...
V592The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present.
wxWidgets, Spring Engine, TensorFlow.
V593Consider reviewing the expression of the 'A = B == C' kind. The expression is calculated as following: 'A = (B == C)'.
Haiku Operation System, SETI@home, FreeSWITCH, FreeBSD Kernel, Blender, ReOpenLDAP, OpenSubdiv, CMaNGOS, XNU kernel, Android, ...
V594The pointer steps out of array's bounds.
ReactOS.
V595The pointer was utilized before it was verified against nullptr. Check lines: N1, N2.
RT-Thread, Krita, Android, System Shock, Azure Service Fabric, 0 A.D., Perl 5, Libwebsockets, Godot Engine, NCBI Genome Workbench, ...
V596The object was created but it is not being used. The 'throw' keyword could be missing.
Multi Theft Auto, OpenMS, Geant4 software, FlightGear, OpenMW, FreeCAD, Computational Network Toolkit, OpenToonz, MySQL, Amazon Lumberyard.
V597The compiler could delete the 'memset' function call, which is used to flush 'Foo' buffer. The RtlSecureZeroMemory() function should be used to erase the private data.
Bind, Enlightenment, Tizen, EFL Core Libraries, Sphinx (search engine), MySQL, WebRTC, XNU kernel, Android, NCBI Genome Workbench, ...
V598The 'memset/memcpy' function is used to nullify/copy the fields of 'Foo' class. Virtual table pointer will be damaged by this.
IPP Samples, Coin3D, SlimDX, Miranda NG, .NET CoreCLR.
V599The virtual destructor is not present, although the 'Foo' class contains virtual functions.
Synergy, ANGLE, TortoiseGit, Miranda NG, FreeCAD, GINV, Unreal Engine 4, Computational Network Toolkit, OpenToonz, Notepad++, ...
V600Consider inspecting the condition. The 'Foo' pointer is always not equal to NULL.
Notepad++, OpenSSL, Multi Theft Auto, Firebird, ITK, FreeSWITCH.
V601An odd implicit type casting.
IPP Samples, WebPagetest, Micro-Manager, Doxygen, Firebird, Notepad++, SCIM, Rosegarden.
V602Consider inspecting this expression. '<' possibly should be replaced with '<<'.
RT-Thread.
V603The object was created but it is not being used. If you wish to call constructor, 'this->Foo::Foo(....)' should be used.
Google-Breakpad, LibreOffice, ChakraCore, Open X-Ray Engine, CryEngine V, EA WebKit, Android, Azure Service Fabric, Etc2Comp, NCBI Genome Workbench, ...
V604It is odd that the number of iterations in the loop equals to the size of the pointer.
Windows 8 Driver Samples.
V605Consider verifying the expression. An unsigned value is compared to the number - NN.
VirtualDub, PHP:Hypertext Preprocessor, FreeSWITCH, The GTK+ Project.
V606Ownerless token 'Foo'.
RunAsAdmin Explorer Shim, Windows 8 Driver Samples, Oracle VM Virtual Box, Amazon Lumberyard, Azure Service Fabric.
V607Ownerless expression 'Foo'.
TortoiseSVN, Boost (C++ libraries), CryEngine 3 SDK, Eigen, Unreal Engine 4, Miranda NG, Godot Engine, Serious Engine 1 v.1.10, System Shock, Azure Service Fabric, ...
V609Divide or mod by zero.
VNL, Mozilla Thunderbird, Inkscape, Chromium, EFL Core Libraries.
V610Undefined behavior. Check the shift operator.
CryEngine V, Far2l, FreeBSD Kernel, Valgrind, EFL Core Libraries, Audacity, XNU kernel, RT-Thread, System Shock, Qt, ...
V611The memory allocation and deallocation methods are incompatible.
Dolphin Smalltalk 7, OpenToonz, Scilab, Tizen, Sphinx (search engine), Firebird, Android, Amazon Lumberyard, Azure Service Fabric, Vangers: One For The Road, ...
V612An unconditional 'break/continue/return/goto' within a loop.
LibreOffice, Unreal Engine 4, FreeSWITCH, Casablanca, Inkscape, CMaNGOS, Audacity, Rosegarden, XNU kernel, RT-Thread, ...
V614Uninitialized variable 'Foo' used.
CPython, FreeBSD Kernel, TensorFlow, EFL Core Libraries, MuseScore, Ardour, RT-Thread, Android, System Shock, NCBI Genome Workbench, ...
V615An odd explicit conversion from 'float *' type to 'double *' type.
OpenJDK.
V616The 'Foo' named constant with the value of 0 is used in the bitwise operation.
Mozilla Firefox, LibreOffice, Unreal Engine 4, Mozilla Thunderbird, ReactOS, Clang, CMaNGOS, Qt.
V617Consider inspecting the condition. An argument of the '|' bitwise operation always contains a non-zero value.
ffdshow, ABackup, ResizableLib, OpenSSL, Multi Theft Auto, Word for Windows 1.1a, WebRTC, FreeBSD Kernel, XNU kernel, Android.
V618It's dangerous to call the 'Foo' function in such a manner, as the line being passed could contain format specification. The example of the safe code: printf("%s", str);
TortoiseSVN, Source Engine SDK, CryEngine 3 SDK, WinSCP, Miranda NG, LibreOffice, Apple II emulator, Tizen.
V620It's unusual that the expression of sizeof(T)*N kind is being summed with the pointer to T type.
Apache Xerces Project, Snes9x, Miranda NG, Chromium.
V621Consider inspecting the 'for' operator. It's possible that the loop will be executed incorrectly or won't be executed at all.
PuTTY, Scilab, Haiku Operation System, SETI@home, Unreal Engine 4, FreeSWITCH, Mozilla Thunderbird, FreeBSD Kernel, EFL Core Libraries, Godot Engine, ...
V622Consider inspecting the 'switch' statement. It's possible that the first 'case' operator is missing.
K Desktop Environment, Miranda NG, CryEngine V, Tizen, Amazon Lumberyard.
V623Consider inspecting the '?:' operator. A temporary object is being created and subsequently destroyed.
Far2l.
V624The constant NN is being utilized. The resulting value could be inaccurate. Consider using the M_NN constant from <math.h>.
ffdshow, OpenMS, Geant4 software, Inkscape, Tizen.
V625Consider inspecting the 'for' operator. Initial and final values of the iterator are the same.
Synergy, LibreOffice, Oracle VM Virtual Box, GCC.
V626Consider checking for misprints. It's possible that ',' should be replaced by ';'.
Oracle VM Virtual Box, LibreOffice.
V627Consider inspecting the expression. The argument of sizeof() is the macro which expands to a number.
Samba, Network Security Services (NSS), Data Distribution Service, WebRTC.
V628It's possible that the line was commented out improperly, thus altering the program's operation logics.
Trans-Proteomic Pipeline, Spring Engine, Inkscape.
V629Consider inspecting the expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type.
SeqAn, Snes9x, SMHasher, The JUCE Library, Unreal Engine 4, Tesseract, Bitcoin, Alembic, TensorFlow, Android, ...
V630The 'malloc' function is used to allocate memory for an array of objects which are classes containing constructors/destructors.
Cocos2d-x, Haiku Operation System, Computational Network Toolkit, CryEngine V, EFL Core Libraries.
V631Consider inspecting the 'Foo' function call. Defining an absolute path to the file or directory is considered a poor style.
ffdshow, NetXMS, VirtualDub.
V634The priority of the '+' operation is higher than that of the '<<' operation. It's possible that parentheses should be used in the expression.
Haiku Operation System, CryEngine V, System Shock.
V635Consider inspecting the expression. The length should probably be multiplied by the sizeof(wchar_t).
WinMerge, Miranda NG.
V636The expression was implicitly cast from integer type to real type. Consider utilizing an explicit type cast to avoid overflow or loss of a fractional part.
Micro-Manager, FFmpeg, Qt, Tesseract, Cocos2d-x, Miranda NG, Open X-Ray Engine, ICQ, EFL Core Libraries, Tizen, ...
V637Two opposite conditions were encountered. The second condition is always false.
TinyCAD, VirtualDub, Unreal Engine 4, TortoiseGit, K Desktop Environment, .NET CoreCLR, ReactOS, Firebird, Blender, LibreOffice, ...
V638A terminal null is present inside a string. The '\0xNN' characters were encountered. Probably meant: '\xNN'.
Oracle VM Virtual Box, Linux Kernel.
V639Consider inspecting the expression for function call. It is possible that one of the closing ')' parentheses was positioned incorrectly.
CryEngine 3 SDK, Eigen, LibreOffice.
V640The code's operational logic does not correspond with its formatting.
Miranda NG, Spring Engine, Haiku Operation System, CryEngine V, CMaNGOS, GCC, FreeBSD Kernel, Augeas, Tizen, Android, ...
V641The buffer size is not a multiple of the element size.
Miranda NG.
V642Saving the function result inside the 'byte' type variable is inappropriate. The significant bits could be lost breaking the program's logic.
Xpdf, ReactOS, Firebird, Linux Kernel, OpenToonz, Tizen.
V643Unusual pointer arithmetic. The value of the 'char' type is being added to the string pointer.
Spring Engine, OpenToonz.
V645The function call could lead to the buffer overflow. The bounds should not contain the size of the buffer, but a number of characters it can hold.
ReactOS, ICU, Multi Theft Auto, Miranda NG, Enlightenment, Tizen.
V646Consider inspecting the application's logic. It's possible that 'else' keyword is missing.
FreeSWITCH, Mozilla Thunderbird, FreeBSD Kernel, Serious Engine 1 v.1.10, Inkscape, Aspell, EFL Core Libraries, Tizen, XNU kernel, Krita, ...
V647The value of 'A' type is assigned to the pointer of 'B' type.
Tizen.
V648Priority of the '&&' operation is higher than that of the '||' operation.
Wolfenstein 3D, Oracle VM Virtual Box.
V649There are two 'if' statements with identical conditional expressions. The first 'if' statement contains function return. This means that the second 'if' statement is senseless.
Miranda IM, Wolfenstein 3D, Coin3D, Micro-Manager, Blender, Clang, EFL Core Libraries, Chromium, Skia Graphics Engine, LibreOffice, ...
V650Type casting operation is utilized 2 times in succession. Next, the '+' operation is executed. Probably meant: (T1)((T2)a + b).
Wine Is Not an Emulator.
V652The operation is executed 3 or more times in succession.
FreeSWITCH.
V653A suspicious string consisting of two parts is used for the initialization. It is possible that a comma is missing.
Asterisk, Linux Kernel.
V654The condition of loop is always true/false.
Oracle VM Virtual Box, K Desktop Environment, Miranda NG, Linux Kernel, Unreal Engine 4, Git, EFL Core Libraries, Ardour, RT-Thread, Android, ...
V655The strings were concatenated but are not utilized. Consider inspecting the expression.
Scilab, K Desktop Environment, FreeCAD, OpenToonz.
V656Variables are initialized through the call to the same function. It's probably an error or un-optimized code.
Doom 3, ReactOS, Qt, LibreOffice, Skia Graphics Engine, Krita.
V661A suspicious expression 'A[B < C]'. Probably meant 'A[B] < C'.
NCBI Genome Workbench.
V662Consider inspecting the loop expression. Different containers are utilized for setting up initial and final values of the iterator.
Rhino (JavaScript engine).
V663Infinite loop is possible. The 'cin.eof()' condition is insufficient to break from the loop. Consider adding the 'cin.fail()' function call to the conditional expression.
POCO C++ Libraries, OpenMW, Grassroots DICOM library (GDCM), ITK, SETI@home, GNU Octave, NCBI Genome Workbench.
V665Possibly, the usage of '#pragma warning(default: X)' is incorrect in this context. The '#pragma warning(push/pop)' should be used instead.
Data Distribution Service, SlimDX, Crash Server Library, TortoiseGit, Newton Game Dynamics, FreeSWITCH, Dolphin Smalltalk 7, OpenToonz, Apache HTTP Server, usrsctp, ...
V666Consider inspecting NN argument of the function 'Foo'. It is possible that the value does not correspond with the length of a string which was passed with the YY argument.
OpenSSL, ITK, Spring Engine, LibreOffice, OpenJDK, Inkscape, Linux Kernel, FreeBSD Kernel, Bind, Enlightenment, ...
V668There is no sense in testing the pointer against null, as the memory was allocated using the 'new' operator. The exception will be generated in the case of memory allocation error.
Notepad++, Aspell, Tizen, EFL Core Libraries, Rosegarden, SwiftShader, EA WebKit, Krita, Android, 0 A.D., ...
V669The argument is a non-constant reference. The analyzer is unable to determine the position at which this argument is being modified. It is possible that the function contains an error.
WinMerge, CryEngine 3 SDK, Micro-Manager, CMaNGOS.
V670An uninitialized class member is used to initialize another member. Remember that members are initialized in the order of their declarations inside a class.
Tesseract, .NET CoreCLR, Unreal Engine 4, Appleseed, Mozilla Thunderbird, Rosegarden, NCBI Genome Workbench, LibreOffice.
V671It is possible that the 'swap' function interchanges a variable with itself.
Haiku Operation System.
V672There is probably no need in creating a new variable here. One of the function's arguments possesses the same name and this argument is a reference.
Haiku Operation System.
V673More than N bits are required to store the value, but the expression evaluates to the T type which can only hold K bits.
.NET CoreCLR.
V674The expression contains a suspicious mix of integer and real types.
Godot Engine, Unreal Engine 4, Open X-Ray Engine, ICQ, CMaNGOS, Tizen, EFL Core Libraries, MuseScore, Rosegarden, 0 A.D., ...
V675Writing into the read-only memory.
Tizen.
V676It is incorrect to compare the variable of BOOL type with TRUE.
VirtualDub, Firebird, CryEngine 3 SDK, Apple II emulator.
V677Custom declaration of a standard type. The declaration from system header files should be used instead.
SlimDX, Miranda NG.
V678An object is used as an argument to its own method. Consider checking the first actual argument of the 'Foo' function.
Shareaza, Mozilla Thunderbird.
V681The language standard does not define an order in which the 'Foo' functions will be called during evaluation of arguments.
Wine Is Not an Emulator, Android.
V684A value of variable is not modified. Consider inspecting the expression. It is possible that '1' should be present instead of '0'.
V8 JavaScript Engine.
V686A pattern was detected: A || (A && ...). The expression is excessive or contains a logical error.
Blender, Tor, EFL Core Libraries, Tizen.
V688The 'foo' local variable possesses the same name as one of the class members, which can result in a confusion.
Computational Network Toolkit, CryEngine V, NCBI Genome Workbench.
V690The class implements a copy constructor/operator=, but lacks the operator=/copy constructor.
Bitcoin, Casablanca, OpenJDK, Tizen.
V691Empirical analysis. It is possible that a typo is present inside the string literal. The 'foo' word is suspicious.
Chromium.
V692An inappropriate attempt to append a null character to a string. To determine the length of a string by 'strlen' function correctly, a string ending with a null terminator should be used in the first place.
Wine Is Not an Emulator, Linux Kernel, Haiku Operation System, Tizen.
V693Consider inspecting conditional expression of the loop. It is possible that 'i < X.size()' should be used instead of 'X.size()'.
Godot Engine.
V694The condition (ptr - const_value) is only false if the value of a pointer equals a magic constant.
Miranda NG, FreeSWITCH, EFL Core Libraries, Tizen, ICU.
V695Range intersections are possible within conditional expressions.
Linux Kernel, The GTK+ Project, CryEngine V, Scilab, Android.
V696The 'continue' operator will terminate 'do { ... } while (FALSE)' loop because the condition is always false.
Cocos2d-x, Linux Kernel, Haiku Operation System, Clang, Tizen, Ardour, Android.
V698strcmp()-like functions can return not only the values -1, 0 and 1, but any values.
.NET CoreCLR.
V700Consider inspecting the 'T foo = foo = x;' expression. It is odd that variable is initialized through itself.
.NET CoreCLR, Unreal Engine 4, Apple II emulator.
V701realloc() possible leak: when realloc() fails in allocating memory, original pointer is lost. Consider assigning realloc() to a temporary pointer.
ReOpenLDAP, Partio, OpenSubdiv, EFL Core Libraries, Tizen, Aspell, Free Lossless Audio Codec, WebRTC, 0 A.D., Qt, ...
V704'this == 0' comparison should be avoided - this comparison is always false on newer compilers.
Miranda NG, .NET CoreCLR, Serious Engine 1 v.1.10, Inkscape, CMaNGOS, Notepad++.
V705It is possible that 'else' block was forgotten or commented out, thus altering the program's operation logics.
K Desktop Environment, Miranda NG, Linux Kernel, FreeBSD Kernel, Valgrind, XNU kernel.
V706Suspicious division: sizeof(X) / Value. Size of every element in X array does not equal to divisor.
Haiku Operation System.
V707Giving short names to global variables is considered to be bad practice.
Cfront, Yasm.
V708Dangerous construction is used: 'm[x] = m.size()', where 'm' is of 'T' class. This may lead to undefined behavior.
Chromium.
V709Suspicious comparison found: 'a == b == c'. Remember that 'a == b == c' is not equal to 'a == b && b == c'.
Unreal Engine 4, Amazon Lumberyard.
V711It is dangerous to create a local variable within a loop with a same name as a variable controlling this loop.
Haiku Operation System, Telegram, Wine Is Not an Emulator, FreeBSD Kernel.
V712Be advised that compiler may delete this cycle or make it infinity. Use volatile variable(s) or synchronization primitives to avoid this.
G3D Content Pak, IPP Samples, GINV, eMule Plus, FreeSWITCH, Shareaza, FCEUX, MPC-HC, ReactOS, Open X-Ray Engine.
V713The pointer was utilized in the logical expression before it was verified against nullptr in the same logical expression.
Linux Kernel, Haiku Operation System, FreeSWITCH, Mozilla Thunderbird, ChakraCore, FreeBSD Kernel, Firebird, CryEngine V, Notepad++, V8 JavaScript Engine, ...
V714Variable is not passed into foreach loop by a reference, but its value is changed inside of the loop.
Krita.
V715The 'while' operator has empty body. Suspicious pattern detected.
Enlightenment.
V716Suspicious type conversion: HRESULT -> BOOL (BOOL -> HRESULT).
LibreOffice, Wine Is Not an Emulator, Dolphin Smalltalk 7.
V718The 'Foo' function should not be called from 'DllMain' function.
LibreOffice, Open X-Ray Engine.
V719The switch statement does not cover all values of the enum.
Appleseed, Firebird.
V721The VARIANT_BOOL type is utilized incorrectly. The true value (VARIANT_TRUE) is defined as -1.
MAME.
V724Converting integers or pointers to BOOL can lead to a loss of high-order bits. Non-zero value can become 'FALSE'.
Ruby MRI.
V726An attempt to free memory containing the 'int A[10]' array by using the 'free(A)' function.
CamStudio, Shareaza.
V728An excessive check can be simplified. The '||' operator is surrounded by opposite expressions 'x' and '!x'.
Firebird, CPython, Blender, CodeLite, CMaNGOS, EFL Core Libraries, Audacity, Krita, Vangers: One For The Road, LibreOffice, ...
V729Function body contains the 'X' label that is not used by any 'goto' statements.
FreeBSD Kernel, CodeLite.
V730Not all members of a class are initialized inside the constructor.
Miranda IM, MuseScore, TDLib, ANGLE.
V732Unary minus operator does not modify a bool type value.
Miranda IM, Krita.
V733It is possible that macro expansion resulted in incorrect evaluation order.
FreeBSD Kernel, Linux Kernel.
V734An excessive expression. Examine the substrings "abc" and "abcd".
CryEngine V, Linux Kernel.
V737It is possible that ',' comma is missing at the end of the string.
Inkscape.
V739EOF should not be compared with a value of the 'char' type. Consider using the 'int' type.
Computational Network Toolkit, Android, NCBI Genome Workbench.
V743The memory areas must not overlap. Use 'memmove' function.
Stickies.
V745A 'wchar_t *' type string is incorrectly converted to 'BSTR' type string.
Oracle VM Virtual Box.
V746Object slicing. An exception should be caught by reference rather than by value.
Oracle VM Virtual Box, OpenToonz, Open X-Ray Engine, Notepad++, Scilab, Tizen, Rosegarden, Ardour, NCBI Genome Workbench.
V749Destructor of the object will be invoked a second time after leaving the object's scope.
0 A.D..
V751Parameter is not used inside function's body.
Linux Kernel, Valgrind, Steinberg SDKs, HarfBuzz, System Shock, Godot Engine.
V756The 'X' counter is not used inside a nested loop. Consider inspecting usage of 'Y' counter.
LibreOffice.
V757It is possible that an incorrect variable is compared with null after type conversion using 'dynamic_cast'.
LibreOffice.
V760Two identical text blocks detected. The second block starts with NN string.
CMaNGOS, TensorFlow, Bind, PDFium.
V762Consider inspecting virtual function arguments. See NN argument of function 'Foo' in derived class and base class.
Notepad++, MuseScore, Ardour.
V763Parameter is always rewritten in function body before being used.
Inkscape, ReOpenLDAP, Chromium, NCBI Genome Workbench, LibreOffice.
V764Possible incorrect order of arguments passed to function.
Linux Kernel, CMaNGOS, LibreOffice.
V765A compound assignment expression 'X += X + N' is suspicious. Consider inspecting it for a possible error.
MuseScore, LibreOffice.
V766An item with the same key has already been added.
Chromium, MuseScore, Android, NCBI Genome Workbench.
V767Suspicious access to element by a constant index inside a loop.
Skia Graphics Engine, RT-Thread, Godot Engine.
V768The variable is of enum type. It is odd that it is used as a variable of a Boolean-type.
Clang, MySQL, Firebird, SwiftShader, XNU kernel, RT-Thread, Krita, Android, Qt.
V769The pointer in the expression equals nullptr. The resulting value is meaningless and should not be used.
Tor, Aspell, EFL Core Libraries, MySQL, V8 JavaScript Engine, Clang, Hunspell, Android, Qt.
V773The function was exited without releasing the pointer/handle. A memory/resource leak is possible.
WebM, SwiftShader, PDFium, EA WebKit, XNU kernel, Krita, Android, Vangers: One For The Road, 0 A.D., ANGLE, ...
V774The pointer was used after the memory was released.
Augeas, Bind, MuseScore, ICU.
V778Two similar code fragments were found. Perhaps, this is a typo and 'X' variable should be used instead of 'Y'.
Clang, .NET CoreCLR, FreeBSD Kernel, Aspell, Tizen, PDFium, SwiftShader, EA WebKit, Android, Godot Engine.
V779Unreachable code detected. It is possible that an error is present.
EFL Core Libraries, Tizen, MuseScore, Audacity, ICU, Android, Amazon Lumberyard, Vangers: One For The Road, Godot Engine, NCBI Genome Workbench, ...
V780The object of non-passive (non-PDS) type cannot be used with the function.
Tizen.
V781The value of the variable is checked after it was used. Perhaps there is a mistake in program logic. Check lines: N1, N2.
FreeBSD Kernel, XNU kernel, System Shock, Qt.
V783Dereferencing of invalid iterator 'X' might take place.
Rosegarden, 0 A.D..
V784The size of the bit mask is less than the size of the first operand. This will cause the loss of the higher bits.
Perl 5.
V786Assigning the value C to the X variable looks suspicious. The value range of the variable: [A, B].
Tizen.
V789Iterators for the container, used in the range-based for loop, become invalid upon a function call.
ClickHouse, MuseScore, WebRTC.
V793It is odd that the result of the statement is a part of the condition. Perhaps, this statement should have been compared with something else.
Android.
V794The assignment operator should be protected from the case of this == &src.
Chromium, ANGLE, RE2, WebRTC, EA WebKit, TDLib, Android, LibreOffice.
V796A 'break' statement is probably missing in a 'switch' statement.
Chromium, Android, System Shock, Godot Engine.
V799The variable is not used after memory has been allocated for it. Consider checking the use of this variable.
Krita.
V1001The variable is assigned but is not used by the end of the function.
EFL Core Libraries, MuseScore, Skia Graphics Engine, XNU kernel, Android, LibreOffice.
V1002A class, containing pointers, constructor and destructor, is copied by the automatically generated operator= or copy constructor.
Ardour.
V1004The pointer was used unsafely after it was verified against nullptr.
Rosegarden, Steinberg SDKs, PDFium, SwiftShader, XNU kernel, Krita, Android.
V3001There are identical sub-expressions to the left and to the right of the 'foo' operator.
Xenko, Xamarin.Forms, Accord.Net, Mono, GitExtensions, PowerShell, Media Portal 2, PascalABC.NET, Unity C# reference source code, Infer.NET, ...
V3002The switch statement does not cover all values of the enum.
SharpDevelop, Microsoft Code Contracts, Orchard CMS.
V3003The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence.
SharpDevelop, Microsoft Code Contracts, Xamarin.Forms, WPF samples by Microsoft, Old NASA World Wind (C#), Mono, Media Portal 2, PascalABC.NET, SubtitleEdit, Infer.NET.
V3004The 'then' statement is equivalent to the 'else' statement.
SharpDevelop, Microsoft Code Contracts, .NET Core Libraries (CoreFX), .NET Compiler Platform ("Roslyn"), Sony ATF, Space Engineers, Mono, PascalABC.NET, Infer.NET, FastReport, ...
V3005The 'x' variable is assigned to itself.
MonoDevelop, IronPython and IronRuby, .NET Compiler Platform ("Roslyn"), Sony ATF, Xenko, WPF samples by Microsoft, Old NASA World Wind (C#), MSBuild, PascalABC.NET, SubtitleEdit, ...
V3006The object was created but it is not being used. The 'throw' keyword could be missing.
Unity3D.
V3008The 'x' variable is assigned values twice successively. Perhaps this is a mistake.
.NET Compiler Platform ("Roslyn"), Sony ATF, Samples by the Infragistics Company, WPF samples by Microsoft, Old NASA World Wind (C#), GitExtensions, Media Portal 2, PascalABC.NET, Unity C# reference source code, Infer.NET, ...
V3009It's odd that this method always returns one and the same value of NN.
Umbraco, Microsoft Code Contracts, Xamarin.Forms, MSBuild, PascalABC.NET, SubtitleEdit, Unity C# reference source code.
V3010The return value of function 'Foo' is required to be utilized.
SharpDevelop, Space Engineers, Old NASA World Wind (C#), Mono, GitExtensions, PowerShell, Orchard CMS, Media Portal 2, PascalABC.NET, Unity C# reference source code, ...
V3011Two opposite conditions were encountered. The second condition is always false.
MSBuild.
V3012The '?:' operator, regardless of its conditional expression, always returns one and the same value.
MonoDevelop, IronPython and IronRuby, .NET Compiler Platform ("Roslyn"), Mono.
V3013It is odd that the body of 'Foo_1' function is fully equivalent to the body of 'Foo_2' function.
IronPython and IronRuby, .NET Compiler Platform ("Roslyn"), Samples by the Infragistics Company, FlashDevelop.
V3014It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'X'.
Microsoft Code Contracts, .NET Core Libraries (CoreFX), Entity Framework.
V3015It is likely that a wrong variable is being compared inside the 'for' operator. Consider reviewing 'X'.
Accord.Net, Mono, Entity Framework.
V3018Consider inspecting the application's logic. It's possible that 'else' keyword is missing.
PascalABC.NET.
V3019It is possible that an incorrect variable is compared with null after type conversion using 'as' keyword.
Old NASA World Wind (C#), FlashDevelop, MSBuild, Mono, Microsoft Bot Builder, PowerShell, Media Portal 2, PascalABC.NET, Logify Alert Clients, Unity C# reference source code, ...
V3020An unconditional 'break/continue/return/goto' within a loop.
.NET Core Libraries (CoreFX), Space Engineers, FlashDevelop, Mono, Media Portal 2, Unity C# reference source code, Infer.NET, FastReport.
V3021There are two 'if' statements with identical conditional expressions. The first 'if' statement contains method return. This means that the second 'if' statement is senseless.
MonoDevelop, IronPython and IronRuby, .NET Compiler Platform ("Roslyn"), Accord.Net, Old NASA World Wind (C#), Unity3D, Mono, SharpDevelop, Logify Alert Clients, Unity C# reference source code.
V3022Expression is always true/false.
GitExtensions, PowerShell, Orchard CMS, Umbraco, Media Portal 2, PascalABC.NET, SubtitleEdit, Unity C# reference source code, Infer.NET, FastReport, ...
V3023Consider inspecting this expression. The expression is excessive or contains a misprint.
SharpDevelop, MonoDevelop, IronPython and IronRuby, .NET Compiler Platform ("Roslyn"), Sony ATF, Xenko.
V3024An odd precise comparison. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon or Math.Abs(A - B) > Epsilon.
IronPython and IronRuby.
V3025Incorrect format. Consider checking the N format items of the 'Foo' function.
MonoDevelop, IronPython and IronRuby, .NET Compiler Platform ("Roslyn"), Xenko, Unity3D, MSBuild, Mono, GitExtensions, Umbraco, Unity C# reference source code, ...
V3027The variable was utilized in the logical expression before it was verified against null in the same logical expression.
.NET Core Libraries (CoreFX), MonoDevelop, IronPython and IronRuby, .NET Compiler Platform ("Roslyn"), Space Engineers, Mono, PowerShell, Orchard CMS, Umbraco.
V3028Consider inspecting the 'for' operator. Initial and final values of the iterator are the same.
Space Engineers, Media Portal 2.
V3029The conditional expressions of the 'if' statements situated alongside each other are identical.
.NET Compiler Platform ("Roslyn"), Samples by the Infragistics Company.
V3030Recurring check. This condition was already verified in previous line.
SharpDevelop, Microsoft Code Contracts, .NET Core Libraries (CoreFX), IronPython and IronRuby, PascalABC.NET.
V3031An excessive check can be simplified. The operator '||' operator is surrounded by opposite expressions 'x' and '!x'.
SharpDevelop, Xamarin.Forms, FlashDevelop, Mono, Orchard CMS.
V3032Waiting on this expression is unreliable, as compiler may optimize some of the variables. Use volatile variable(s) or synchronization primitives to avoid this.
IronPython and IronRuby, Xenko.
V3033It is possible that this 'else' branch must apply to the previous 'if' statement.
Old NASA World Wind (C#), Mono, PascalABC.NET.
V3035Consider inspecting the expression. Probably the '+=' should be used here.
Lucene.Net.
V3037An odd sequence of assignments of this kind: A = B; B = A;
Accord.Net, Old NASA World Wind (C#).
V3038The argument was passed to method several times. It is possible that another argument should be passed instead.
SharpDevelop, Xamarin.Forms, PascalABC.NET.
V3041The expression was implicitly cast from integer type to real type. Consider utilizing an explicit type cast to avoid the loss of a fractional part.
Sony ATF, Xenko, Accord.Net, MSBuild, Infer.NET.
V3042Possible NullReferenceException. The '?.' and '.' operators are used for accessing members of the same object.
Xamarin.Forms.
V3043The code's operational logic does not correspond with its formatting.
Sony ATF, Mono, PascalABC.NET.
V3045WPF: the names of the property registered for DependencyProperty, and of the property used to access it, do not correspond with each other.
Samples by the Infragistics Company, WPF samples by Microsoft.
V3046WPF: the type registered for DependencyProperty does not correspond with the type of the property used to access it.
Samples by the Infragistics Company, Xenko.
V3051An excessive type cast or check. The object is already of the same type.
Xamarin.Forms, Old NASA World Wind (C#), Mono.
V3052The original exception object was swallowed. Stack of original exception could be lost.
Xamarin.Forms, FlashDevelop, SharpDevelop, PascalABC.NET.
V3053An excessive expression. Examine the substrings "abc" and "abcd".
GitExtensions, Orchard CMS, SharpDevelop, PascalABC.NET, Unity C# reference source code.
V3056Consider reviewing the correctness of 'X' item's usage.
FlashDevelop.
V3057Function receives an odd argument.
Unity3D, MSBuild, Orchard CMS, Umbraco.
V3061Parameter 'A' is always rewritten in method body before being used.
Xenko, Accord.Net, Old NASA World Wind (C#), MSBuild, Mono.
V3062An object is used as an argument to its own method. Consider checking the first actual argument of the 'Foo' method
Accord.Net.
V3063A part of conditional expression is always true/false if it is evaluated.
Xamarin.Forms, Accord.Net, Old NASA World Wind (C#), Unity3D, GitExtensions, Unity C# reference source code.
V3064Division or mod division by zero.
Accord.Net, Umbraco, SharpDevelop, Unity C# reference source code.
V3065Parameter is not utilized inside method's body.
Xenko, Old NASA World Wind (C#).
V3066Possible incorrect order of arguments passed to method.
FlashDevelop, Media Portal 2.
V3070Uninitialized variables are used when initializing the 'A' variable.
Mono, PascalABC.NET.
V3076Comparison with 'double.NaN' is meaningless. Use 'double.IsNaN()' method instead.
Old NASA World Wind (C#).
V3078Original sorting order will be lost after repetitive call to 'OrderBy' method. Use 'ThenBy' method to preserve the original sorting.
SharpDevelop.
V3080Possible null dereference.
Accord.Net, Old NASA World Wind (C#), Unity3D, PowerShell, Umbraco, Media Portal 2, .NET Core Libraries (CoreFX), PascalABC.NET, Unity C# reference source code, Infer.NET.
V3081The 'X' counter is not used inside a nested loop. Consider inspecting usage of 'Y' counter.
Entity Framework, Infer.NET.
V3083Unsafe invocation of event, NullReferenceException is possible. Consider assigning event to a local variable before invoking it.
Accord.Net, Old NASA World Wind (C#), Unity3D, Logify Alert Clients, Infer.NET.
V3087Type of variable enumerated in 'foreach' is not guaranteed to be castable to the type of collection's elements.
FlashDevelop.
V3089Initializer of a field marked by [ThreadStatic] attribute will be called once on the first accessing thread. The field will have default value on different threads.
Mono.
V3090Unsafe locking on an object.
Old NASA World Wind (C#), Mono, Logify Alert Clients.
V3092Range intersections are possible within conditional expressions.
Mono.
V3093The operator evaluates both operands. Perhaps a short-circuit operator should be used instead.
Accord.Net, Old NASA World Wind (C#), NUnit.
V3095The object was used before it was verified against null. Check lines: N1, N2.
MSBuild, GitExtensions, PowerShell, Orchard CMS, Umbraco, SharpDevelop, Media Portal 2, PascalABC.NET, Unity C# reference source code, Infer.NET, ...
V3097Possible exception: type marked by [Serializable] contains non-serializable members not marked by [NonSerialized].
Accord.Net.
V3102Suspicious access to element by a constant index inside a loop.
Accord.Net, Mono, SharpDevelop.
V3105The 'a' variable was used after it was assigned through null-conditional operator. NullReferenceException is possible.
Microsoft Bot Builder.
V3106Possibly index is out of bound.
FastReport.
V3108It is not recommended to return null or throw exceptions from 'ToString()' method.
Orchard CMS, FastReport.
V3110Possible infinite recursion.
Orchard CMS, Umbraco, PascalABC.NET, FastReport.
V3112An abnormality within similar comparisons. It is possible that a typo is present inside the expression.
Mono.
V3115It is not recommended to throw exceptions from 'Equals(object obj)' method.
GitExtensions, Media Portal 2, PascalABC.NET, Unity C# reference source code.
V3117Constructor parameter is not used.
PowerShell, Infer.NET, FastReport.
V3118A component of TimeSpan is used, which does not represent full time interval. Possibly 'Total*' value was intended instead.
Orchard CMS, Media Portal 2, MSBuild.
V3125The object was used after it was verified against null. Check lines: N1, N2.
Umbraco, SharpDevelop, Media Portal 2, PascalABC.NET, Unity C# reference source code.
V3127Two similar code fragments were found. Perhaps this is a typo and 'X' variable should be used instead of 'Y'.
Media Portal 2.
V3128The field (property) is used before it is initialized in constructor.
SharpDevelop, PascalABC.NET.
V3130Priority of the '&&' operator is higher than that of the '||' operator. Possible missing parentheses.
Media Portal 2.
V3136Constant expression in switch statement.
Unity C# reference source code.

Do you make errors in the code?

Check your code
with PVS-Studio

Static code analysis
for C, C++, and C#

goto PVS-Studio;