Start here

Home
About Klocwork
What's new
Fixed issues
Release notes
Installation

Reference

C/C++ checkers
Java checkers
C# checkers
MISRA C 2004 checkers
MISRA C++ 2008 checkers
MISRA C 2012 checkers
MISRA C 2012 checkers with Amendment 1
Commands
Metrics
Troubleshooting
Reference

Product components

C/C++ Integration build analysis
Java Integration build analysis
Desktop analysis
Refactoring
Klocwork Static Code Analysis
Klocwork Code Review
Structure101
Tuning
Custom checkers

Coding environments

Visual Studio
Eclipse for C/C++
Eclipse for Java
IntelliJ IDEA
Other

Administration

Project configuration
Build configuration
Administration
Analysis performance
Server performance
Security/permissions
Licensing
Klocwork Static Code Analysis Web API
Klocwork Code Review Web API

Community

View help online
Visit RogueWave.com
Klocwork Support
Rogue Wave Videos

Legal

Legal information

MISRA.FOR.COND.EQ

++ or -- operations are not used to change loop counter, but condition tests loop counter for equality.

MISRA-C++ Rule 6-5-2 (required): If ''loop-counter'' is not modified by -- or ++, then, within ''condition'', the ''loop-counter'' shall only be used as an operand to <=, <, > or >=.

Rationale

When the loop-counter is modified using an operator other than '--' or '++', then '==' and '!=' shall not be used, as loop termination may not occur, which may be inconsistent with developer expectations.

Example

for ( i = 1; i != 10; i += 2 )  // Non-compliant
for ( i = 1; i <= 10; i += 2 )  // Compliant
for ( i = 1; i != 10; ++i )     // Compliant