/* { dg-do compile } */ /* { dg-options "-O1 -fdump-tree-dom1" } */ typedef struct edge_def { int z; } *edge; typedef struct basic_block_def { edge pred; } *basic_block; extern struct basic_block_def entry_exit_blocks[2]; void blah (int arf) { edge e; e = (&entry_exit_blocks[1])->pred; for ( ; ;) if (arf) break; commit_edge_insertions (); e = (&entry_exit_blocks[1])->pred; foo (e); } /* There should be one load from entry_exit_blocks[1].pred. */ /* { dg-final { scan-tree-dump-times "entry_exit_blocks.1..pred" 1 "dom1"} } */ /* { dg-final { cleanup-tree-dump "dom1" } } */