https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69856
Bug ID: 69856 Summary: libgfortran/intrinsics/ctime.c:59: order of evaluation problem ? Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libfortran Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Target Milestone: --- trunk/libgfortran/intrinsics/ctime.c:59]: (error) Expression '__builtin_classify_type(localtime_r(&timev,<m))==5,failed=localtime_r(&timev,<m)==0,failed=localtime_r(&timev,<m)!=0' depends on order of evaluation of side effects Source code is __builtin_choose_expr (__builtin_classify_type (localtime_r (&timev, <m)) == 5, failed = localtime_r (&timev, <m) == NULL, failed = localtime_r (&timev, <m) != 0); if (failed) goto blank; This looks like two writes to failed in a parameter list. Suggest split the variable into two and test both for failure.