http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59419
Tobias Burnus <burnus at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code Status|UNCONFIRMED |NEW Last reconfirmed| |2013-12-07 CC| |jvdelisle at gcc dot gnu.org Target Milestone|--- |4.9.0 Ever confirmed|0 |1 --- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> --- Dominique, probably rightly, suspects r196805. (In reply to Tobias Burnus from comment #1) > 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. ... but not a simple return but one which ends with a library_end(). Other code in that file uses: && (opp->common.flags & IOPARM_LIBRETURN_MASK) == IOPARM_LIBRETURN_OK) as condition. Hence, that would be another possibility.