diff --git a/lib/checkcondition.cpp b/lib/checkcondition.cpp index a1081e8a4..61db3fe12 100644 --- a/lib/checkcondition.cpp +++ b/lib/checkcondition.cpp @@ -648,13 +648,10 @@ void CheckCondition::multiCondition2() if (Token::Match(parent->astParent(), "%assign%")) break; } - if (_tokenizer->isCPP() && Token::Match(tok, "%name% <<|>>") && (!tok->valueType() || !tok->valueType()->isIntegral())) + if (_tokenizer->isCPP() && Token::Match(tok, "%name% <<") && (!tok->valueType() || !tok->valueType()->isIntegral())) + break; + if (isLikelyStreamRead(_tokenizer->isCPP(), tok->next()) || isLikelyStreamRead(_tokenizer->isCPP(), tok->previous())) break; - if (_tokenizer->isCPP() && Token::simpleMatch(tok->previous(), ">>")) { - const Token *rhs = tok->previous()->astOperand1(); - if (!rhs || !rhs->valueType() || !rhs->valueType()->isIntegral()) - break; - } if (Token::Match(tok, "%name% [")) { const Token *tok2 = tok->linkAt(1); while (Token::simpleMatch(tok2, "] ["))