llvm-gcc-4.2-2.9/gcc/cp/parser.c
/* NUM_TEMPLATES were used in the current declaration.  If that is
   invalid, return FALSE and issue an error messages.  Otherwise,
   return TRUE.  */
NUM_TEMPLATES were used in the current declaration.  If that is
invalid, return FALSE and issue an error messages.  Otherwise,
return TRUE.
NUM_TEMPLATES were used in the current declaration . If that is invalid return FALSE and issue an error messages . Otherwise return TRUE .
static bool
cp_parser_check_template_parameters (cp_parser* parser,
				     unsigned num_templates)
{
  if (parser->num_template_parameter_lists < num_templates)
    {
      error ("too few template-parameter-lists");
      return false;
    }
  if (parser->num_template_parameter_lists == num_templates)
    return true;
  if (parser->num_template_parameter_lists == num_templates + 1)
      return true;
  error ("too many template-parameter-lists");
  return false;
}
static bool cp_parser_check_template_parameters ( cp_parser * parser , unsigned num_templates ) { if ( parser -> num_template_parameter_lists < num_templates ) { error ( " " ) ; return false ; } if ( parser -> num_template_parameter_lists == num_templates ) return true ; if ( parser -> num_template_parameter_lists == num_templates + 1 ) return true ; error ( " " ) ; return false ; }
NUM_TEMPLATES were used in the current declaration.
NUM_TEMPLATES were used in the current declaration .
/* If there are more template classes than parameter lists, we have
     something like:

       template <class T> void S<T>::R<T>::f ();  */ /* If there are the same number of template classes and parameter
     lists, that's OK.  */ /* If there are more, but only one more, then we are referring to a
     member template.  That's OK too.  */ /* Otherwise, there are too many template parameter lists.  We have
     something like:

     template <class T> template <class U> void S::f();  */