// { dg-do assemble } // GROUPS passed miscellaneous //The program listed below produces the following error during compilation: // % g++ bug17.cc // bug17.cc: In method `class Y& Y::operator = (const class Y&)': // bug17.cc:18: invalid use of non-lvalue array class X { public: X& operator=(const X&) { return *this; } }; struct S { char c[10]; X x; }; class Y { S s; public: const S& f() const { return s; } Y& operator=(const Y& _Y) { s = _Y.s; // this line compiles s = _Y.f(); // this line does not compile return *this; } };