From 1f8e994ce9960687917d0fca2fef96af3080da50 Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Fri, 13 Apr 2007 20:34:36 +0200 Subject: re PR fortran/31559 ([4.1 only] Assigning to an EXTERNAL leads to ICE) 2007-04-13 Tobias Burnus PR fortran/31559 * primary.c (match_variable): External functions are no variables. 2007-04-13 Tobias Burnus PR fortran/31559 * gfortran.dg/func_assign.f90: New test. From-SVN: r123793 --- gcc/fortran/ChangeLog | 42 ++++++++++++++++++++++++------------------ gcc/fortran/primary.c | 3 ++- 2 files changed, 26 insertions(+), 19 deletions(-) (limited to 'gcc/fortran') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index df60120..aaad10f 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,9 +1,15 @@ -2007-04-13 Paul Thomas - - PR fortran/31550 - * trans-types.c (copy_dt_decls_ifequal): Do not get pointer - derived type components. - +2007-04-13 Tobias Burnus + + PR fortran/31559 + * primary.c (match_variable): External functions + are no variables. + +2007-04-13 Paul Thomas + + PR fortran/31550 + * trans-types.c (copy_dt_decls_ifequal): Do not get pointer + derived type components. + 2007-04-13 Tobias Schlüter PR fortran/18937 @@ -106,18 +112,18 @@ * parse.c (parse_progunit): Call it after parsing specification statements. -2007-04-05 Paul Thomas - - PR fortran/31483 - * trans-expr.c (gfc_conv_function_call): Give a dummy - procedure the correct type if it has alternate returns. - -2007-04-05 Paul Thomas - - PR fortran/31292 - * decl.c (gfc_match_modproc): Go up to the top of the namespace - tree to find the module namespace for gfc_get_symbol. - +2007-04-05 Paul Thomas + + PR fortran/31483 + * trans-expr.c (gfc_conv_function_call): Give a dummy + procedure the correct type if it has alternate returns. + +2007-04-05 Paul Thomas + + PR fortran/31292 + * decl.c (gfc_match_modproc): Go up to the top of the namespace + tree to find the module namespace for gfc_get_symbol. + 2007-04-03 Francois-Xavier Coudert PR fortran/31304 diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c index 1ef37a6..e31e1c5 100644 --- a/gcc/fortran/primary.c +++ b/gcc/fortran/primary.c @@ -2420,7 +2420,8 @@ match_variable (gfc_expr **result, int equiv_flag, int host_flag) case FL_PROCEDURE: /* Check for a nonrecursive function result */ - if (sym->attr.function && (sym->result == sym || sym->attr.entry)) + if (sym->attr.function && (sym->result == sym || sym->attr.entry) + && !sym->attr.external) { /* If a function result is a derived type, then the derived type may still have to be resolved. */ -- cgit v1.1