+2009-10-01 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/41515
+ * decl.c (do_parm): Call add_init_expr_to_sym.
+
2009-08-16 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40847
gfc_symbol *sym;
gfc_expr *init;
match m;
+ try t;
m = gfc_match_symbol (&sym, 0);
if (m == MATCH_NO)
goto cleanup;
}
- if (sym->ts.type == BT_CHARACTER
- && sym->ts.cl != NULL
- && sym->ts.cl->length != NULL
- && sym->ts.cl->length->expr_type == EXPR_CONSTANT
- && init->expr_type == EXPR_CONSTANT
- && init->ts.type == BT_CHARACTER
- && init->ts.kind == 1)
- gfc_set_constant_character_len (
- mpz_get_si (sym->ts.cl->length->value.integer), init, false);
-
- sym->value = init;
- return MATCH_YES;
+ t = add_init_expr_to_sym (sym->name, &init, &gfc_current_locus);
+ return (t == SUCCESS) ? MATCH_YES : MATCH_ERROR;
cleanup:
gfc_free_expr (init);
+2009-10-01 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/41515
+ * gfortran.dg/parameter_array_init_5.f90: New test.
+
2009-09-30 Uros Bizjak <ubizjak@gmail.com>
PR target/22093
--- /dev/null
+! { dg-do run }
+!
+! PR fortran/41515
+! Contributed by ros@rzg.mpg.de.
+!
+! Before, the "parm' string array was never initialized.
+!
+Module BUG3
+contains
+ Subroutine SR
+ character(3) :: parm(5)
+ character(20) :: str
+ parameter(parm=(/'xo ','yo ','ag ','xr ','yr '/))
+
+ str = 'XXXXXXXXXXXXXXXXXXXX'
+ if(str /='XXXXXXXXXXXXXXXXXXXX') call abort()
+ write(str,*) parm
+ if(str /= ' xo yo ag xr yr') call abort()
+ end subroutine SR
+end Module BUG3
+!
+program TEST
+ use bug3
+ call sr
+end program TEST
+! { dg-final { cleanup-modules "bug3" } }