+2013-07-11 Teresa Johnson <tejohnson@google.com>
+
+ * vec.h (struct va_gc): Move release out-of-line.
+ (va_gc::release): Call ggc_free on released vec.
+
2013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
CXX_MEM_STAT_INFO);
template<typename T, typename A>
- static void release (vec<T, A, vl_embed> *&v) { v = NULL; }
+ static void release (vec<T, A, vl_embed> *&v);
};
+/* Free GC memory used by V and reset V to NULL. */
+
+template<typename T, typename A>
+inline void
+va_gc::release (vec<T, A, vl_embed> *&v)
+{
+ if (v)
+ ::ggc_free (v);
+ v = NULL;
+}
+
+
/* Allocator for GC memory. Ensure there are at least RESERVE free
slots in V. If EXACT is true, grow exactly, else grow
exponentially. As a special case, if the vector had not been