1// { dg-do run } 2// PRMS Id: 4297 (related to 3525) 3// Bug: Generating default op= didn't set TYPE_HAS_ASSIGNMENT, so it wasn't 4// found. 5 6extern "C" int printf (const char *, ...); 7 8class Y 9{ 10public: 11 Y(char*) {} 12 Y& operator = (const Y&) { return *this; } 13}; 14 15 16class X 17{ 18public: 19 X(int v, char* m) : _v(v), _m (m) {} 20 X () : _v(0), _m("Unknown") {} 21 // Defining our own op= here makes things work correctly. 22 23private: 24 int _v; 25 int _m4; 26 // Adding more members here increases the count on u. 27 Y _m; 28}; 29 30const X sPassed (1, "Passed"), sFailed (-1, "Failed"); 31 32int main (int, char**) 33{ 34 X result; 35 int u = 0; 36 result = (u++ ? sPassed : sFailed); 37 if (u == 1) 38 return 0; 39 return 1; 40} 41