aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2011-02-09 23:59:02 +0100
committerJanus Weil <janus@gcc.gnu.org>2011-02-09 23:59:02 +0100
commitc79bb35514fb9ed2a63277bad7e71f0dd41664d7 (patch)
tree4dbcd292234b1adc3e966a8f6d085fca8d3f5686 /gcc/fortran/resolve.c
parent2181e7141cf1f517868e4aa657ad04f95f37c258 (diff)
downloadgcc-c79bb35514fb9ed2a63277bad7e71f0dd41664d7.zip
gcc-c79bb35514fb9ed2a63277bad7e71f0dd41664d7.tar.gz
gcc-c79bb35514fb9ed2a63277bad7e71f0dd41664d7.tar.bz2
re PR fortran/47352 ([F03] ICE with proc-pointers in generic procedures)
2011-02-09 Janus Weil <janus@gcc.gnu.org> PR fortran/47352 * resolve.c (resolve_procedure_interface): If interface has a result variable, copy the typespec and set result pointer to self. 2011-02-09 Janus Weil <janus@gcc.gnu.org> PR fortran/47352 * gfortran.dg/proc_decl_25.f90: New. From-SVN: r169987
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 688967a..0fe0672 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -160,7 +160,10 @@ resolve_procedure_interface (gfc_symbol *sym)
resolve_intrinsic (ifc, &ifc->declared_at);
if (ifc->result)
- sym->ts = ifc->result->ts;
+ {
+ sym->ts = ifc->result->ts;
+ sym->result = sym;
+ }
else
sym->ts = ifc->ts;
sym->ts.interface = ifc;