aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/parse.c
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2010-05-22 20:55:53 +0200
committerJanus Weil <janus@gcc.gnu.org>2010-05-22 20:55:53 +0200
commitbc382218cee3c9536da0fbdf3ee61e4b93edb02b (patch)
tree83fbfbe19ac02ba3e65af83b1d91ce86bc69643e /gcc/fortran/parse.c
parent09c58f303c581409342f0dfe304192216fe1830b (diff)
downloadgcc-bc382218cee3c9536da0fbdf3ee61e4b93edb02b.zip
gcc-bc382218cee3c9536da0fbdf3ee61e4b93edb02b.tar.gz
gcc-bc382218cee3c9536da0fbdf3ee61e4b93edb02b.tar.bz2
re PR fortran/44212 ([OOP] ICE when defining a pointer component before defining the class and calling a TBP then)
2010-05-22 Janus Weil <janus@gcc.gnu.org> PR fortran/44212 * match.c (gfc_match_select_type): On error jump back out of the local namespace. * parse.c (parse_derived): Defer creation of vtab symbols to resolution stage, more precisely to ... * resolve.c (resolve_fl_derived): ... this place. 2010-05-22 Janus Weil <janus@gcc.gnu.org> PR fortran/44212 * gfortran.dg/class_22.f03: New. From-SVN: r159745
Diffstat (limited to 'gcc/fortran/parse.c')
-rw-r--r--gcc/fortran/parse.c16
1 files changed, 0 insertions, 16 deletions
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index 9320069..dfc5893 100644
--- a/gcc/fortran/parse.c
+++ b/gcc/fortran/parse.c
@@ -2110,22 +2110,6 @@ endType:
|| c->attr.access == ACCESS_PRIVATE
|| (c->ts.type == BT_DERIVED && c->ts.u.derived->attr.private_comp))
sym->attr.private_comp = 1;
-
- /* Fix up incomplete CLASS components. */
- if (c->ts.type == BT_CLASS)
- {
- gfc_component *data;
- gfc_component *vptr;
- gfc_symbol *vtab;
- data = gfc_find_component (c->ts.u.derived, "$data", true, true);
- vptr = gfc_find_component (c->ts.u.derived, "$vptr", true, true);
- if (vptr->ts.u.derived == NULL)
- {
- vtab = gfc_find_derived_vtab (data->ts.u.derived, false);
- gcc_assert (vtab);
- vptr->ts.u.derived = vtab->ts.u.derived;
- }
- }
}
if (!seen_component)