aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorTobias Burnus <burnus@gcc.gnu.org>2007-04-13 20:34:36 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2007-04-13 20:34:36 +0200
commit1f8e994ce9960687917d0fca2fef96af3080da50 (patch)
tree9b79ca9baa26e575692ca093f5d9b2a865c1b900 /gcc/fortran
parentc40ce8f320df0b2cf23426a9c3da37df10dde3d7 (diff)
downloadgcc-1f8e994ce9960687917d0fca2fef96af3080da50.zip
gcc-1f8e994ce9960687917d0fca2fef96af3080da50.tar.gz
gcc-1f8e994ce9960687917d0fca2fef96af3080da50.tar.bz2
re PR fortran/31559 ([4.1 only] Assigning to an EXTERNAL leads to ICE)
2007-04-13 Tobias Burnus <burnus@net-b.de> PR fortran/31559 * primary.c (match_variable): External functions are no variables. 2007-04-13 Tobias Burnus <burnus@net-b.de> PR fortran/31559 * gfortran.dg/func_assign.f90: New test. From-SVN: r123793
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog42
-rw-r--r--gcc/fortran/primary.c3
2 files changed, 26 insertions, 19 deletions
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 <pault@gcc.gnu.org>
-
- PR fortran/31550
- * trans-types.c (copy_dt_decls_ifequal): Do not get pointer
- derived type components.
-
+2007-04-13 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/31559
+ * primary.c (match_variable): External functions
+ are no variables.
+
+2007-04-13 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/31550
+ * trans-types.c (copy_dt_decls_ifequal): Do not get pointer
+ derived type components.
+
2007-04-13 Tobias Schlüter <tobi@gcc.gnu.org>
PR fortran/18937
@@ -106,18 +112,18 @@
* parse.c (parse_progunit): Call it after parsing specification
statements.
-2007-04-05 Paul Thomas <pault@gcc.gnu.org>
-
- 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 <pault@gcc.gnu.org>
-
- 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 <pault@gcc.gnu.org>
+
+ 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 <pault@gcc.gnu.org>
+
+ 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 <fxcoudert@gcc.gnu.org>
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. */