1 // { dg-do run } 2 3 // Test that A's copy assignment method is called when B's instance 4 // member array of A is assigned. 5 6 // Contributed by Brian Gaeke, public domain. 7 int status = 1; 8 9 class A 10 { 11 public: 12 int i; 13 A &operator =(const A &i); 14 }; 15 16 A a; 17 18 A& A::operator=(const A &i) { 19 status = 0; 20 return a; 21 } 22 23 class B 24 { 25 public: 26 A arr[10]; 27 }; 28 main(int argc,char ** argv)29int main (int argc, char **argv) 30 { 31 B b; 32 b.arr[0].i = 15; 33 B a; 34 a = b; // trigger copy assignment 35 return status; 36 } 37