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
      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"} } */