aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorErik Edelmann <eedelman@gcc.gnu.org>2005-12-15 00:47:13 +0000
committerErik Edelmann <eedelman@gcc.gnu.org>2005-12-15 00:47:13 +0000
commite46aceffcf61663f5a4b0362cc9b6c4bd5cb8284 (patch)
treea05e348fcff6ea06e396da59a74aab213dbd8ee5 /gcc/fortran
parenta9573616d4d584841268badcc24aca18fbac632a (diff)
downloadgcc-e46aceffcf61663f5a4b0362cc9b6c4bd5cb8284.zip
gcc-e46aceffcf61663f5a4b0362cc9b6c4bd5cb8284.tar.gz
gcc-e46aceffcf61663f5a4b0362cc9b6c4bd5cb8284.tar.bz2
re PR fortran/18197 (bus error on returning from a function)
fortran/ 2005-12-14 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/18197 * resolve.c (resolve_formal_arglist): Remove code to set the type of a function symbol from it's result symbol. testsuite/ 2005-12-14 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/18197 * gfortran.dg/dummy_functions_1.f90: New. From-SVN: r108555
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/resolve.c10
2 files changed, 6 insertions, 10 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index cc6824b..0d364d4 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2005-12-14 Erik Edelmann <eedelman@gcc.gnu.org>
+
+ PR fortran/18197
+ * resolve.c (resolve_formal_arglist): Remove code to set
+ the type of a function symbol from it's result symbol.
+
2005-12-13 Richard Guenther <rguenther@suse.de>
* trans-expr.c (gfc_conv_substring): Use fold_build2 and
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index e363763..d9f0e77 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -137,16 +137,6 @@ resolve_formal_arglist (gfc_symbol * proc)
{
if (!sym->attr.function || sym->result == sym)
gfc_set_default_type (sym, 1, sym->ns);
- else
- {
- /* Set the type of the RESULT, then copy. */
- if (sym->result->ts.type == BT_UNKNOWN)
- gfc_set_default_type (sym->result, 1, sym->result->ns);
-
- sym->ts = sym->result->ts;
- if (sym->as == NULL)
- sym->as = gfc_copy_array_spec (sym->result->as);
- }
}
gfc_resolve_array_spec (sym->as, 0);