modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/volatile-1.c (about)

     1  /* The problem here was that the statements that
     2     loaded from exception.reason where not being
     3     marked as having volatile behavior which
     4     caused load PRE on the tree level to go
     5     into an infinite loop. */
     6  
     7  struct gdb_exception
     8  {
     9    int reason;
    10  };
    11  int catch_exceptions_with_msg (int *gdberrmsg)
    12  {
    13    volatile struct gdb_exception exception;
    14    exceptions_state_mc_init (&(exception));
    15    if (exception.reason != 0)
    16      foo ();
    17    return exception.reason;
    18  }