https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111783
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |anlauf at gcc dot gnu.org --- Comment #2 from anlauf at gcc dot gnu.org --- (In reply to Tobias Burnus from comment #0) > There are probably more, at least the ABORT intrinsic subroutine and > the functions associated with STOP / ERROR STOP like _gfortran_stop_numeric. trans-decl.cc has: /* STOP doesn't return. */ TREE_THIS_VOLATILE (gfor_fndecl_stop_numeric) = 1; TREE_THIS_VOLATILE (gfor_fndecl_stop_string) = 1; TREE_THIS_VOLATILE (gfor_fndecl_error_stop_numeric) = 1; TREE_THIS_VOLATILE (gfor_fndecl_error_stop_string) = 1; plus a few more, so these are already accounted for. Try: stop 1 error stop 2 stop "3" end The dump-tree-optimized only contains the first even at -O0, as it should be, shouldn't it? This leaves ABORT and EXIT to deal with.