The analyzer has detected an odd implicit type conversion. Such a type conversion might signal an error or carelessly written code.
Let's consider the first example.
std::string str;
bool bstr;
...
str = true;
Any programmer will be surprised on seeing an assignment of the 'true' value to a variable of the 'std::string' type. But this construct is quite permissible and working. The programmer just made a mistake here and wrote a wrong variable.
This is the correct code:
std::string str;
bool bstr;
...
bstr = true;
Consider the second example:
bool Ret(int *p)
{
if (!p)
return "p1";
...
}
The string literal "p1" turns into the 'true' variable and is returned from the function. It is a very odd code.
We cannot give you general recommendations on fixing such code, since every case must be considered individually.
This diagnostic rule is classified as:
|
You can look at examples of errors detected by the V601 diagnostic. |
Was this page helpful?
Your message has been sent. We will email you at
If you do not see the email in your inbox, please check if it is filtered to one of the following folders: