1 /* { dg-do compile } */
2 /* { dg-options "-O1 -fdump-tree-dom2" } */
3 
4 typedef struct edge_def
5 {
6   int z;
7 } *edge;
8 typedef struct basic_block_def
9 {
10   edge pred;
11 } *basic_block;
12 extern struct basic_block_def entry_exit_blocks[2];
13 void commit_edge_insertions (void);
14 void foo (edge);
15 void
blah(int arf)16 blah (int arf)
17 {
18   edge e;
19   e = (&entry_exit_blocks[1])->pred;
20   for ( ; ;)
21     if (arf)
22       break;
23   commit_edge_insertions ();
24   e = (&entry_exit_blocks[1])->pred;
25   foo (e);
26 }
27 
28 /* There should be one load from entry_exit_blocks[1].pred.  */
29 /* { dg-final { scan-tree-dump-times "entry_exit_blocks.1..pred" 1 "dom2"} } */
30