diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ce1252da717be893df3afdd226ea9aad35569d96..d0c7a73a4f4c80a783e9ba811f366306c82bccc5 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 c0f1bb2cd2130114730f0d2303eee9570a0ad1ef..441c9b5f7911f9f5e839dab3a8f07bbcaa045ef1 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;