From bde6de5d4ba6258094a7a6fb47af74935711d3c6 Mon Sep 17 00:00:00 2001 From: Diego Novillo <dnovillo@google.com> Date: Tue, 4 Sep 2012 17:07:48 -0400 Subject: [PATCH] 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." PR bootstrap/54484 * vec.h (vec_t::embedded_init): Move default argument value to function declaration. From-SVN: r190951 --- gcc/ChangeLog | 6 ++++++ gcc/vec.h | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ce1252da717b..d0c7a73a4f4c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-09-04 Diego Novillo <dnovillo@google.com> + + PR bootstrap/54484 + * vec.h (vec_t::embedded_init): Move default argument value + to function declaration. + 2012-09-04 Eric Botcazou <ebotcazou@adacore.com> * bb-reorder.c (gate_handle_reorder_blocks): Move around. diff --git a/gcc/vec.h b/gcc/vec.h index c0f1bb2cd213..441c9b5f7911 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; -- GitLab