// PR c++/3948 // Test that the destructor call for a value parameter gets the // right address. // { dg-do run } void *p[2]; int i; int r; struct C { int m; C() { p[i++] = this; } ~C() { if (p[--i] != this) r = 1; } }; void Foo (C c) { p[i++] = &c; } int main () { C c; Foo (c); return r; }