1 // PR c++/3948 2 // Test that the destructor call for a value parameter gets the 3 // right address. 4 5 // { dg-do run } 6 7 void *p[2]; 8 int i; 9 int r; 10 11 struct C 12 { 13 int m; 14 CC15 C() { p[i++] = this; } ~CC16 ~C() { if (p[--i] != this) r = 1; } 17 }; 18 19 Foo(C c)20void Foo (C c) 21 { 22 p[i++] = &c; 23 } 24 main()25int main () 26 { 27 C c; 28 29 Foo (c); 30 return r; 31 } 32