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)16blah (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