C6314

Note

This article applies to Visual Studio 2015. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

warning C6314: Incorrect order of operations: bitwise-or has higher precedence than the conditional-expression operator. Add parentheses to clarify intent

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.

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);  
}   

See Also

Bitwise Inclusive OR Operator: |
Conditional Operator: ? :