diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 3bf79ca03..9e553975e 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -4076,36 +4076,6 @@ bool Tokenizer::simplifyTokenList() simplifyCasts(); - // simplify "x=realloc(y,0);" => "free(y); x=0;".. - for (Token *tok = _tokens; tok; tok = tok->next()) - { - if (Token::Match(tok, "; %var% = realloc ( %var% , 0 ) ;")) - { - const std::string varname(tok->next()->str()); - const unsigned int varid(tok->next()->varId()); - - // Delete the "%var% =" - tok->deleteNext(); - tok->deleteNext(); - - // Change function name "realloc" to "free" - tok->next()->str("free"); - - // delete the ", 0" - Token::eraseTokens(tok->tokAt(3), tok->tokAt(6)); - - // goto the ";" - tok = tok->tokAt(5); - - // insert "var=0;" - tok->insertToken(";"); - tok->insertToken("0"); - tok->insertToken("="); - tok->insertToken(varname); - tok->next()->varId(varid); - } - } - // Simplify simple calculations.. simplifyCalculations(); @@ -4145,6 +4115,36 @@ bool Tokenizer::simplifyTokenList() } } + // simplify "x=realloc(y,0);" => "free(y); x=0;".. + for (Token *tok = _tokens; tok; tok = tok->next()) + { + if (Token::Match(tok, "; %var% = realloc ( %var% , 0 ) ;")) + { + const std::string varname(tok->next()->str()); + const unsigned int varid(tok->next()->varId()); + + // Delete the "%var% =" + tok->deleteNext(); + tok->deleteNext(); + + // Change function name "realloc" to "free" + tok->next()->str("free"); + + // delete the ", 0" + Token::eraseTokens(tok->tokAt(3), tok->tokAt(6)); + + // goto the ";" + tok = tok->tokAt(5); + + // insert "var=0;" + tok->insertToken(";"); + tok->insertToken("0"); + tok->insertToken("="); + tok->insertToken(varname); + tok->next()->varId(varid); + } + } + // Change initialisation of variable to assignment simplifyInitVar();