------- Comment #2 from pault at gcc dot gnu dot org 2007-04-11 20:33 ------- (In reply to comment #1)
> Why is "(137)" not an EXPR_CONSTANT > Because it is an EXPR_OP. The operator in question is OP_PARENTHESES. This fixes the problem: Index: gcc/fortran/resolve.c =================================================================== *** gcc/fortran/resolve.c (revision 123398) --- gcc/fortran/resolve.c (working copy) *************** resolve_fl_procedure (gfc_symbol *sym, i *** 5756,5761 **** --- 5756,5765 ---- if (sym->ts.type == BT_CHARACTER) { gfc_charlen *cl = sym->ts.cl; + + if (resolve_charlen (cl) == FAILURE) + return FAILURE; + if (!cl || !cl->length || cl->length->expr_type != EXPR_CONSTANT) { if (sym->attr.proc == PROC_ST_FUNCTION) I have not regtested nor developed a testcase and cannot do so until the weekend. Paul -- pault at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |pault at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2007-04-11 19:56:48 |2007-04-11 20:33:46 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31540