https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85313
Bug ID: 85313 Summary: gcc/fortran/openmp.c: 2 * confused logic ? Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Target Milestone: --- fortran/openmp.c:5591] -> [trunk/gcc/fortran/openmp.c:5603]: (warning) Identical inner 'if' condition is always true. Source code is for (j = 1; j < i; j++) { gfc_symbol *ivar = do_code2->ext.iterator->var->symtree->n.sym; if (dovar == ivar || gfc_find_sym_in_expr (ivar, do_code->ext.iterator->start) || gfc_find_sym_in_expr (ivar, do_code->ext.iterator->end) || gfc_find_sym_in_expr (ivar, do_code->ext.iterator->step)) { gfc_error ("%s collapsed loops don't form rectangular " "iteration space at %L", name, &do_code->loc); break; } if (j < i) break; do_code2 = do_code2->block->next; } It is not clear to me how the do_code2 = do_code2->block->next ever gets executed. Also: gcc/fortran/openmp.c:5760] -> [trunk/gcc/fortran/openmp.c:5772]: (warning) Identical inner 'if' condition is always true. Duplicate.