https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84848

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P4

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The *.optimized dump then has:
  struct FRAME.global_event FRAME.1;
  static integer(kind=4) options.0[7] = {68, 8191, 0, 1, 1, 0, 31};
  integer(kind=4) _8;

  <bb 2> [local count: 1073741825]:
  _gfortran_set_args (argc_2(D), argv_3(D));
  _gfortran_set_options (7, &options.0[0]);
  _8 = FRAME.1.x;
  if (_8 != 0)
    goto <bb 3>; [0.04%]
  else
    goto <bb 4>; [99.96%]

  <bb 3> [local count: 429497]:
  _gfortran_error_stop_numeric (1, 0);

  <bb 4> [local count: 1073312327]:
  return 0;
where it is more clear that it actually reads an uninitialized variable and
decides based on it if it should stop 1 or not.  Everything else is optimized
away.

Reply via email to