18-06-2012, 05:59 PM
Firstly, official answers given in this forum are normative. However, as with other standards and guidelines, this does not mean that they are necessarily error-free. As experience is gained with using the guidelines, it may be necessary to post corrections to both the original guidelines and postings in this forum.
Your question rightly identifies a discrepancy between two answers given in this forum. The source of the discrepancy is the answer given in 2005 to the posting viewtopic.php?f=69&t=272. In this answer, it was stated that a Loop Counter is the operand of a relational operator in the second expression of the for statement. This should instead have stated that a Loop Counter is involved in the decision to terminate the loop in the second expression of the for statement.
This weaker requirement on Loop Counters would then allow i, as used in the response to viewtopic.php?f=69&t=874, to be defined as a Loop Counter provided that the value returned by TestIndex depends its first parameter.
Your question rightly identifies a discrepancy between two answers given in this forum. The source of the discrepancy is the answer given in 2005 to the posting viewtopic.php?f=69&t=272. In this answer, it was stated that a Loop Counter is the operand of a relational operator in the second expression of the for statement. This should instead have stated that a Loop Counter is involved in the decision to terminate the loop in the second expression of the for statement.
This weaker requirement on Loop Counters would then allow i, as used in the response to viewtopic.php?f=69&t=874, to be defined as a Loop Counter provided that the value returned by TestIndex depends its first parameter.
Posted by and on behalf of the MISRA C Working Group