1/* { dg-do run } */
2
3struct Dummy {};
4struct RefCount : public Dummy {
5    ~RefCount(); /* Has to be non-pod.  */
6    int *a;
7    int *b;
8};
9RefCount::~RefCount(){}
10struct Wrapper : public Dummy { RefCount ref; };
11void __attribute__((noinline,noclone))
12Push(Wrapper ptr)
13{
14  *ptr.ref.b = 0;
15}
16extern "C" void abort (void);
17int main()
18{
19  int a = 1, b = 1;
20  Wrapper x;
21  x.ref.a = &a;
22  x.ref.b = &b;
23  Push(x);
24  if (b != 0)
25    abort ();
26  return 0;
27}
28