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. This number is given in the left column. Click on it to see the diagnostic rule description in the documentation. The right column contains a link to the corresponding error samples.

Some diagnostics haven't detected any bugs in open-source projects yet. The lower you are in the list, the more diagnostics with no error samples there will be. The reason is simple: the later a certain rule had been added, the fewer projects were analyzed with this rule included into the rule set and therefore the fewer chances for it to demonstrate its capabilities.

The fact that projects were being checked at different times determines one more special thing about the bug database. 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.

V501 There are identical sub-expressions to the left and to the right of the 'foo' operator.
View examples of errors for these projects: ADAPTIVE Communication Environment (ACE), Apache HTTP Server, Audacity, Blender, Chromium, Clang, Crystal Space 3D SDK, Dolphin Emulator, EA WebKit, EchoVNC, Fennec Media, IPP Samples, ...
V502 Perhaps the '?:' operator works in a different way than it was expected. The '?:' operator has a lower priority than the 'foo' operator.
View examples of errors for these projects: Chromium, FCEUX, Grid Control Re-dux, IPP Samples, MongoDB, Newton Game Dynamics, OTS, ReactOS.
V503 This is a nonsensical comparison: pointer < 0.
View examples of errors for these projects: Chromium, IPP Samples, Xpdf.
V504 It is highly probable that the semicolon ';' is missing after 'return' keyword.
We haven't yet come across such errors in open source projects.
V505 The 'alloca' function is used inside the loop. This can quickly overflow stack.
View examples of errors for these projects: Crystal Space 3D SDK, DeSmuME, Multi-threaded Dynamic Queue, Pixie.
V506 Pointer to local variable 'X' is stored outside the scope of this variable. Such a pointer will become invalid.
We haven't yet come across such errors in open source projects.
V507 Pointer to local array 'X' is stored outside the scope of this array. Such a pointer will become invalid.
View examples of errors for these projects: MySQL, Pixie, TortoiseSVN.
V508 The use of 'new type(n)' pattern was detected. Probably meant: 'new type[n]'.
We haven't yet come across such errors in open source projects.
V509 The 'throw' operator inside the destructor should be placed within the try..catch block. Raising exception inside the destructor is illegal.
View examples of errors for these projects: OGRE, TortoiseSVN.
V510 The 'Foo' function is not expected to receive class-type variable as 'N' actual argument.
View examples of errors for these projects: C++ Embedded Web Server, Quake-III-Arena, SMTP Client, TortoiseSVN, WinMerge.
V511 The sizeof() operator returns size of the pointer, and not of the array, in given expression.
View examples of errors for these projects: Chromium, Intel AMT SDK, MySQL, ReactOS, Samba, Shareaza, Wolfenstein 3D.
V512 A call of the 'Foo' function will lead to a buffer overflow or underflow.
View examples of errors for these projects: ADAPTIVE Communication Environment (ACE), Apache HTTP Server, Chromium, DeSmuME, Doom 3, Energy Checker SDK, Far Manager, Fennec Media, Game_Music_Emu library, IPP Samples, MAME, Miranda IM, ...
V513 Use _beginthreadex/_endthreadex functions instead of CreateThread/ExitThread functions.
We haven't yet come across such errors in open source projects.
V514 Dividing sizeof a pointer by another value. There is a probability of logical error presence.
View examples of errors for these projects: Miranda IM, Notepad++, ReactOS.
V515 The 'delete' operator is applied to non-pointer.
We haven't yet come across such errors in open source projects.
V516 Consider inspecting an odd expression. Non-null function pointer is compared to null.
View examples of errors for these projects: Audacity.
V517 The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence.
View examples of errors for these projects: Chromium, Doom 3, EIB Suite, ICU, Libwebpdecode, MAME, Notepad++, QT, Quake-III-Arena, ReactOS, SAGA GIS, TickerTape, ...
V518 The 'malloc' function allocates strange amount of memory calculated by 'strlen(expr)'. Perhaps the correct variant is strlen(expr) + 1.
View examples of errors for these projects: FCEUX.
V519 The 'x' variable is assigned values twice successively. Perhaps this is a mistake.
View examples of errors for these projects: CMake, Chromium, Clang, Crystal Space 3D SDK, D programming language, Doom 3, Fireflies, IPP Samples, IT++, Intel AMT SDK, Lugaru, Mozilla Firefox, ...
V520 The comma operator ',' in array index expression.
View examples of errors for these projects: G3D Content Pak.
V521 Such expressions using the ',' operator are dangerous. Make sure the expression is correct.
View examples of errors for these projects: G3D Content Pak, IPP Samples, Lugaru, OpenSSL, Quake-III-Arena, Trans-Proteomic Pipeline, Visualization Toolkit (VTK).
V522 Dereferencing of the null pointer might take place.
View examples of errors for these projects: Blender, Chromium, Clang, D programming language, GeoLib, PCSX2, ReactOS, Visualization Toolkit (VTK), ffdshow.
V523 The 'then' statement is equivalent to the 'else' statement.
View examples of errors for these projects: ADAPTIVE Communication Environment (ACE), Blender, Clang, IPP Samples, MAME, Multi-threaded Dynamic Queue, Notepad++, QT, ReactOS, Samba, Trans-Proteomic Pipeline, UCSniff, ...
V524 It is odd that the body of 'Foo_1' function is fully equivalent to the body of 'Foo_2' function.
View examples of errors for these projects: Blender, Clang, MAME, Nmap Security Scanner, OpenCV, TortoiseSVN.
V525 The code containing the collection of similar blocks. Check items X, Y, Z, ... in lines N1, N2, N3, ...
View examples of errors for these projects: Fennec Media, Miranda IM, MySQL, Notepad++, Win32++.
V526 The 'strcmp' function returns 0 if corresponding strings are equal. Consider examining the condition for mistakes.
View examples of errors for these projects: wxWidgets.
V527 It is odd that the 'zero' value is assigned to pointer. Probably meant: *ptr = zero.
View examples of errors for these projects: Apache HTTP Server, PNG library, ReactOS, Trans-Proteomic Pipeline.
V528 It is odd that pointer is compared with the 'zero' value. Probably meant: *ptr != zero.
View examples of errors for these projects: CxImage, Doom 3, Fennec Media, Miranda IM, Mozilla Firefox, Notepad++, OpenCV, Trans-Proteomic Pipeline, Ultimate TCP/IP, Visualization Toolkit (VTK).
V529 Odd semicolon ';' after 'if/for/while' operator.
View examples of errors for these projects: CamStudio, Fennec Media, Multi-threaded Dynamic Queue, ReactOS, Xpdf.
V530 The return value of function 'Foo' is required to be utilized.
View examples of errors for these projects: Battle for Wesnoth, Chromium, EchoVNC, IPP Samples, Intel AMT SDK, MongoDB, Nmap Security Scanner, ReactOS, TortoiseSVN, Visualization Toolkit (VTK), WinMerge, wxWidgets, ...
V531 It is odd that a sizeof() operator is multiplied by sizeof().
View examples of errors for these projects: NetDefender Firewall, ReactOS, XUIFramework.
V532 Consider inspecting the statement of '*pointer++' pattern. Probably meant: '(*pointer)++'.
View examples of errors for these projects: Apache HTTP Server, DeSmuME, FCEUX, IPP Samples, OpenSSL, eMule.
V533 It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'X'.
View examples of errors for these projects: Doom 3.
V534 It is likely that a wrong variable is being compared inside the 'for' operator. Consider reviewing 'X'.
We haven't yet come across such errors in open source projects.
V535 The variable 'X' is being used for this loop and for the outer loop.
View examples of errors for these projects: Doom 3, IPP Samples, Lugaru, OGRE, Visualization Toolkit (VTK).
V536 Be advised that the utilized constant value is represented by an octal form.
View examples of errors for these projects: Miranda IM, eLynx Image Processing SDK and Lab.
V537 Consider reviewing the correctness of 'X' item's usage.
View examples of errors for these projects: Blender, IPP Samples, Miranda IM, Quake-III-Arena, ReactOS, Trinity Core.
V538 The line contains control character 0x0B (vertical tabulation).
We haven't yet come across such errors in open source projects.
V539 Consider inspecting iterators which are being passed as arguments to function 'Foo'.
We haven't yet come across such errors in open source projects.
V540 Member 'x' should point to string terminated by two 0 characters.
View examples of errors for these projects: Chromium, Fennec Media.
V541 It is dangerous to print the string into itself.
View examples of errors for these projects: CAMEL, Mozilla Firefox, PCSX2, UCSniff.
V542 Consider inspecting an odd type cast: 'Type1' to ' Type2'.
View examples of errors for these projects: Miranda IM.
V543 It is odd that value 'X' is assigned to the variable 'Y' of HRESULT type.
View examples of errors for these projects: WinMerge.
V544 It is odd that the value 'X' of HRESULT type is compared with 'Y'.
We haven't yet come across such errors in open source projects.
V545 Such conditional expression of 'if' operator is incorrect for the HRESULT type value 'Foo'. The SUCCEEDED or FAILED macro should be used instead.
We haven't yet come across such errors in open source projects.
V546 Member of a class is initialized by itself: 'Foo(Foo)'.
We haven't yet come across such errors in open source projects.
V547 Expression is always true/false.
View examples of errors for these projects: ADAPTIVE Communication Environment (ACE), Apache HTTP Server, BCmenu, CamStudio, Chromium, DOSBox, DeSmuME, FCEUX, Geocoding with SQL-Server, ICU, IPP Samples, Intel AMT SDK, ...
V548 Consider reviewing type casting. TYPE X[][] in not equivalent to TYPE **X.
We haven't yet come across such errors in open source projects.
V549 The 'first' argument of 'Foo' function is equal to the 'second' argument.
View examples of errors for these projects: Open Metronome, ReactOS.
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.
View examples of errors for these projects: CAMEL, ffdshow.
V551 The code under this 'case' label is unreachable.
We haven't yet come across such errors in open source projects.
V552 A bool type variable is being incremented. Perhaps another variable should be incremented instead.
We haven't yet come across such errors in open source projects.
V553 The length of function's body or class's declaration is more than 2000 lines long. You should consider refactoring the code.
We haven't yet come across such errors in open source projects.
V554 Incorrect use of smart pointer.
View examples of errors for these projects: Chromium.
V555 The expression of the 'A - B > 0' kind will work as 'A != B'.
We haven't yet come across such errors in open source projects.
V556 The values of different enum types are compared.
View examples of errors for these projects: Clang, XUIFramework.
V557 Array overrun is possible.
View examples of errors for these projects: Blender, CAMEL, CMake, Chromium, Doom 3, Dynamic Universal Music Bibliotheque, Energy Checker SDK, IPP Samples, Irrlicht Engine, LAME, Mozilla Firefox, Notepad++, ...
V558 Function returns the pointer/reference to temporary local object.
We haven't yet come across such errors in open source projects.
V559 Suspicious assignment inside the condition expression of 'if/while/for' operator.
View examples of errors for these projects: Intel AMT SDK, Miranda IM, ffdshow.
V560 A part of conditional expression is always true/false.
View examples of errors for these projects: Apache HTTP Server, CxImage, DeSmuME, Fireflies, Lugaru, Miranda IM, MongoDB, NetDefender Firewall, Notepad++, PCRE, PCSX2, QT, ...
V561 It's probably better to assign value to 'foo' variable than to declare it anew.
View examples of errors for these projects: FCEUX, Vscap.
V562 It's odd to compare a bool type value with a value of N.
View examples of errors for these projects: Blender, ReactOS, Spvolren.
V563 It is possible that this 'else' branch must apply to the previous 'if' statement.
View examples of errors for these projects: BCmenu, PeerBlock, Squirrel, Trans-Proteomic Pipeline.
V564 The '&' or '|' operator is applied to bool type value. You've probably forgotten to include parentheses or intended to use the '&&' or '||' operator.
View examples of errors for these projects: Battle for Wesnoth, Blender, Chromium, DOSBox, Doom 3, FCEUX, MySQL, Network Security Services (NSS), Wolfenstein 3D.
V565 An empty exception handler. Silent suppression of exceptions can hide the presence of bugs in source code during testing.
View examples of errors for these projects: G3D Content Pak.
V566 The integer constant is converted to pointer. Possibly an error or a bad coding style.
We haven't yet come across such errors in open source projects.
V567 Undefined behavior. The variable is modified while being used twice between sequence points.
View examples of errors for these projects: Doom 3, Fennec Media, IPP Samples, Miranda IM, SAGA GIS, ffdshow.
V568 It's odd that the argument of sizeof() operator is the expression.
View examples of errors for these projects: Apache HTTP Server, CxImage, Energy Checker SDK, FCEUX, Miranda IM, OpenCV, ReactOS, Wolfenstein 3D.
V569 Truncation of constant value.
We haven't yet come across such errors in open source projects.
V570 The variable is assigned to itself.
View examples of errors for these projects: OpenCV, QT, Quake-III-Arena, ReactOS.
V571 Recurring check. This condition was already verified in previous line.
View examples of errors for these projects: Blender, Energy Checker SDK, IPP Samples, Notepad++, QT.
V572 It is odd that the object which was created using 'new' operator is immediately casted to another type.
View examples of errors for these projects: wxWidgets.
V573 Uninitialized variable 'Foo' was used. The variable was used to initialize itself.
We haven't yet come across such errors in open source projects.
V574 The pointer is used simultaneously as an array and as a pointer to single object.
We haven't yet come across such errors in open source projects.
V575 Function receives an odd argument.
View examples of errors for these projects: Doom 3, Fennec Media, G3D Content Pak, Miranda IM, Mozilla Firefox, ReactOS.
V576 Incorrect format. Consider checking the N actual argument of the 'Foo' function.
View examples of errors for these projects: CamStudio, DeSmuME, Doom 3, Energy Checker SDK, Far Manager, Intel AMT SDK, Mozilla Firefox, PeerBlock, ReactOS, ffdshow.
V577 Label is present inside a switch(). It is possible that these are misprints and 'default:' operator should be used instead.
We haven't yet come across such errors in open source projects.
V578 An odd bitwise operation detected. Consider verifying it.
We haven't yet come across such errors in open source projects.
V579 The 'Foo' function receives the pointer and its size as arguments. It is possibly a mistake. Inspect the N argument.
View examples of errors for these projects: ADAPTIVE Communication Environment (ACE), Apache HTTP Server, Blender, CamStudio, Chromium, Dolphin Emulator, Doom 3, Far Manager, MAME, Mozilla Firefox, OpenSSL, PeerBlock, ...
V580 An odd explicit type casting. Consider verifying it.
We haven't yet come across such errors in open source projects.
V581 The conditional expressions of the 'if' operators situated alongside each other are identical.
View examples of errors for these projects: MongoDB.
V582 Consider reviewing the source code which operates the container.
We haven't yet come across such errors in open source projects.
V583 The '?:' operator, regardless of its conditional expression, always returns one and the same value.
View examples of errors for these projects: MAME.
V584 The same value is present on both sides of the operator. The expression is incorrect or it can be simplified.
View examples of errors for these projects: Far Manager.
V585 An attempt to release the memory in which the 'Foo' local variable is stored.
We haven't yet come across such errors in open source projects.
V586 The 'Foo' function is called twice for deallocation of the same resource.
View examples of errors for these projects: Blender.
V587 An odd sequence of assignments of this kind: A = B; B = A;.
We haven't yet come across such errors in open source projects.
V588 The expression of the 'A =+ B' kind is utilized. Consider reviewing it, as it is possible that 'A += B' was meant.
View examples of errors for these projects: Libxml2, Trans-Proteomic Pipeline.
V589 The expression of the 'A =- B' kind is utilized. Consider reviewing it, as it is possible that 'A -= B' was meant.
We haven't yet come across such errors in open source projects.
V590 Consider inspecting this expression. The expression is excessive or contains a misprint.
View examples of errors for these projects: FCEUX, Notepad++, ReactOS, Stickies.
V591 Non-void function should return a value.
View examples of errors for these projects: Quake-III-Arena.
V592 The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present.
View examples of errors for these projects: wxWidgets.
V593 Consider reviewing the expression of the 'A = B == C' kind. The expression is calculated as following: 'A = (B == C)'.
View examples of errors for these projects: ReactOS, Vscap.
V594 The pointer steps out of array's bounds.
View examples of errors for these projects: ReactOS.
V595 The pointer was utilized before it was verified against nullptr.
View examples of errors for these projects: ADAPTIVE Communication Environment (ACE), Blender, Clang, Doom 3, EchoVNC, IPP Samples, LAME, MAME, MongoDB, Mozilla Firefox, Newton Game Dynamics, OpenCV, ...
V596 The object was created but it is not being used. The 'throw' keyword could be missing.
We haven't yet come across such errors in open source projects.
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.
View examples of errors for these projects: CamStudio, Crypto++, Dolphin Emulator, Samba, Tor, Trans-Proteomic Pipeline, UCSniff, eMule.
V598 The 'memset/memcpy' function is used to nullify/copy the fields of 'Foo' class. Virtual method table will be damaged by this.
View examples of errors for these projects: IPP Samples.
V599 The virtual destructor is not present, although the 'Foo' class contains virtual functions.
View examples of errors for these projects: WinMerge.
V600 Consider inspecting the condition. The 'Foo' pointer is always not equal to NULL.
View examples of errors for these projects: Notepad++, OpenSSL.
V601 An odd implicit type casting.
View examples of errors for these projects: IPP Samples.
V602 Consider inspecting this expression. '<' possibly should be replaced with '<<'.
We haven't yet come across such errors in open source projects.
V603 The object was created but it is not being used. If you wish to call constructor, 'this->Foo::Foo(....)' should be used.
View examples of errors for these projects: Trans-Proteomic Pipeline, eMule.
V604 It is odd that the number of iterations in the loop equals to the size of the pointer.
We haven't yet come across such errors in open source projects.
V605 Consider verifying the expression. An unsigned value is compared to the number -NN.
We haven't yet come across such errors in open source projects.
V606 Ownerless token 'Foo'.
View examples of errors for these projects: RunAsAdmin Explorer Shim.
V607 Ownerless expression 'Foo'.
View examples of errors for these projects: IPP Samples, Trans-Proteomic Pipeline.
V608 Recurring sequence of explicit type casts.
We haven't yet come across such errors in open source projects.
V609 Divide or mod by zero.
We haven't yet come across such errors in open source projects.
V610 Undefined behavior. Check the shift operator.
View examples of errors for these projects: Blender, Clang, DeSmuME, FAAC, Game_Music_Emu library, MAME, OpenCV, ReactOS, Samba, UCSniff, lib7z.
V611 The memory allocation and deallocation methods are incompatible.
View examples of errors for these projects: OpenCV.
V612 An unconditional 'break/continue/return/goto' within a loop.
View examples of errors for these projects: Clang, D programming language, Embedded SSL Library, OpenCV, PCSX2, ReactOS, Trans-Proteomic Pipeline.
V613 Strange pointer arithmetic with 'malloc/new'.
We haven't yet come across such errors in open source projects.
V614 Uninitialized variable 'Foo' used.
View examples of errors for these projects: IPP Samples, MPC-HC, ReactOS, Trans-Proteomic Pipeline.
V615 An odd explicit conversion from 'float *' type to 'double *' type.
We haven't yet come across such errors in open source projects.
V616 The 'Foo' named constant with the value of 0 is used in the bitwise operation.
We haven't yet come across such errors in open source projects.
V617 Consider inspecting the condition. An argument of the '|' bitwise operation always contains a non-zero value.
View examples of errors for these projects: ABackup, OpenSSL, ResizableLib, ffdshow.
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);
We haven't yet come across such errors in open source projects.
V619 An array is being utilized as a pointer to single object.
We haven't yet come across such errors in open source projects.
V620 It's unusual that the expression of sizeof(T)*N kind is being summed with the pointer to T type.
We haven't yet come across such errors in open source projects.
V621 Consider inspecting the 'for' operator. It's possible that the loop will be executed incorrectly or won't be executed at all.
We haven't yet come across such errors in open source projects.
V622 Consider inspecting the 'switch' statement. It's possible that the first 'case' operator is missing.
We haven't yet come across such errors in open source projects.
V623 Consider inspecting the '?:' operator. A temporary object is being created and subsequently destroyed.
We haven't yet come across such errors in open source projects.
V624 The constant NN is being utilized. The resulting value could be inaccurate. Consider using the M_NN constant from <math.h>.
View examples of errors for these projects: ffdshow.
V625 Consider inspecting the 'for' operator. Initial and final values of the iterator are the same.
We haven't yet come across such errors in open source projects.
V626 Consider checking for misprints. It's possible that ',' should be replaced by ';'.
We haven't yet come across such errors in open source projects.
V627 Consider inspecting the expression. The argument of sizeof() is the macro which expands to a number.
View examples of errors for these projects: Samba.
V628 It's possible that the line was commented out improperly, thus altering the program's operation logics.
We haven't yet come across such errors in open source projects.
V629 It's possible that the line was commented out improperly, thus altering the program's operation logics.
View examples of errors for these projects: Clang, Xpdf.
V630 The 'malloc' function is used to allocate memory for an array of objects which are classes containing constructors/destructors.
We haven't yet come across such errors in open source projects.
V631 Consider inspecting the 'Foo' function call. Defining an absolute path to the file or directory is considered a poor style.
View examples of errors for these projects: ffdshow.
V632 Consider inspecting the NN argument of the 'Foo' function. It is odd that the argument is of the 'T' type.
We haven't yet come across such errors in open source projects.
V633 Consider inspecting the expression. Probably the '!=' should be used here.
We haven't yet come across such errors in open source projects.
V634 The priority of the '+' operation is higher than that of the '<<' operation. It's possible that parentheses should be used in the expression.
We haven't yet come across such errors in open source projects.
V635 Consider inspecting the expression. The length should probably be multiplied by the sizeof(wchar_t).
We haven't yet come across such errors in open source projects.
V636 The expression was implicitly casted from integer type to real type. Consider utilizing an explicit type cast to avoid overflow or loss of a fractional part.
View examples of errors for these projects: CxImage, libevent.
V637 Two opposite conditions were encountered. The second condition is always false.
View examples of errors for these projects: OpenCV.
V638 A terminal null is present inside a string. The '\\0xNN' characters were encountered. Probably meant: '\\xNN'.
We haven't yet come across such errors in open source projects.
V639 Consider inspecting the expression for function call. It is possible that one of the closing ')' brackets was positioned incorrectly.
We haven't yet come across such errors in open source projects.
V640 The code's operational logic does not correspond with its formatting.
View examples of errors for these projects: ReactOS, XUIFramework, Xpdf.
V641 The size of the allocated memory buffer is not a multiple of the element size.
We haven't yet come across such errors in open source projects.
V642 Saving the function result inside the 'byte' type variable is inappropriate. The significant bits could be lost breaking the program's logic.
View examples of errors for these projects: ReactOS, Xpdf.
V643 Unusual pointer arithmetic. The value of the 'char' type is being added to the string pointer.
We haven't yet come across such errors in open source projects.
V644 A suspicious function declaration. It is possible that the T type object was meant to be created.
We haven't yet come across such errors in open source projects.
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.
View examples of errors for these projects: ReactOS.
V646 Consider inspecting the application's logic. It's possible that 'else' keyword is missing.
We haven't yet come across such errors in open source projects.
V647 The value of 'A' type is assigned to the pointer of 'B' type.
We haven't yet come across such errors in open source projects.
V648 Priority of the '&&' operation is higher than that of the '||' operation.
View examples of errors for these projects: Wolfenstein 3D.
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.
View examples of errors for these projects: Miranda IM, RunAsAdmin Explorer Shim, Wolfenstein 3D.
V650 Type casting operation is utilized 2 times in succession. Next, the '+' operation is executed. Probably meant: (T1)((T2)a + b).
We haven't yet come across such errors in open source projects.
V651 An odd operation of the 'sizeof(X)/sizeof(T)' kind is performed, where 'X' is of the 'class' type.
We haven't yet come across such errors in open source projects.
V652 The operation is executed 3 or more times in succession.
We haven't yet come across such errors in open source projects.
V653 A suspicious string consisting of two parts is used for array initialization. It is possible that a comma is missing.
We haven't yet come across such errors in open source projects.
V654 The condition of loop is always true/false.
We haven't yet come across such errors in open source projects.
V655 The strings was concatenated but are not utilized. Consider inspecting the expression.
We haven't yet come across such errors in open source projects.
V656 Variables are initialized through the call to the same function. It's probably an error or un-optimized code.
View examples of errors for these projects: Doom 3, ReactOS.
V657 It's odd that this function always returns one and the same value of NN.
We haven't yet come across such errors in open source projects.
V658 A value is being subtracted from the unsigned variable. This can result in an overflow. In such a case, the comparison operation can potentially behave unexpectedly.
We haven't yet come across such errors in open source projects.
V659 Declarations of functions with 'Foo' name differ in the 'const' keyword only, but the bodies of these functions have different composition. This is suspicious and can possibly be an error.
We haven't yet come across such errors in open source projects.
V660 The program contains an unused label and a function call: 'CC:AA()'. It's possible that the following was intended: 'CC::AA()'.
We haven't yet come across such errors in open source projects.
V661 A suspicious expression 'A[B < C]'. Probably meant 'A[B] < C'.
We haven't yet come across such errors in open source projects.
V662 Consider inspecting the loop expression. Different containers are utilized for setting up initial and final values of the iterator.
We haven't yet come across such errors in open source projects.
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.
We haven't yet come across such errors in open source projects.
V664 The pointer is being dereferenced on the initialization list before it is verified against null inside the body of the constructor function.
We haven't yet come across such errors in open source projects.
V665 Possibly, the usage of '#pragma warning(default: X)' is incorrect in this context. The '#pragma warning(push/pop)' should be used instead.
We haven't yet come across such errors in open source projects.
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.
We haven't yet come across such errors in open source projects.
V667 The 'throw' operator does not possess any arguments and is not situated within the 'catch' block.
We haven't yet come across such errors in open source projects.
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.
We haven't yet come across such errors in open source projects.