1 // { dg-do run } 2 // Origin: Mark Mitchell <mark@codesourcery.com> 3 4 extern "C" void abort (); 5 6 int count; 7 8 struct S 9 { 10 S (); 11 S (const S&); 12 ~S (); 13 14 int i; 15 }; 16 S()17S::S () 18 { 19 i = count++; 20 } 21 S(const S &)22S::S (const S&) 23 { 24 i = count++; 25 } 26 ~S()27S::~S () 28 { 29 if (--count != i) 30 abort (); 31 } 32 f(S,S)33void f (S, S) 34 { 35 } 36 main()37int main () 38 { 39 { 40 S s; 41 f (s, s); 42 } 43 return count != 0; 44 } 45 46