http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59419
Tobias Burnus <burnus at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |burnus at gcc dot gnu.org --- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> --- Technically, one has: u = find_unit (opp->common.unit); if (u == NULL) /* Negative unit and no NEWUNIT-created unit found. */ generate_error (&opp->common, LIBERROR_BAD_OPTION, "Bad unit number in OPEN statement"); without err=/stat= it prints an error and doesn't return. But with, it continues after that line. Hence, a "return" is needed. It probably also affects other code in the I/O library.