﻿# V578\. Suspicious bitwise operation was detected\. Consider inspecting it\.

The analyzer detected a potential error in an expression handling bits\. A part of the expression is meaningless or excessive\. Usually such errors occur due to a misprint\.

Consider this sample:

```cpp
if (up & (PARAMETER_DPDU | PARAMETER_DPDU | PARAMETER_NG))
```

The PARAMETER\_DPDU constant is used twice here\. In a correct code there must be two different constants: PARAMETER\_DPDU and PARAMETER\_DPDV\. The letter 'U' resembles 'V' and that is why this misprint has occurred\. This is the correct code:

```cpp
if (up & (PARAMETER_DPDU | PARAMETER_DPDV | PARAMETER_NG))
```

Another example\. There is no error here but the code is excessive:

```cpp
if (((pfds[i].dwFlags & pPFD->dwFlags) & pPFD->dwFlags)
    != pPFD->dwFlags)
```

This is a shorter code:

```cpp
if ((pfds[i].dwFlags & pPFD->dwFlags) != pPFD->dwFlags)
```

This  diagnostic  also  generates  a  warning when the label name begins with "case"\. A space character is most probably missing\. For example, the label "case1:" should be written as "case 1:"\.