// PR middle-end/85496 // Reported by Marek Polacek template class complex; template complex<_Tp> operator*(complex<_Tp>, complex<_Tp>); template <> struct complex { _Complex float _M_value; }; class A { complex _f0, _f1; public: complex &m_fn1() { return _f1; } }; complex a; void cos() { A b; complex c; b.m_fn1() = c * a; }