Around line 3923 in fortran/trans-array.c, there are

      if (expr->ts.type == BT_CHARACTER)
        {
          gcc_assert (expr->ts.cl && expr->ts.cl->length
                      && expr->ts.cl->length->expr_type == EXPR_CONSTANT);
          loop.temp_ss->string_length = gfc_conv_mpz_to_tree
                        (expr->ts.cl->length->value.integer,
                         expr->ts.cl->length->ts.kind);
          expr->ts.cl->backend_decl = loop.temp_ss->string_length;
        }
        loop.temp_ss->data.temp.type = gfc_typenode_for_spec (&expr->ts);
        ^^^^^^^^^^^^^^^
                Bad indentation.

      /* ... which can hold our string, if present.  */
      if (expr->ts.type == BT_CHARACTER)
        {
          loop.temp_ss->string_length = TYPE_SIZE_UNIT 
(loop.temp_ss->data.temp.type);
          se->string_length = loop.temp_ss->string_length;
        }
      else
        loop.temp_ss->string_length = NULL;

Also why are there duplicated

      if (expr->ts.type == BT_CHARACTER)


H.J.

Reply via email to