MISRA Discussion Forums

Full Version: 12.4 and Non-Returning Functions
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
12.4 prohibits side-effects on the right hand side of '&&' or '||'. What if, on the right hand side, I place a function with no side-effects, provided it returns, but which does contain side-effects if it does not return (e.g., an assertion which writes to a log file of some sort)? Is such a function allowed on the right hand side of the logical operators?
MISRA-C Steering Team - 7th November 2006

Non-returning is considered to be a side effect, because it changes the program control flow.
If a function has any conditional side effect, then it is considered to have a side effect. It would therefore not be allowed by this rule