@@ -3454,6 +3454,39 @@ class TestTokenizer : public TestFixture {
34543454 ASSERT_EQUALS (true , tok1->link () == tok2);
34553455 ASSERT_EQUALS (true , tok2->link () == tok1);
34563456 }
3457+
3458+ {
3459+ // #11453
3460+ const char code[] = " template<typename T>\n "
3461+ " std::array<T, 1> a{};\n "
3462+ " void f() {\n "
3463+ " if (a<int>[0]) {}\n "
3464+ " }\n " ;
3465+ errout.str (" " );
3466+ Tokenizer tokenizer (&settings0, this );
3467+ std::istringstream istr (code);
3468+ ASSERT (tokenizer.tokenize (istr, " test.cpp" ));
3469+ const Token* tok1 = Token::findsimplematch (tokenizer.tokens (), " < int" );
3470+ const Token* tok2 = Token::findsimplematch (tok1, " > [" );
3471+ ASSERT_EQUALS (true , tok1->link () == tok2);
3472+ ASSERT_EQUALS (true , tok2->link () == tok1);
3473+ }
3474+
3475+ {
3476+ // #11490
3477+ const char code[] = " void g() {\n "
3478+ " int b[2] = {};\n "
3479+ " if (b[idx<1>]) {}\n "
3480+ " }\n " ;
3481+ errout.str (" " );
3482+ Tokenizer tokenizer (&settings0, this );
3483+ std::istringstream istr (code);
3484+ ASSERT (tokenizer.tokenize (istr, " test.cpp" ));
3485+ const Token* tok1 = Token::findsimplematch (tokenizer.tokens (), " < 1" );
3486+ const Token* tok2 = Token::findsimplematch (tok1, " > ]" );
3487+ ASSERT_EQUALS (true , tok1->link () == tok2);
3488+ ASSERT_EQUALS (true , tok2->link () == tok1);
3489+ }
34573490 }
34583491
34593492 void simplifyString () {
0 commit comments