Warning C6314
Incorrect order of operations: bitwise-or has higher precedence than the conditional-expression operator. Add parentheses to clarify intent
Remarks
This message indicates that an expression that contains a bitwise-or operator (|
) was detected in the tested expression of a conditional operation (?:
).
The conditional operator has lower precedence than bitwise operators. If the tested expression should contain the bitwise-or operator, then parentheses should be added around the conditional-expression.
Code analysis name: BITORVSQUESTION
Example
The following code generates this warning:
int SystemState();
int f(int SignalValue)
{
return SystemState() | (SignalValue != 0) ? 1 : 0;
}
To correct this warning, use the following code:
int SystemState();
int f(int SignalValue)
{
return SystemState() | ((SignalValue != 0) ? 1 : 0);
}