131
|
1 /* PR bootstrap/82916 */
|
|
2 /* { dg-do run } */
|
|
3 /* { dg-options "-O2 -fno-tree-dse" } */
|
|
4
|
|
5 struct A { struct A *next; };
|
|
6 struct C
|
|
7 {
|
|
8 int *of;
|
|
9 struct C *parent, *prev, *next;
|
|
10 int depth;
|
|
11 int min;
|
|
12 struct C *min_occ;
|
|
13 };
|
|
14
|
|
15 __attribute__((noipa)) struct C *
|
|
16 foo (int *node)
|
|
17 {
|
|
18 struct A *p = __builtin_malloc (sizeof (struct C));
|
|
19 if (!p)
|
|
20 return 0;
|
|
21 p->next = 0;
|
|
22 /* Originally placement new. */
|
|
23 struct C *nw = (struct C *)(void *)p;
|
|
24 nw->of = node;
|
|
25 nw->parent = 0;
|
|
26 nw->prev = 0;
|
|
27 nw->next = 0;
|
|
28 nw->depth = 0;
|
|
29 nw->min_occ = nw;
|
|
30 nw->min = 0;
|
|
31 return nw;
|
|
32 }
|
|
33
|
|
34 int
|
|
35 main ()
|
|
36 {
|
|
37 int o;
|
|
38 struct C *p = foo (&o);
|
|
39 if (p)
|
|
40 {
|
|
41 if (p->of != &o || p->parent || p->prev || p->next || p->depth
|
|
42 || p->min || p->min_occ != p)
|
|
43 __builtin_abort ();
|
|
44 }
|
|
45 __builtin_free (p);
|
|
46 return 0;
|
|
47 }
|