C#


CSHARP.STRUCT.BW.ORC : Bitwise OR on Boolean Constant (C#)

Summary

An | operation operates on a Boolean constant.

C# has a bitwise and a logical-AND operation on Booleans, that is, & and &&. Similarly, C# has a bitwise and a logical-OR operation | and ||. The difference is that the logical operations have a short circuit semantics, that is, if the evaluation of the left-hand side is enough to determine the outcome of the operation, then the right-hand side is not evaluated; the bitwise operations, instead, evaluate both sides, always, which might be incorrect is most cases, or at least inefficient.

Properties

Class Name Bitwise OR on Boolean Constant (C#)
Significance reliability
Mnemonic CSHARP.STRUCT.BW.ORC
Categories
CWE CWE:480 Use of Incorrect Operator
Availability Available for C# only.
Enabling Checks for this warning class are enabled by default. To disable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += discard class="Bitwise OR on Boolean Constant (C#)"

Resolution

Use the logical (short-circuit) version of the operators on Booleans.

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.