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.