Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
R.13.5 When does a function have persistent side effects
#1
Consider the following example:
Code:
bool fn ( int x )
{
   static int y;
   if ( x > 0 )
   {   y = x;  }  /* causes persistent side effect if reached */
   return ....
}

void call ( bool flag )
{
    if ( flag &&  fn(-3) ) /* Does RHS contain persistent side effect ? */
    { .... }
}
In this example the call of "fn(-3)" never executes the code "y=x" and therefore no persistent side effect will occur.
Is this a violation of rule 13.5?
Posted by and on behalf of the MISRA C Working Group


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)