Examples of errors detected by the V625 diagnostic
V625. Initial and final values of the iterator are the same. Consider inspecting the 'for' operator.
GCC
V625 Consider inspecting the 'for' operator. Initial and final values of the iterator are the same. sese.c 201
void free_sese_info (sese_info_p region)
{
region->params.release ();
region->loop_nest.release ();
for (rename_map_t::iterator it = region->rename_map->begin();
it != region->rename_map->begin (); ++it) // <=
(*it).second.release();
....
}
Similar errors can be found in some other places:
- V625 Consider inspecting the 'for' operator. Initial and final values of the iterator are the same. sese.c 205
Oracle VM Virtual Box
V625 Consider inspecting the 'for' operator. Initial and final values of the iterator are the same. state_transform.c 1365
void
crStateTransformDiff(...., CRContext *fromCtx, CRContext *toCtx )
{
....
for (i = to->colorStack.depth; i <= to->colorStack.depth; i++)
{
LOADMATRIX(to->colorStack.stack + i);
from->colorStack.stack[i] = to->colorStack.stack[i];
/* Don't want to push on the current matrix */
if (i != to->colorStack.depth)
diff_api.PushMatrix();
}
....
}
LibreOffice
V625 Consider inspecting the 'for' operator. Initial and final values of the iterator are the same. uiregionsw.cxx 120
static void lcl_FillSubRegionList(....)
{
....
for( IDocumentMarkAccess::const_iterator_t
ppMark = pMarkAccess->getBookmarksBegin(); // <=
ppMark != pMarkAccess->getBookmarksBegin(); // <=
++ppMark)
{
const ::sw::mark::IMark* pBkmk = ppMark->get();
if( pBkmk->IsExpanded() )
rSubRegions.InsertEntry( pBkmk->GetName() );
}
}
Synergy
V625 Consider inspecting the 'for' operator. Initial and final values of the iterator are the same. cserver.cpp 233
CServer::~CServer()
{
....
for (COldClients::iterator index = m_oldClients.begin();
index != m_oldClients.begin(); ++index) {
....
}