aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2010-11-05 19:14:52 +0100
committerJanus Weil <janus@gcc.gnu.org>2010-11-05 19:14:52 +0100
commit611c64f0699940b9604b4ea719daadbdae79654c (patch)
treedb3c9509cd58e015bc566f15340f5dd30d33b1b0 /gcc/fortran/resolve.c
parent458ebeba0f4edf877b36a9b61d56ee4ff8e97af3 (diff)
downloadgcc-611c64f0699940b9604b4ea719daadbdae79654c.zip
gcc-611c64f0699940b9604b4ea719daadbdae79654c.tar.gz
gcc-611c64f0699940b9604b4ea719daadbdae79654c.tar.bz2
re PR fortran/45451 ([OOP] Inconsistent status of ALLOCATABLE components inside CLASS variables.)
2010-11-05 Janus Weil <janus@gcc.gnu.org> PR fortran/45451 PR fortran/46174 * class.c (gfc_find_derived_vtab): Improved search for existing vtab. Add component '$copy' to vtype symbol for polymorphic deep copying. * expr.c (gfc_check_pointer_assign): Make sure the vtab is generated during resolution stage. * resolve.c (resolve_codes): Don't resolve code if namespace is already resolved. * trans-stmt.c (gfc_trans_allocate): Call '$copy' procedure for polymorphic ALLOCATE statements with SOURCE. 2010-11-05 Janus Weil <janus@gcc.gnu.org> PR fortran/45451 PR fortran/46174 * gfortran.dg/class_19.f03: Modified. * gfortran.dg/class_allocate_6.f03: New. From-SVN: r166368
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 6e71e13..7429ff2 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -13331,6 +13331,9 @@ resolve_codes (gfc_namespace *ns)
gfc_namespace *n;
bitmap_obstack old_obstack;
+ if (ns->resolved == 1)
+ return;
+
for (n = ns->contained; n; n = n->sibling)
resolve_codes (n);