Fix bootstrap failure with clang++. This patch fixes a bootstrap failure when using clang as the host compiler. Default arguments for class template member functions should be added in the declaration, not the definition.
>From Jason: > 8.3.6 says "Default arguments for a member function of a class template shall > be specified on the initial declaration of the member function within the > class template." 2012-09-04 Diego Novillo <dnovi...@google.com> PR bootstrap/54484 * vec.h (vec_t::embedded_init): Move default argument value to function declaration. diff --git a/gcc/vec.h b/gcc/vec.h index c0f1bb2..441c9b5 100644 --- a/gcc/vec.h +++ b/gcc/vec.h @@ -171,7 +171,7 @@ struct GTY(()) vec_t T &last (ALONE_VEC_CHECK_DECL); const T &operator[] (unsigned) const; T &operator[] (unsigned); - void embedded_init (int, int); + void embedded_init (int, int = 0); template<enum vec_allocation_t A> vec_t<T> *copy (ALONE_MEM_STAT_DECL); @@ -599,7 +599,7 @@ vec_t<T>::iterate (const vec_t<T> *vec, unsigned ix, T **ptr) final member): size_t vec_t<T>::embedded_size<T> (int reserve); - void v->embedded_init(int reserve, int active = 0); + void v->embedded_init(int reserve, int active); These allow the caller to perform the memory allocation. */ @@ -616,7 +616,7 @@ vec_t<T>::embedded_size (int nelems) template<typename T> void -vec_t<T>::embedded_init (int nelems, int active = 0) +vec_t<T>::embedded_init (int nelems, int active) { prefix_.num_ = active; prefix_.alloc_ = nelems;