1 /* { dg-do compile } */
2 /* { dg-options "-O2 -ftree-tail-merge -fdump-tree-pre" } */
21 struct head
*head
= &heads
[2];
30 node
.prev
= (void *)head
;
32 asm("":"=m"(node
.prev
));
36 struct node
*n
= head
->first
;
38 struct head
*h
= &heads
[k
];
40 heads
[2].first
= n
->next
;
42 if ((void*)n
->prev
== (void *)h
)
45 /* Dead tbaa-unsafe load from ((struct node *)&heads[2])->next. */
48 return !(p
== (void*)0);
51 /* { dg-final { scan-tree-dump-not "Removing basic block" "pre"} } */