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.

Reply via email to