@@ -516,9 +516,9 @@ static bool iscast(const Token *tok)
516516 return false ;
517517}
518518
519- static const Token* findTypeEnd (const Token* tok)
519+ static Token* findTypeEnd (Token* tok)
520520{
521- while (Token::Match (tok, " %name%|.|::|<|(|template|decltype|sizeof" )) {
521+ while (Token::Match (tok, " %name%|.|::|*|&| <|(|template|decltype|sizeof" )) {
522522 if (Token::Match (tok, " (|<" ))
523523 tok = tok->link ();
524524 if (!tok)
@@ -528,6 +528,11 @@ static const Token* findTypeEnd(const Token* tok)
528528 return tok;
529529}
530530
531+ static const Token* findTypeEnd (const Token* tok)
532+ {
533+ return findTypeEnd (const_cast <Token*>(tok));
534+ }
535+
531536static const Token * findLambdaEndScope (const Token *tok)
532537{
533538 if (!Token::simpleMatch (tok, " [" ))
@@ -867,10 +872,7 @@ static void compilePrecedence2(Token *&tok, AST_state& state)
867872 if (Token::Match (curlyBracket, " mutable|const" ))
868873 curlyBracket = curlyBracket->next ();
869874 if (curlyBracket && curlyBracket->originalName () == " ->" ) {
870- while (Token::Match (curlyBracket, " %name%|.|::|&|*" ))
871- curlyBracket = curlyBracket->next ();
872- if (curlyBracket && curlyBracket->str () == " <" && curlyBracket->link ())
873- curlyBracket = curlyBracket->link ()->next ();
875+ curlyBracket = findTypeEnd (curlyBracket->next ());
874876 }
875877 if (curlyBracket && curlyBracket->str () == " {" ) {
876878 squareBracket->astOperand1 (roundBracket);
0 commit comments