The analyzer detected a potential error: code contains comparison of enum values which have different types.
Consider a sample:
enum ErrorTypeA { E_OK, E_FAIL }; enum ErrorTypeB { E_ERROR, E_SUCCESS }; void Foo(ErrorTypeB status) { if (status == E_OK) { ... } }
The programmer used a wrong name in the comparison by accident, so the program's logic is disrupted. This is the correct code:
void Foo(ErrorTypeB status) { if (status == E_SUCCESS) { ... } }
Comparison of values of different enum types is not necessarily an error, but you must review such code.
This diagnostic is classified as:
|
You can look at examples of errors detected by the V556 diagnostic. |