# MISRA Discussion Forums

Full Version: The Meaning of Rule 12.6?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I am trying to understand this rule and need someone to clarify its exact meaning.

which of the following are violations of Rule 12.6?

Code:
```if((x==y)|(y==a))/*Violation?, could || have been meant?*/    {        }```
This is a violation of the old equivalent rule 36 but is it still a violation now?

Code:
```a=a+y+x+(x||y); /*Violation, effectively boolean expression used with + operator*/```

Code:
```int32_t x=5; int32_t y=11; if(x||y) /*Could this be a violation??? because x and y are not effectively boolean*/    {           }```

Thanks for you help!
Code:
```if ( ( x == y ) | ( y == a ) ) /*Violation?, could || have been meant?*/    {           } a = a + y + x + ( x || y );```

These are violations of 12.6. as effectively boolean expressions are being used as the operand of an operator other than &&, || and !.

Code:
```int32_t x = 5; int32_t y = 11; if ( x || y ) /*Could this be a violation??? because x and y are not effectively boolean*/    {           }```

This is a violation of the first sentence of 12.6.