MISRA Discussion Forums

Full Version: Misra rule 42
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

I have a question concerning rule 42, which states : \"comma operator shall not be used, except in the control expression of a for loop\".

Now what is \"the control expression\" in following instruction : for(i = 0; i < 10; i++) {...}

Is it \"i = 0\" or \"i < 10\" or \"i++\" ?

Currently we use a GreenHills compiler with build-in misra checking and they are saying it is \"i < 10\".
Searching on google:
IAR and ABRAXAS says it is \"i = 0\" and \"i++\"

Now hopefully you can give me the correct answer.

Thank you,

The technical term is actually \"controlling expression\", not \"control expression\".

The wording is here:

and the footnote specifying which of the expressions is the controlling expression (the middle one) is here
Hi, many thankx, so greenhills was right.

Anyway, where came this rule from? Because the comma operator is only usefull in the two other expressions, like:

for(i = 0,j = 0; i < 10; i++, j++)