http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61016
--- Comment #1 from Kostya Serebryany <kcc at gcc dot gnu.org> --- Slightly more reduced test: template <typename T> struct vector { void resize(int, T = T()) {} }; class UnknownField; class UnknownFieldSet { void DeleteByNumber (int); vector < UnknownField > *fields_; }; class UnknownField { long a; union { void *b; }; }; void UnknownFieldSet::DeleteByNumber (int) { fields_->resize (0); }