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)20 void Foo (C c)
21 {
22   p[i++] = &c;
23 }
24 
main()25 int main ()
26 {
27   C c;
28 
29   Foo (c);
30   return r;
31 }
32