From 05f59a1567b05c3782c62dc34edf261c452c8f22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sat, 16 Apr 2011 17:45:14 +0200 Subject: [PATCH] Tokenizer: Fixed bug. When varid is 0 then %varid% doesn't work. Ticket: #2723 --- lib/tokenize.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index d77c0a0d0..b47604643 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -6234,9 +6234,10 @@ void Tokenizer::simplifyIfNotNull() { if (Token::Match(tok->tokAt(-2), "[;{}] %var%")) { - const unsigned int varid = tok->previous()->varId(); - if (Token::Match(tok, "= ( %varid% != 0 ) ;", varid) || - Token::Match(tok, "= ( 0 != %varid% ) ;", varid)) + const std::string varname(tok->previous()->str()); + + if (Token::Match(tok->tokAt(2), (varname + " != 0 ) ;").c_str()) || + Token::Match(tok->tokAt(2), ("0 != " + varname + " ) ;").c_str())) { tok = tok->tokAt(-2); Token::eraseTokens(tok, tok->tokAt(9));