summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2007-05-06 15:12:01 +0000
committerPaul Thomas <pault@gcc.gnu.org>2007-05-06 15:12:01 +0000
commit8111a921e9c63612e5b608439f2130276e845e0e (patch)
treea3b5abd8e222f8dca8d89027ac56bb9ca1d444f0
parente7a5fbdc2b1b9f072e40fd8c243417a569f94cc1 (diff)
downloadgcc-8111a921e9c63612e5b608439f2130276e845e0e.tar.gz
re PR fortran/31540 ([Regression 4.2 only] character((constant expression)) for external function)
2007-05-06 Paul Thomas <pault@gcc.gnu.org> PR fortran/31540 * resolve.c (resolve_fl_procedure): Resolve constant character lengths. 2007-05-06 Paul Thomas <pault@gcc.gnu.org> PR fortran/31540 * gfortran.dg/char_result_4.f90: New test. From-SVN: r124475
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/resolve.c5
-rw-r--r--gcc/testsuite/ChangeLog5
3 files changed, 16 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 9435165ffc3..361ffcc04be 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2007-05-06 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/31540
+ * resolve.c (resolve_fl_procedure): Resolve constant character
+ lengths.
+
2007-05-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/31251
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 55f1390d03b..4ec9a921c4a 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -5812,6 +5812,11 @@ resolve_fl_procedure (gfc_symbol *sym, int mp_flag)
if (sym->ts.type == BT_CHARACTER)
{
gfc_charlen *cl = sym->ts.cl;
+
+ if (cl && cl->length && gfc_is_constant_expr (cl->length)
+ && resolve_charlen (cl) == FAILURE)
+ return FAILURE;
+
if (!cl || !cl->length || cl->length->expr_type != EXPR_CONSTANT)
{
if (sym->attr.proc == PROC_ST_FUNCTION)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bcec964d959..2b74f7cc8f8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-06 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/31540
+ * gfortran.dg/char_result_4.f90: New test.
+
2007-06-05 Revital Eres <eres@il.ibm.com>
PR 30957