Мы регулярно проверяем различные open-source проекты с помощью PVS-Studio. Результаты проверки мы отправляем разработчикам и, как правило, описываем в статье. Помимо этого, мы пополняем базу примеров ошибок. Именно она и представлена ниже на этой странице.
Ошибки разделены по номеру диагностического сообщения, с помощью которого они были найдены. В правом столбце приводится ссылка на соответствующие примеры ошибок.
Мы специально не стали делать возможность посмотреть все ошибки, найденные в конкретном проекте. Это даст неправильное впечатление о количестве ошибок в проекте и возможностях анализатора. Анализатор быстро развивается. Если он нашёл 10 ошибок в проекте год назад, вовсе не означает, что он найдет столько же ошибок и сейчас. Сравните для примера отчеты о проверке ReactOS: первый отчет, второй отчет (прошло полтора года).
Вы можете предложить нам для проверки другие open-source проекты. Типы проектов, которые умеет проверять PVS-Studio, приведены в описании инструмента.
Эта база может послужить уникальным материалом для размышлений о разработке стандартов кодирования, написания статей о правилах программирования и помочь в других исследованиях связанных с повышением надежности программного обеспечения. Желаем интересных исследований.
Код ошибки | Название ошибки | Список проектов |
V501 | There are identical sub-expressions to the left and to the right of the 'foo' operator. | Vangers: One For The Road, NCBI Genome Workbench, Stellarium, LibrePCB, Qalculate!, Bullet Physics SDK, PPSSPP, Celestia, TON, ROOT, ... |
V502 | Perhaps the '?:' operator works in a different way than it was expected. The '?:' operator has a lower priority than the 'foo' operator. | OpenJDK, CryEngine V, GCC, Linux Kernel, Scilab, Amazon Lumberyard, Perl 5, NCBI Genome Workbench, Clang, Heawei Ark Compiler, ... |
V503 | This is a nonsensical comparison: pointer < 0. | Scilab, OGDF, Asterisk, .NET CoreCLR, Haiku Operation System, GINV, FreeBSD Kernel, OpenToonz, Far2l, Tizen, ... |
V504 | It is highly probable that the semicolon ';' is missing after 'return' keyword. | Inkscape, Kodi. |
V505 | The '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. |
V506 | Pointer 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, Haiku Operation System. |
V507 | Pointer to local array 'X' is stored outside the scope of this array. Such a pointer will become invalid. | Source Engine SDK, Scilab, Miranda NG, MAME, GNU Octave, Inkscape, GCC, Tizen, Android, Doom 1, ... |
V509 | Exceptions that were raised inside noexcept functions must be wrapped in a try..catch block. | Chromium, Geant4 software, Protocol Buffers, Source Engine SDK, Data Distribution Service, FlightGear, TortoiseGit, WebRTC, LibreOffice, 7-Zip, ... |
V510 | The '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, ... |
V511 | The 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. |
V512 | A call of the 'Foo' function will lead to a buffer overflow or underflow. | FreeBSD Kernel, Stickies, CodeLite, CryEngine V, Tizen, EFL Core Libraries, Ardour, WebRTC, XNU kernel, rdesktop, ... |
V513 | Use _beginthreadex/_endthreadex functions instead of CreateThread/ExitThread functions. | Multi Theft Auto, Trans-Proteomic Pipeline, SeqAn, Snes9x, PostgreSQL Database Management System, Source Engine SDK, Tesseract. |
V514 | Dividing sizeof a pointer by another value. There is a probability of logical error presence. | Miranda IM, ReactOS, Notepad++, OpenMS, OpenCOLLADA, Scilab, Miranda NG. |
V516 | Consider inspecting an odd expression. Non-null function pointer is compared to null. | Audacity, Micro-Manager. |
V517 | The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence. | Rosegarden, Ardour, XNU kernel, RT-Thread, TDLib, Krita, FreeRDP, Haiku Operation System, Bullet Physics SDK, ROOT, ... |
V518 | The 'malloc' function allocates strange amount of memory calculated by 'strlen(expr)'. Perhaps the correct variant is strlen(expr) + 1. | FCEUX. |
V519 | The 'x' variable is assigned values twice successively. Perhaps this is a mistake. | Protocol Buffers, ANGLE, SwiftShader, XNU kernel, RT-Thread, Krita, Android, NCBI Genome Workbench, libarchive, ROOT, ... |
V520 | The comma operator ',' in array index expression. | G3D Content Pak. |
V521 | Such 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, ... |
V522 | Dereferencing of the null pointer might take place. | XNU kernel, Krita, Android, Vangers: One For The Road, Perl 5, LibrePCB, Haiku Operation System, Kodi, ROOT, Amazon FreeRTOS, ... |
V523 | The 'then' statement is equivalent to the 'else' statement. | PDFium, RT-Thread, Krita, Amazon Lumberyard, Perl 5, NCBI Genome Workbench, LibreOffice, Qalculate!, libarchive, ROOT, ... |
V524 | It is odd that the body of 'Foo_1' function is fully equivalent to the body of 'Foo_2' function. | Chromium, OpenMW, Spring Engine, The GTK+ Project, Open X-Ray Engine, Tizen, MuseScore, FreeRDP, EAStdC, Heawei Ark Compiler, ... |
V525 | The code contains the collection of similar blocks. Check items X, Y, Z, ... in lines N1, N2, N3, ... | Notepad++, Miranda IM, MySQL, Trans-Proteomic Pipeline, SeqAn, Source Engine SDK, Scilab, SlimDX, Android, xrdp, ... |
V526 | The '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. |
V527 | It 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. |
V528 | It 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, ... |
V529 | Odd 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, ... |
V530 | The return value of function 'Foo' is required to be utilized. | CodeLite, Clang, CryEngine V, Scilab, Audacity, Ardour, Android, ANGLE, LibreOffice, Haiku Operation System, ... |
V531 | It is odd that a sizeof() operator is multiplied by sizeof(). | XUIFramework, NetDefender Firewall, ReactOS, CrashRpt library, Oracle VM Virtual Box, CMake. |
V532 | Consider 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. |
V533 | It 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. |
V534 | It 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, Qalculate!. |
V535 | The variable 'X' is being used for this loop and for the outer loop. | Wine Is Not an Emulator, Haiku Operation System, FreeBSD Kernel, The GTK+ Project, CryEngine V, Blender, Tizen, Android, NCBI Genome Workbench, libcurl, ... |
V536 | Be 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. |
V537 | Consider reviewing the correctness of 'X' item's usage. | IPP Samples, Miranda IM, ReactOS, Quake-III-Arena, Trinity Core, Blender, Source Engine SDK, Expat. |
V538 | The line contains control character 0x0B (vertical tabulation). | EA WebKit. |
V539 | Consider inspecting iterators which are being passed as arguments to function 'Foo'. | CryEngine V. |
V540 | Member 'x' should point to string terminated by two 0 characters. | Fennec Media, Chromium, WinSCP. |
V541 | It is dangerous to print a string into itself. | PCSX2, CAMEL, Mozilla Firefox, UCSniff, TinyCAD, Scilab, FreeBSD Kernel, Serious Engine 1 v.1.10, Ardour. |
V542 | Consider inspecting an odd type cast: 'Type1' to ' Type2'. | Miranda IM, Platinum. |
V543 | It is odd that value 'X' is assigned to the variable 'Y' of HRESULT type. | WinMerge, Oracle VM Virtual Box, Unreal Engine 4, Mozilla Thunderbird. |
V545 | Such 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. |
V546 | Member of a class is initialized with itself: 'Foo(Foo)'. | Boost (C++ libraries), OpenToonz, CryEngine V, ClickHouse, Amazon Lumberyard. |
V547 | Expression is always true/false. | Windows Calculator, FreeRDP, rdesktop, PPSSPP, Doom 1, Celestia, TON, Kodi, ROOT, Heawei Ark Compiler, ... |
V548 | Consider reviewing type casting. TYPE X[][] is not equivalent to TYPE **X. | Haiku Operation System. |
V549 | The '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, ... |
V550 | An 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, Windows Calculator. |
V552 | A bool type variable is being incremented. Perhaps another variable should be incremented instead. | 7-Zip. |
V554 | Incorrect use of smart pointer. | Chromium, Boost (C++ libraries), Haiku Operation System, OpenToonz, Casablanca, Nana, Skia Graphics Engine, Android, 0 A.D., LibreOffice. |
V555 | The 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. |
V556 | The values of different enum types are compared. | TortoiseGit, Linux Kernel, OpenToonz, Casablanca, Blender, SCIM, Tizen, EFL Core Libraries, Doom 1, Celestia, ... |
V557 | Array overrun is possible. | LibreOffice, FreeRDP, rdesktop, xrdp, EAStdC, Bullet Physics SDK, libarchive, Doom 1, Kodi, ROOT, ... |
V558 | Function returns the pointer/reference to temporary local object. | SeqAn, VirtualDub, Geant4 software, Clang, EFL Core Libraries, Android. |
V559 | Suspicious assignment inside the condition expression of 'if/while/for' operator. | Miranda IM, Intel AMT SDK, Data Distribution Service, Scilab, Miranda NG, The GTK+ Project, Serious Engine 1 v.1.10. |
V560 | A part of conditional expression is always true/false. | Windows Calculator, SpeedCrunch, FreeRDP, rdesktop, xrdp, Clang, EAStdC, TON, Platinum, Heawei Ark Compiler, ... |
V561 | It'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, ... |
V562 | It'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. |
V563 | It is possible that this 'else' branch must apply to the previous 'if' statement. | BCmenu, Squirrel, PeerBlock, Trans-Proteomic Pipeline, Cfront, Open X-Ray Engine. |
V564 | The '&' or '|' operator is applied to bool type value. You've probably forgotten to include parentheses or intended to use the '&&' or '||' operator. | Battle for Wesnoth, Blender, FFmpeg, Unreal Engine 4, OpenMW, K Desktop Environment, Oracle VM Virtual Box, Amazon Lumberyard, Perl 5, Haiku Operation System, ... |
V565 | An empty exception handler. Silent suppression of exceptions can hide the presence of bugs in source code during testing. | G3D Content Pak. |
V567 | The modification of a variable is unsequenced relative to another operation on the same variable. This may lead to undefined behavior. | Apple II emulator, Gamer_Z eXtreme Party, FreeSWITCH, CryEngine V, CMaNGOS, Far2l, Steinberg SDKs, ofPennerEasing, LibreOffice, Doom 1, ... |
V568 | It'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, ... |
V569 | Truncation of constant value. | FreeBSD Kernel. |
V570 | The variable is assigned to itself. | CryEngine V, Steinberg SDKs, Amazon Lumberyard, Azure Service Fabric, Vangers: One For The Road, 0 A.D., NCBI Genome Workbench, Clang, Haiku Operation System, Heawei Ark Compiler, ... |
V571 | Recurring check. This condition was already verified in previous line. | Bind, Tizen, Enlightenment, EFL Core Libraries, Ardour, Steinberg SDKs, NCBI Genome Workbench, LibrePCB, Kodi, ROOT, ... |
V572 | It is odd that the object which was created using 'new' operator is immediately cast to another type. | wxWidgets, Cocos2d-x, Tizen. |
V573 | Uninitialized variable 'Foo' was used. The variable was used to initialize itself. | Multi Theft Auto, Firebird, Word for Windows 1.1a, Clang. |
V574 | The pointer is used simultaneously as an array and as a pointer to single object. | Amazon FreeRTOS. |
V575 | Function receives an odd argument. | OpenVR, SwiftShader, Yasm, WebRTC, Android, Vangers: One For The Road, Qt, FreeRDP, Celestia, Kodi, ... |
V576 | Incorrect format. Consider checking the N actual argument of the 'Foo' function. | Dolphin Smalltalk 7, Open X-Ray Engine, ReOpenLDAP, ICQ, Far2l, EFL Core Libraries, Tizen, Enlightenment, 0 A.D., FreeRDP, ... |
V578 | An odd bitwise operation detected. Consider verifying it. | NetXMS, RT-Thread, Android. |
V579 | The 'Foo' function receives the pointer and its size as arguments. It is possibly a mistake. Inspect the N argument. | FreeBSD Kernel, Serious Engine 1 v.1.10, Open X-Ray Engine, OpenJDK, CryEngine V, GDB, GNU GRUB, MySQL, RT-Thread, Doom 1, ... |
V581 | The conditional expressions of the 'if' statements situated alongside each other are identical. | Open X-Ray Engine, Inkscape, GDB, Linux Kernel, Far2l, Skia Graphics Engine, Krita, FreeRDP, Celestia, TON, ... |
V583 | The '?:' 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, ... |
V584 | The same value is present on both sides of the operator. The expression is incorrect or it can be simplified. | Far2l, Asterisk, Ruby MRI. |
V586 | The 'Foo' function is called twice for deallocation of the same resource. | Blender, OpenMW, VNL, Miranda NG. |
V587 | An odd sequence of assignments of this kind: A = B; B = A;. | Windows 8 Driver Samples, Mozilla Firefox, LibreOffice, Git, GNU GRUB, EFL Core Libraries. |
V588 | The expression of the 'A =+ B' kind is utilized. Consider reviewing it, as it is possible that 'A += B' was meant. | Libxml2, Trans-Proteomic Pipeline. |
V590 | Consider inspecting this expression. The expression is excessive or contains a misprint. | Clang, Scilab, EFL Core Libraries, Audacity, Krita, Qt, NCBI Genome Workbench, Qalculate!, libarchive, ROOT, ... |
V591 | Non-void function should return a value. | SETI@home, Unreal Engine 4, Open X-Ray Engine, Chromium, Clang, Aspell, EFL Core Libraries, Android, NCBI Genome Workbench, ROOT, ... |
V592 | The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present. | wxWidgets, Spring Engine, TensorFlow, CMake. |
V593 | Consider reviewing the expression of the 'A = B == C' kind. The expression is calculated as following: 'A = (B == C)'. | SETI@home, FreeSWITCH, FreeBSD Kernel, Blender, ReOpenLDAP, OpenSubdiv, CMaNGOS, XNU kernel, Android, ROOT, ... |
V594 | The pointer steps out of array's bounds. | ReactOS. |
V595 | The pointer was utilized before it was verified against nullptr. Check lines: N1, N2. | NCBI Genome Workbench, LibrePCB, SpeedCrunch, Qalculate!, FreeRDP, Haiku Operation System, CMake, Celestia, ROOT, Amazon FreeRTOS, ... |
V596 | The object was created but it is not being used. The 'throw' keyword could be missing. | Geant4 software, FlightGear, OpenMW, FreeCAD, Computational Network Toolkit, OpenToonz, MySQL, Amazon Lumberyard, Haiku Operation System, ROOT, ... |
V597 | The 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. | Tizen, EFL Core Libraries, Sphinx (search engine), MySQL, WebRTC, XNU kernel, Android, NCBI Genome Workbench, PPSSPP, ROOT, ... |
V598 | The '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. |
V599 | The 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++, ... |
V600 | Consider inspecting the condition. The 'Foo' pointer is always not equal to NULL. | Notepad++, OpenSSL, Multi Theft Auto, Firebird, ITK, FreeSWITCH. |
V601 | An odd implicit type casting. | IPP Samples, WebPagetest, Micro-Manager, Doxygen, Firebird, Notepad++, SCIM, Rosegarden, TON. |
V602 | Consider inspecting this expression. '<' possibly should be replaced with '<<'. | RT-Thread. |
V603 | The object was created but it is not being used. If you wish to call constructor, 'this->Foo::Foo(....)' should be used. | ChakraCore, Open X-Ray Engine, CryEngine V, EA WebKit, Android, Azure Service Fabric, Etc2Comp, NCBI Genome Workbench, Stellarium, Haiku Operation System, ... |
V604 | It is odd that the number of iterations in the loop equals to the size of the pointer. | Windows 8 Driver Samples. |
V605 | Consider verifying the expression. An unsigned value is compared to the number - NN. | VirtualDub, PHP:Hypertext Preprocessor, FreeSWITCH, The GTK+ Project. |
V606 | Ownerless token 'Foo'. | RunAsAdmin Explorer Shim, Windows 8 Driver Samples, Oracle VM Virtual Box, Amazon Lumberyard, Azure Service Fabric. |
V607 | Ownerless 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, ... |
V609 | Divide or mod by zero. | VNL, Mozilla Thunderbird, Inkscape, Chromium, EFL Core Libraries, SpeedCrunch, Haiku Operation System, ROOT. |
V610 | Undefined behavior. Check the shift operator. | FreeBSD Kernel, Valgrind, EFL Core Libraries, Audacity, XNU kernel, RT-Thread, System Shock, Qt, SpeedCrunch, TON, ... |
V611 | The memory allocation and deallocation methods are incompatible. | Scilab, Tizen, Sphinx (search engine), Firebird, Android, Amazon Lumberyard, Azure Service Fabric, Vangers: One For The Road, Qalculate!, Haiku Operation System, ... |
V612 | An unconditional 'break/continue/return/goto' within a loop. | LibreOffice, Unreal Engine 4, FreeSWITCH, Casablanca, Inkscape, CMaNGOS, Audacity, Rosegarden, XNU kernel, RT-Thread, ... |
V614 | Uninitialized variable 'Foo' used. | TensorFlow, EFL Core Libraries, MuseScore, Ardour, RT-Thread, Android, System Shock, NCBI Genome Workbench, Haiku Operation System, CMake, ... |
V615 | An odd explicit conversion from 'float *' type to 'double *' type. | OpenJDK. |
V616 | The '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. |
V617 | Consider 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. |
V618 | It'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. |
V619 | An array is being utilized as a pointer to single object. | Amazon FreeRTOS. |
V620 | It'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. |
V621 | Consider inspecting the 'for' operator. It's possible that the loop will be executed incorrectly or won't be executed at all. | Haiku Operation System, SETI@home, Unreal Engine 4, FreeSWITCH, Mozilla Thunderbird, FreeBSD Kernel, EFL Core Libraries, Godot Engine, Windows Calculator, ROOT, ... |
V622 | Consider inspecting the 'switch' statement. It's possible that the first 'case' operator is missing. | K Desktop Environment, Miranda NG, CryEngine V, Tizen, Amazon Lumberyard, Clang. |
V623 | Consider inspecting the '?:' operator. A temporary object is being created and subsequently destroyed. | Far2l. |
V624 | The 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, Bullet Physics SDK, Celestia. |
V625 | Consider inspecting the 'for' operator. Initial and final values of the iterator are the same. | Synergy, LibreOffice, Oracle VM Virtual Box, GCC. |
V626 | Consider checking for misprints. It's possible that ',' should be replaced by ';'. | Oracle VM Virtual Box, LibreOffice. |
V627 | Consider inspecting the expression. The argument of sizeof() is the macro which expands to a number. | Samba, Network Security Services (NSS), Data Distribution Service, WebRTC, Haiku Operation System. |
V628 | It's possible that the line was commented out improperly, thus altering the program's operation logics. | Trans-Proteomic Pipeline, Spring Engine, Inkscape. |
V629 | Consider 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, ... |
V630 | The '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. |
V631 | Consider inspecting the 'Foo' function call. Defining an absolute path to the file or directory is considered a poor style. | ffdshow, NetXMS, VirtualDub. |
V634 | The 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, Stellarium. |
V635 | Consider inspecting the expression. The length should probably be multiplied by the sizeof(wchar_t). | WinMerge, Miranda NG. |
V636 | The 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, ... |
V637 | Two 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, ... |
V638 | A terminal null is present inside a string. The '\0xNN' characters were encountered. Probably meant: '\xNN'. | Oracle VM Virtual Box, Linux Kernel. |
V639 | Consider inspecting the expression for function call. It is possible that one of the closing ')' parentheses was positioned incorrectly. | CryEngine 3 SDK, Eigen, LibreOffice. |
V640 | The 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, ... |
V641 | The buffer size is not a multiple of the element size. | Miranda NG. |
V642 | Saving 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, Amazon FreeRTOS. |
V643 | Unusual pointer arithmetic. The value of the 'char' type is being added to the string pointer. | Spring Engine, OpenToonz. |
V645 | The 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, Haiku Operation System. |
V646 | Consider inspecting the application's logic. It's possible that 'else' keyword is missing. | FreeBSD Kernel, Serious Engine 1 v.1.10, Inkscape, Aspell, EFL Core Libraries, Tizen, XNU kernel, Krita, Clang, ROOT, ... |
V647 | The value of 'A' type is assigned to the pointer of 'B' type. | Tizen. |
V648 | Priority of the '&&' operation is higher than that of the '||' operation. | Wolfenstein 3D, Oracle VM Virtual Box. |
V649 | There 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, ... |
V650 | Type casting operation is utilized 2 times in succession. Next, the '+' operation is executed. Probably meant: (T1)((T2)a + b). | Wine Is Not an Emulator. |
V652 | The operation is executed 3 or more times in succession. | FreeSWITCH. |
V653 | A suspicious string consisting of two parts is used for the initialization. It is possible that a comma is missing. | Asterisk, Linux Kernel. |
V654 | The condition of loop is always true/false. | Miranda NG, Linux Kernel, Unreal Engine 4, EFL Core Libraries, Ardour, RT-Thread, Android, Stellarium, Haiku Operation System, Doom 1, ... |
V655 | The strings were concatenated but are not utilized. Consider inspecting the expression. | Scilab, K Desktop Environment, FreeCAD, OpenToonz, Clang. |
V656 | Variables 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. |
V661 | A suspicious expression 'A[B < C]'. Probably meant 'A[B] < C'. | NCBI Genome Workbench. |
V662 | Consider inspecting the loop expression. Different containers are utilized for setting up initial and final values of the iterator. | Rhino (JavaScript engine). |
V663 | Infinite 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, ROOT. |
V665 | Possibly, 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, ... |
V666 | Consider 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, ... |
V668 | There 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. | EFL Core Libraries, Rosegarden, SwiftShader, EA WebKit, Krita, Android, 0 A.D., SpeedCrunch, Celestia, TON, ... |
V669 | The 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. |
V670 | An 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, Haiku Operation System. |
V671 | It is possible that the 'swap' function interchanges a variable with itself. | Haiku Operation System. |
V672 | There 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. | Qalculate!, Haiku Operation System. |
V673 | More 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. |
V674 | The expression contains a suspicious mix of integer and real types. | Unreal Engine 4, Open X-Ray Engine, ICQ, CMaNGOS, Tizen, EFL Core Libraries, MuseScore, Rosegarden, 0 A.D., Stellarium, ... |
V675 | Writing into the read-only memory. | Tizen. |
V676 | It is incorrect to compare the variable of BOOL type with TRUE. | VirtualDub, Firebird, CryEngine 3 SDK, Apple II emulator, Amazon FreeRTOS. |
V677 | Custom declaration of a standard type. The declaration from system header files should be used instead. | SlimDX, Miranda NG. |
V678 | An object is used as an argument to its own method. Consider checking the first actual argument of the 'Foo' function. | Shareaza, Mozilla Thunderbird, ROOT. |
V681 | The 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. |
V684 | A value of variable is not modified. Consider inspecting the expression. It is possible that '1' should be present instead of '0'. | V8 JavaScript Engine. |
V686 | A pattern was detected: A || (A && ...). The expression is excessive or contains a logical error. | Blender, Tor, EFL Core Libraries, Tizen. |
V688 | The '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. |
V690 | The class implements a copy constructor/operator=, but lacks the operator=/copy constructor. | Bitcoin, Casablanca, OpenJDK, Tizen. |
V691 | Empirical analysis. It is possible that a typo is present inside the string literal. The 'foo' word is suspicious. | Chromium. |
V692 | An 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. |
V693 | Consider inspecting conditional expression of the loop. It is possible that 'i < X.size()' should be used instead of 'X.size()'. | Godot Engine. |
V694 | The 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. |
V695 | Range intersections are possible within conditional expressions. | Linux Kernel, The GTK+ Project, CryEngine V, Scilab, Android. |
V696 | The '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. |
V698 | strcmp()-like functions can return not only the values -1, 0 and 1, but any values. | .NET CoreCLR. |
V700 | Consider inspecting the 'T foo = foo = x;' expression. It is odd that variable is initialized through itself. | .NET CoreCLR, Unreal Engine 4, Apple II emulator. |
V701 | realloc() possible leak: when realloc() fails in allocating memory, original pointer is lost. Consider assigning realloc() to a temporary pointer. | Partio, OpenSubdiv, EFL Core Libraries, Tizen, Aspell, Free Lossless Audio Codec, WebRTC, 0 A.D., Qt, Qalculate!, ... |
V702 | Classes should always be derived from std::exception (and alike) as 'public'. | Windows Calculator, Celestia. |
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++. |
V705 | It 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, Haiku Operation System. |
V706 | Suspicious division: sizeof(X) / Value. Size of every element in X array does not equal to divisor. | Haiku Operation System. |
V707 | Giving short names to global variables is considered to be bad practice. | Cfront, Yasm. |
V708 | Dangerous construction is used: 'm[x] = m.size()', where 'm' is of 'T' class. This may lead to undefined behavior. | Chromium, Clang. |
V709 | Suspicious comparison found: 'a == b == c'. Remember that 'a == b == c' is not equal to 'a == b && b == c'. | Unreal Engine 4, Amazon Lumberyard, Bullet Physics SDK. |
V711 | It 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. |
V712 | Be 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. |
V713 | The pointer was utilized in the logical expression before it was verified against nullptr in the same logical expression. | Haiku Operation System, FreeSWITCH, Mozilla Thunderbird, ChakraCore, FreeBSD Kernel, Firebird, CryEngine V, Notepad++, V8 JavaScript Engine, Celestia, ... |
V714 | Variable is not passed into foreach loop by a reference, but its value is changed inside of the loop. | Krita. |
V715 | The 'while' operator has empty body. Suspicious pattern detected. | Enlightenment. |
V716 | Suspicious type conversion: HRESULT -> BOOL (BOOL -> HRESULT). | LibreOffice, Wine Is Not an Emulator, Dolphin Smalltalk 7. |
V718 | The 'Foo' function should not be called from 'DllMain' function. | LibreOffice, Open X-Ray Engine. |
V719 | The switch statement does not cover all values of the enum. | Appleseed, Firebird, Windows Calculator. |
V721 | The VARIANT_BOOL type is utilized incorrectly. The true value (VARIANT_TRUE) is defined as -1. | MAME. |
V724 | Converting integers or pointers to BOOL can lead to a loss of high-order bits. Non-zero value can become 'FALSE'. | Ruby MRI. |
V726 | An attempt to free memory containing the 'int A[10]' array by using the 'free(A)' function. | CamStudio, Shareaza. |
V728 | An excessive check can be simplified. The '||' operator is surrounded by opposite expressions 'x' and '!x'. | CMaNGOS, EFL Core Libraries, Audacity, Krita, Vangers: One For The Road, LibreOffice, Windows Calculator, EAStdC, CMake, Heawei Ark Compiler, ... |
V729 | Function body contains the 'X' label that is not used by any 'goto' statements. | FreeBSD Kernel, CodeLite. |
V730 | Not all members of a class are initialized inside the constructor. | Miranda IM, MuseScore, TDLib, ANGLE, LibrePCB. |
V732 | Unary minus operator does not modify a bool type value. | Miranda IM, Krita. |
V733 | It is possible that macro expansion resulted in incorrect evaluation order. | FreeBSD Kernel, Linux Kernel. |
V734 | An excessive expression. Examine the substrings "abc" and "abcd". | CryEngine V, Linux Kernel. |
V737 | It is possible that ',' comma is missing at the end of the string. | Inkscape. |
V739 | EOF should not be compared with a value of the 'char' type. Consider using the 'int' type. | Computational Network Toolkit, Android, NCBI Genome Workbench, rdesktop. |
V743 | The memory areas must not overlap. Use 'memmove' function. | Stickies. |
V745 | A 'wchar_t *' type string is incorrectly converted to 'BSTR' type string. | Oracle VM Virtual Box. |
V746 | Object 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. |
V749 | Destructor of the object will be invoked a second time after leaving the object's scope. | 0 A.D.. |
V751 | Parameter is not used inside function's body. | Linux Kernel, Valgrind, Steinberg SDKs, HarfBuzz, System Shock, Godot Engine, Bullet Physics SDK. |
V756 | The 'X' counter is not used inside a nested loop. Consider inspecting usage of 'Y' counter. | LibreOffice. |
V757 | It is possible that an incorrect variable is compared with null after type conversion using 'dynamic_cast'. | LibreOffice, Haiku Operation System. |
V760 | Two identical text blocks detected. The second block starts with NN string. | CMaNGOS, TensorFlow, Bind, PDFium, Windows Calculator, FreeRDP. |
V762 | Consider inspecting virtual function arguments. See NN argument of function 'Foo' in derived class and base class. | Notepad++, MuseScore, Ardour. |
V763 | Parameter is always rewritten in function body before being used. | Inkscape, ReOpenLDAP, Chromium, NCBI Genome Workbench, LibreOffice, Stellarium, Haiku Operation System. |
V764 | Possible incorrect order of arguments passed to function. | Linux Kernel, CMaNGOS, LibreOffice. |
V765 | A compound assignment expression 'X += X + N' is suspicious. Consider inspecting it for a possible error. | MuseScore, LibreOffice. |
V766 | An item with the same key has already been added. | Chromium, MuseScore, Android, NCBI Genome Workbench. |
V767 | Suspicious access to element by a constant index inside a loop. | Skia Graphics Engine, RT-Thread, Godot Engine, ROOT. |
V768 | The variable is of enum type. It is odd that it is used as a variable of a Boolean-type. | MySQL, Firebird, SwiftShader, XNU kernel, RT-Thread, Krita, Android, Qt, Doom 1, ROOT, ... |
V769 | The pointer in the expression equals nullptr. The resulting value is senseless and it should not be used. | Tor, Aspell, EFL Core Libraries, MySQL, V8 JavaScript Engine, Clang, Hunspell, Android, Qt, FreeRDP. |
V772 | Calling a 'delete' operator for a void pointer will cause undefined behavior. | Haiku Operation System. |
V773 | The function was exited without releasing the pointer/handle. A memory/resource leak is possible. | Stellarium, LibrePCB, Windows Calculator, FreeRDP, Haiku Operation System, Bullet Physics SDK, CMake, Celestia, Kodi, ROOT, ... |
V774 | The pointer was used after the memory was released. | Augeas, Bind, MuseScore, ICU, Qalculate!, Haiku Operation System. |
V778 | Two similar code fragments were found. Perhaps, this is a typo and 'X' variable should be used instead of 'Y'. | .NET CoreCLR, FreeBSD Kernel, Aspell, Tizen, PDFium, SwiftShader, EA WebKit, Android, Godot Engine, LibrePCB, ... |
V779 | Unreachable code detected. It is possible that an error is present. | ICU, Android, Amazon Lumberyard, Vangers: One For The Road, Godot Engine, NCBI Genome Workbench, Stellarium, rdesktop, Clang, Doom 1, ... |
V780 | The object of non-passive (non-PDS) type cannot be used with the function. | Tizen. |
V781 | The 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, Haiku Operation System. |
V783 | Dereferencing of the invalid iterator 'X' might take place. | Rosegarden, 0 A.D.. |
V784 | The size of the bit mask is less than the size of the first operand. This will cause the loss of higher bits. | Perl 5, Clang. |
V786 | It is odd that value C is assigned to the X variable. The value range of variable: [A, B]. | Tizen. |
V789 | Iterators for the container, used in the range-based for loop, become invalid upon a function call. | ClickHouse, MuseScore, WebRTC. |
V792 | The function located to the right of the '|' and '&' operators will be called regardless of the value of the left operand. Consider using '||' and '&&' instead. | Stellarium, Haiku Operation System. |
V793 | It 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. |
V794 | The assignment operator should be protected from the case of this == &src. | Chromium, ANGLE, RE2, WebRTC, EA WebKit, TDLib, Android, LibreOffice, SpeedCrunch. |
V796 | A 'break' statement is probably missing in a 'switch' statement. | Chromium, Android, System Shock, Godot Engine. |
V797 | The function is used as if it returned a bool type. The return value of the function should probably be compared with std::string::npos. | Qalculate!. |
V799 | The variable is not used after memory has been allocated for it. Consider checking the use of this variable. | Krita. |
V1001 | The variable is assigned but is not used by the end of the function. | EFL Core Libraries, MuseScore, Skia Graphics Engine, XNU kernel, Android, LibreOffice, Clang, TON. |
V1002 | A class, containing pointers, constructor and destructor, is copied by the automatically generated operator= or copy constructor. | Ardour. |
V1003 | The macro expression is dangerous, or it is suspicious. | TON. |
V1004 | The pointer was used unsafely after it was verified against nullptr. | Rosegarden, Steinberg SDKs, PDFium, SwiftShader, XNU kernel, Krita, Android, Clang, Amazon FreeRTOS. |
V1005 | The resource was acquired using 'X' function but was released using incompatible 'Y' function. | FreeRDP. |
V1008 | Consider inspecting the 'for' operator. No more than one iteration of the loop will be performed. | LibreOffice. |
V1009 | Check the array initialization. Only the first element is initialized explicitly. | EAStdC. |
V1013 | Suspicious subexpression in a sequence of similar comparisons. | LibreOffice. |
V1022 | An exception was thrown by pointer. Consider throwing it by value instead. | LibrePCB, Haiku Operation System. |
V1023 | A pointer without owner is added to the container by the 'emplace_back' method. A memory leak will occur in case of an exception. | Clang. |
V1028 | Possible overflow. Consider casting operands, not the result. | FreeRDP, Clang. |
V1037 | Two or more case-branches perform the same actions. | TON. |
V1040 | Possible typo in the spelling of a pre-defined macro name. | libuv. |
V1044 | Loop break conditions do not depend on the number of iterations. | Mozilla Thunderbird. |
V1046 | Unsafe usage of the 'bool' and integer types together in the operation '&='. | ROOT. |
V3001 | There are identical sub-expressions to the left and to the right of the 'foo' operator. | Media Portal 2, PascalABC.NET, Unity C# reference source code, Infer.NET, AWS SDK for .NET, .NET Core Libraries (CoreFX), Roslyn Analyzers, Azure PowerShell, Telerik UI for UWP, Azure SDK for .NET, ... |
V3002 | The switch statement does not cover all values of the enum. | SharpDevelop, Microsoft Code Contracts, Orchard CMS. |
V3003 | The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence. | Xamarin.Forms, WPF samples by Microsoft, Old NASA World Wind (C#), Mono, Media Portal 2, PascalABC.NET, SubtitleEdit, Infer.NET, .NET Core Libraries (CoreFX), Azure PowerShell, ... |
V3004 | The '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, ... |
V3005 | The 'x' variable is assigned to itself. | .NET Compiler Platform ("Roslyn"), Sony ATF, Xenko, WPF samples by Microsoft, Old NASA World Wind (C#), MSBuild, PascalABC.NET, SubtitleEdit, Azure PowerShell, OpenCvSharp, ... |
V3006 | The object was created but it is not being used. The 'throw' keyword could be missing. | Unity3D, Azure PowerShell. |
V3008 | The 'x' variable is assigned values twice successively. Perhaps this is a mistake. | Old NASA World Wind (C#), GitExtensions, Media Portal 2, PascalABC.NET, Unity C# reference source code, Infer.NET, AWS SDK for .NET, ShareX, Telerik UI for UWP, Orchard CMS, ... |
V3009 | It'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, AWS SDK for .NET, .NET Core Libraries (CoreFX). |
V3010 | The return value of function 'Foo' is required to be utilized. | Space Engineers, Old NASA World Wind (C#), Mono, GitExtensions, PowerShell, Orchard CMS, Media Portal 2, PascalABC.NET, Unity C# reference source code, OpenCvSharp, ... |
V3011 | Two opposite conditions were encountered. The second condition is always false. | MSBuild. |
V3012 | The '?:' operator, regardless of its conditional expression, always returns one and the same value. | MonoDevelop, IronPython and IronRuby, .NET Compiler Platform ("Roslyn"), Mono. |
V3013 | It 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, Telerik UI for UWP. |
V3014 | It 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. |
V3015 | It is likely that a wrong variable is being compared inside the 'for' operator. Consider reviewing 'X'. | Accord.Net, Mono, Entity Framework. |
V3018 | Consider inspecting the application's logic. It's possible that 'else' keyword is missing. | PascalABC.NET. |
V3019 | It is possible that an incorrect variable is compared with null after type conversion using 'as' keyword. | FlashDevelop, MSBuild, Mono, Microsoft Bot Builder, PowerShell, Media Portal 2, PascalABC.NET, Logify Alert Clients, Unity C# reference source code, Telerik UI for UWP, ... |
V3020 | An 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, Telerik UI for UWP. |
V3021 | There are two 'if' statements with identical conditional expressions. The first 'if' statement contains method return. This means that the second 'if' statement is senseless. | .NET Compiler Platform ("Roslyn"), Accord.Net, Old NASA World Wind (C#), Unity3D, Mono, SharpDevelop, Logify Alert Clients, Unity C# reference source code, .NET Core Libraries (CoreFX), OpenCvSharp, ... |
V3022 | Expression is always true/false. | Media Portal 2, PascalABC.NET, SubtitleEdit, Unity C# reference source code, Infer.NET, FastReport, AWS SDK for .NET, ShareX, Azure PowerShell, OpenCvSharp, ... |
V3023 | Consider inspecting this expression. The expression is excessive or contains a misprint. | SharpDevelop, MonoDevelop, IronPython and IronRuby, .NET Compiler Platform ("Roslyn"), Sony ATF, Xenko, Azure PowerShell. |
V3024 | An odd precise comparison. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon or Math.Abs(A - B) > Epsilon. | IronPython and IronRuby. |
V3025 | Incorrect format. Consider checking the N format items of the 'Foo' function. | .NET Compiler Platform ("Roslyn"), Xenko, Unity3D, MSBuild, Mono, GitExtensions, Umbraco, Unity C# reference source code, AWS SDK for .NET, Azure PowerShell, ... |
V3027 | The 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. |
V3028 | Consider inspecting the 'for' operator. Initial and final values of the iterator are the same. | Space Engineers, Media Portal 2. |
V3029 | The conditional expressions of the 'if' statements situated alongside each other are identical. | .NET Compiler Platform ("Roslyn"), Samples by the Infragistics Company, AWS SDK for .NET. |
V3030 | Recurring check. This condition was already verified in previous line. | SharpDevelop, Microsoft Code Contracts, .NET Core Libraries (CoreFX), IronPython and IronRuby, PascalABC.NET, Telerik UI for UWP. |
V3031 | An excessive check can be simplified. The operator '||' operator is surrounded by opposite expressions 'x' and '!x'. | SharpDevelop, Xamarin.Forms, FlashDevelop, Mono, Orchard CMS, Telerik UI for UWP. |
V3032 | Waiting 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. |
V3033 | It is possible that this 'else' branch must apply to the previous 'if' statement. | Old NASA World Wind (C#), Mono, PascalABC.NET. |
V3035 | Consider inspecting the expression. Probably the '+=' should be used here. | Lucene.Net. |
V3037 | An odd sequence of assignments of this kind: A = B; B = A; | Accord.Net, Old NASA World Wind (C#). |
V3038 | The argument was passed to method several times. It is possible that another argument should be passed instead. | SharpDevelop, Xamarin.Forms, PascalABC.NET, OpenCvSharp. |
V3041 | The 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, ShareX. |
V3042 | Possible NullReferenceException. The '?.' and '.' operators are used for accessing members of the same object. | Xamarin.Forms, .NET Core Libraries (CoreFX), Azure PowerShell. |
V3043 | The code's operational logic does not correspond with its formatting. | Sony ATF, Mono, PascalABC.NET. |
V3045 | WPF: 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. |
V3046 | WPF: the type registered for DependencyProperty does not correspond with the type of the property used to access it. | Samples by the Infragistics Company, Xenko. |
V3051 | An excessive type cast or check. The object is already of the same type. | Xamarin.Forms, Old NASA World Wind (C#), Mono, .NET Core Libraries (CoreFX). |
V3052 | The original exception object was swallowed. Stack of original exception could be lost. | Xamarin.Forms, FlashDevelop, SharpDevelop, PascalABC.NET. |
V3053 | An excessive expression. Examine the substrings "abc" and "abcd". | GitExtensions, Orchard CMS, SharpDevelop, PascalABC.NET, Unity C# reference source code, Azure SDK for .NET. |
V3056 | Consider reviewing the correctness of 'X' item's usage. | FlashDevelop. |
V3057 | Function receives an odd argument. | Unity3D, MSBuild, Orchard CMS, Umbraco. |
V3061 | Parameter 'A' is always rewritten in method body before being used. | Xenko, Accord.Net, Old NASA World Wind (C#), MSBuild, Mono, .NET Core Libraries (CoreFX), Telerik UI for UWP. |
V3062 | An object is used as an argument to its own method. Consider checking the first actual argument of the 'Foo' method. | Accord.Net, AWS SDK for .NET. |
V3063 | A 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, AWS SDK for .NET, .NET Core Libraries (CoreFX), OpenCvSharp. |
V3064 | Division or mod division by zero. | Accord.Net, Umbraco, SharpDevelop, Unity C# reference source code. |
V3065 | Parameter is not utilized inside method's body. | Xenko, Old NASA World Wind (C#). |
V3066 | Possible incorrect order of arguments passed to method. | FlashDevelop, Media Portal 2, .NET Core Libraries (CoreFX), Azure PowerShell, Telerik UI for UWP, OpenCvSharp, Azure SDK for .NET. |
V3070 | Uninitialized variables are used when initializing the 'A' variable. | Mono, PascalABC.NET. |
V3076 | Comparison with 'double.NaN' is meaningless. Use 'double.IsNaN()' method instead. | Old NASA World Wind (C#). |
V3077 | Property setter / event accessor does not utilize its 'value' parameter. | Azure PowerShell. |
V3078 | Original sorting order will be lost after repetitive call to 'OrderBy' method. Use 'ThenBy' method to preserve the original sorting. | SharpDevelop, Telerik UI for UWP. |
V3080 | Possible null dereference. | PowerShell, Umbraco, Media Portal 2, .NET Core Libraries (CoreFX), PascalABC.NET, Unity C# reference source code, Infer.NET, Roslyn Analyzers, Orchard CMS, Azure SDK for .NET, ... |
V3081 | The 'X' counter is not used inside a nested loop. Consider inspecting usage of 'Y' counter. | Entity Framework, Infer.NET. |
V3083 | Unsafe 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, AWS SDK for .NET, ShareX, Telerik UI for UWP, Azure SDK for .NET. |
V3087 | Type of variable enumerated in 'foreach' is not guaranteed to be castable to the type of collection's elements. | FlashDevelop. |
V3088 | The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present. | .NET Core Libraries (CoreFX). |
V3089 | Initializer 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. |
V3090 | Unsafe locking on an object. | Old NASA World Wind (C#), Mono, Logify Alert Clients. |
V3091 | Empirical analysis. It is possible that a typo is present inside the string literal. The 'foo' word is suspicious. | Azure PowerShell. |
V3092 | Range intersections are possible within conditional expressions. | Mono. |
V3093 | The operator evaluates both operands. Perhaps a short-circuit operator should be used instead. | Accord.Net, Old NASA World Wind (C#), NUnit, Azure PowerShell. |
V3095 | The object was used before it was verified against null. Check lines: N1, N2. | Media Portal 2, PascalABC.NET, Unity C# reference source code, Infer.NET, AWS SDK for .NET, .NET Core Libraries (CoreFX), Roslyn Analyzers, ShareX, Azure PowerShell, Azure SDK for .NET, ... |
V3097 | Possible exception: type marked by [Serializable] contains non-serializable members not marked by [NonSerialized]. | Accord.Net. |
V3102 | Suspicious access to element by a constant index inside a loop. | Accord.Net, Mono, SharpDevelop, .NET Core Libraries (CoreFX), Telerik UI for UWP. |
V3105 | The 'a' variable was used after it was assigned through null-conditional operator. NullReferenceException is possible. | Microsoft Bot Builder, .NET Core Libraries (CoreFX). |
V3106 | Possibly index is out of bound. | FastReport, .NET Core Libraries (CoreFX). |
V3108 | It is not recommended to return null or throw exceptions from 'ToString()' method. | Orchard CMS, FastReport, .NET Core Libraries (CoreFX), ShareX. |
V3110 | Possible infinite recursion. | Orchard CMS, Umbraco, PascalABC.NET, FastReport, AWS SDK for .NET, .NET Core Libraries (CoreFX). |
V3112 | An abnormality within similar comparisons. It is possible that a typo is present inside the expression. | Mono, Azure SDK for .NET. |
V3115 | It is not recommended to throw exceptions from 'Equals(object obj)' method. | GitExtensions, Media Portal 2, PascalABC.NET, Unity C# reference source code, .NET Core Libraries (CoreFX). |
V3117 | Constructor parameter is not used. | PowerShell, Infer.NET, FastReport, .NET Core Libraries (CoreFX). |
V3118 | A component of TimeSpan is used, which does not represent full time interval. Possibly 'Total*' value was intended instead. | Orchard CMS, Media Portal 2, MSBuild. |
V3121 | An enumeration was declared with 'Flags' attribute, but does not set any initializers to override default values. | Azure SDK for .NET. |
V3123 | Perhaps the '??' operator works in a different way than it was expected. Its priority is lower than priority of other operators in its left part. | Telerik UI for UWP. |
V3125 | The object was used after it was verified against null. Check lines: N1, N2. | SharpDevelop, Media Portal 2, PascalABC.NET, Unity C# reference source code, AWS SDK for .NET, .NET Core Libraries (CoreFX), Roslyn Analyzers, Azure PowerShell, Telerik UI for UWP, Azure SDK for .NET, ... |
V3127 | Two similar code fragments were found. Perhaps, this is a typo and 'X' variable should be used instead of 'Y'. | Media Portal 2, Roslyn Analyzers, Telerik UI for UWP, Orchard CMS, OpenCvSharp. |
V3128 | The field (property) is used before it is initialized in constructor. | SharpDevelop, PascalABC.NET, .NET Core Libraries (CoreFX). |
V3130 | Priority of the '&&' operator is higher than that of the '||' operator. Possible missing parentheses. | Media Portal 2. |
V3136 | Constant expression in switch statement. | Unity C# reference source code. |
V3137 | The variable is assigned but is not used by the end of the function. | Roslyn Analyzers, Azure PowerShell, Telerik UI for UWP. |
V3138 | String literal contains potential interpolated expression. | .NET Core Libraries (CoreFX). |
V3139 | Two or more case-branches perform the same actions. | .NET Core Libraries (CoreFX), Roslyn Analyzers, Orchard CMS. |
V3143 | The 'value' parameter is rewritten inside a property setter, and is not used after that. | Azure PowerShell. |
V3145 | Unsafe dereference of a WeakReference target. The object could have been garbage collected before the 'Target' property was accessed. | Telerik UI for UWP. |
V3146 | Possible null dereference. A method can return default null value. | Azure SDK for .NET. |
V6001 | There are identical sub-expressions to the left and to the right of the 'foo' operator. | IntelliJ IDEA Community Edition, Elasticsearch. |
V6002 | The switch statement does not cover all values of the enum. | CUBA Platform. |
V6003 | The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence. | Elasticsearch. |
V6004 | The 'then' statement is equivalent to the 'else' statement. | SonarQube. |
V6005 | The 'x' variable is assigned to itself. | Huawei Cloud. |
V6006 | The object was created but it is not being used. The 'throw' keyword could be missing. | Elasticsearch. |
V6007 | Expression is always true/false. | IntelliJ IDEA Community Edition, SpotBugs, Bouncy Castle, Elasticsearch, CUBA Platform, Apache Hive, Apache Dubbo, Huawei Cloud. |
V6008 | Potential null dereference. | Elasticsearch, Apache Hive, Huawei Cloud. |
V6009 | Function receives an odd argument. | Elasticsearch, CUBA Platform, Apache Hive, Apache Dubbo, Huawei Cloud. |
V6010 | The return value of function 'Foo' is required to be utilized. | Huawei Cloud. |
V6011 | The expression contains a suspicious mix of integer and real types. | IntelliJ IDEA Community Edition. |
V6013 | Comparison of arrays, strings, collections by reference. Possibly an equality comparison was intended. | Elasticsearch. |
V6014 | It's odd that this method always returns one and the same value of NN. | CUBA Platform. |
V6016 | Suspicious access to element by a constant index inside a loop. | Bouncy Castle, Apache Dubbo. |
V6019 | Unreachable code detected. It is possible that an error is present. | CUBA Platform, Apache Dubbo. |
V6020 | Division or mod division by zero. | Apache Hive. |
V6021 | The value is assigned to the 'x' variable but is not used. | SpotBugs, CUBA Platform, Huawei Cloud. |
V6022 | Parameter is not used inside method's body. | CUBA Platform, Huawei Cloud. |
V6023 | Parameter 'A' is always rewritten in method body before being used. | CUBA Platform. |
V6025 | Possibly index is out of bound. | Elasticsearch. |
V6026 | This value is already assigned to the 'b' variable. | CUBA Platform. |
V6030 | The function located to the right of the '|' and '&' operators will be called regardless of the value of the left operand. Consider using '||' and '&&' instead. | Apache Hive. |
V6032 | It is odd that the body of 'Foo_1' function is fully equivalent to the body of 'Foo_2' function. | SonarQube, CUBA Platform, Huawei Cloud. |
V6033 | An item with the same key has already been added. | SonarJava, Bouncy Castle. |
V6034 | Shift by N bits is inconsistent with the size of type. | Apache Hive. |
V6037 | An unconditional 'break/continue/return/goto' within a loop. | CUBA Platform. |
V6039 | There are two 'if' statements with identical conditional expressions. The first 'if' statement contains method return. This means that the second 'if' statement is senseless. | Elasticsearch. |
V6042 | The expression is checked for compatibility with type 'A', but is cast to type 'B'. | Apache Hive. |
V6046 | Incorrect format. Consider checking the N format items of the 'Foo' function. | Apache Hive. |
V6050 | Class initialization cycle is present. | Huawei Cloud. |
V6051 | Use of jump statements in 'finally' block can lead to the loss of unhandled exceptions. | Apache Hive. |
V6058 | Comparing objects of incompatible types. | Elasticsearch. |
V6060 | The reference was used before it was verified against null. | Bouncy Castle, Elasticsearch, CUBA Platform, Huawei Cloud. |
V6062 | Possible infinite recursion. | CUBA Platform. |
V6067 | Two or more case-branches perform the same actions. | Apache Dubbo. |