https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96225
--- Comment #1 from David Binderman <dcb314 at hotmail dot com> --- Reduced C++ code is: extern "C" double sqrt(double); template <class> class a { public: a(); void b(); double c, m; }; template <class d> void a<d>::b() { d e = 1 / sqrt(m); c = e; } class f { public: void g() const; }; class h { void j() const; f k; }; void h::j() const { a<double> l[1]; for (int i = 0; i < 5; ++i) l[i].b(); k.g(); }