From 045e9e692bb5799ccb47198761ba76f084f4c8b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Fri, 21 Mar 2014 08:48:49 +0100 Subject: [PATCH] ValueFlow: restricted bailouts in for loops --- lib/valueflow.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/valueflow.cpp b/lib/valueflow.cpp index bdb9604ec..e7e72ec7b 100644 --- a/lib/valueflow.cpp +++ b/lib/valueflow.cpp @@ -787,9 +787,10 @@ static void valueFlowForLoopSimplify(Token * const bodyStart, const unsigned int setTokenValue(tok2, value1); } - if (tok2->str() == "{") { + else if (Token::Match(tok2, ") {") && Token::findmatch(tok2->link(), "%varid%", tok2, varid)) { + const Token *start = tok2->link(); if (settings->debugwarnings) - bailout(tokenlist, errorLogger, tok2, "For loop variable " + tok2->str() + " stopping on {"); + bailout(tokenlist, errorLogger, tok2, "For loop variable stopping on {"); break; } }