https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105436
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> --- I think the fix is just --- a/gcc/cp/parser.cc +++ b/gcc/cp/parser.cc @@ -33224,7 +33224,6 @@ cp_parser_next_token_ends_template_argument_p (cp_parser *parser) || ((cxx_dialect != cxx98) && token->type == CPP_RSHIFT) /* For better diagnostics, treat >>= like that too, that shouldn't appear non-nested in template arguments. */ - || token->type == CPP_GREATER_EQ || token->type == CPP_RSHIFT_EQ); } it doesn't regress anything and fixes this test. Probably just an oversight, the code doesn't match the comment.