Skip to content

Commit c2b02bd

Browse files
Fix #11341 FP compareBoolExpressionWithInt, '<' is interpreted as comparison operator instead of template argument start (danmar#7707)
1 parent 67e27ba commit c2b02bd

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

lib/tokenize.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3605,6 +3605,9 @@ void Tokenizer::concatenateNegativeNumberAndAnyPositive()
36053605
if (!Token::Match(tok, "?|:|,|(|[|{|return|case|sizeof|%op% +|-") || tok->tokType() == Token::eIncDecOp)
36063606
continue;
36073607

3608+
if (tok->findOpeningBracket())
3609+
continue;
3610+
36083611
while (tok->str() != ">" && tok->next() && tok->strAt(1) == "+" && (!Token::Match(tok->tokAt(2), "%name% (|;") || Token::Match(tok, "%op%")))
36093612
tok->deleteNext();
36103613

test/testtokenize.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,6 +1011,8 @@ class TestTokenizer : public TestFixture {
10111011
ASSERT_EQUALS("int x [ 2 ] = { -2 , 1 }", tokenizeAndStringify("int x[2] = {-2,1}"));
10121012

10131013
ASSERT_EQUALS("f ( 123 )", tokenizeAndStringify("f(+123)"));
1014+
1015+
ASSERT_EQUALS("std :: extent_v < A > - 1 ;", tokenizeAndStringify("std::extent_v<A> - 1;")); // #11341
10141016
}
10151017

10161018

0 commit comments

Comments
 (0)