1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-pre-details" } */
3 
4 void bark (void);
5 int flag, hoist, y, z;
6 
7 void
foo(void)8 foo (void)
9 {
10   if (flag)
11     y = hoist + 4;
12   else
13     flag = 888;
14   z = hoist + 4;
15   bark ();
16 }
17 
18 /* We should see the partial redundancy of hoist + 4, not being confused
19    about bark () possibly clobbering hoist.  */
20 
21 /* { dg-final { scan-tree-dump "Replaced hoist" "pre" } } */
22