diff options
author | Janus Weil <janus@gcc.gnu.org> | 2010-05-22 20:55:53 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2010-05-22 20:55:53 +0200 |
commit | bc382218cee3c9536da0fbdf3ee61e4b93edb02b (patch) | |
tree | 83fbfbe19ac02ba3e65af83b1d91ce86bc69643e /gcc/fortran/parse.c | |
parent | 09c58f303c581409342f0dfe304192216fe1830b (diff) | |
download | gcc-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.c | 16 |
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) |