diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 926bb7b4edfb..1e072301b9a9 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2010-03-04 Marco Poletti + + * pt.c (process_partial_specialization): Use error_n instead of + error. + 2010-03-03 Jason Merrill PR c++/12909 diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index f5d3851cab91..66e7d735ef7d 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -3987,16 +3987,19 @@ process_partial_specialization (tree decl) If they are fully specialized in the specialization, that's OK. */ int j; + int count = 0; for (j = 0; j < nargs; ++j) if (tpd2.parms[j] != 0 && tpd.arg_uses_template_parms [j]) - { - error ("type %qT of template argument %qE depends " - "on template parameter(s)", - type, - arg); - break; - } + ++count; + if (count != 0) + error_n (input_location, count, + "type %qT of template argument %qE depends " + "on a template parameter", + "type %qT of template argument %qE depends " + "on template parameters", + type, + arg); } } }