V786. Assigning the value C to the X variable looks suspicious. The value range of the variable: [A, B].

The analyzer detected that a variable is assigned a value that is beyond its value range.

Consider a few examples that trigger this warning:

bool b;
....
b = 100;

Assigning the value 100 to a variable of type bool makes no sense. This may be a typo, and some other variable was probably meant to be used instead of 'b'.

Another example:

struct S
{
  int flag : 1;
}
....
S s;
s.flag = 1;

The 'flag' bit field can take values from the range [-1, 0], not [0, 1], as it might seem at first. The reason is that this variable is signed. If you need a bit field with the range [0, 1], make it 'unsigned':

struct S
{
  unsigned flag : 1;
}
....
S s;
s.flag = 1;

This diagnostic is classified as:

You can look at examples of errors detected by the V786 diagnostic.


Bugs Found

Checked Projects
411
Collected Errors
14 123
This website uses cookies and other technology to provide you a more personalized experience. By continuing the view of our web-pages you accept the terms of using these files. If you don't want your personal data to be processed, please, leave this site. Learn More →
Accept