diff options
author | Janus Weil <janus@gcc.gnu.org> | 2011-05-29 22:32:11 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2011-05-29 22:32:11 +0200 |
commit | 5e7bb2b9b1c145d426011d5807931e1bc7ab246f (patch) | |
tree | 83be5e8770207f2f43b48f36a2a57e316d85406a /gcc/fortran/module.c | |
parent | 155732f56dacb4f10aa48db4d952745aed720bc7 (diff) | |
download | gcc-5e7bb2b9b1c145d426011d5807931e1bc7ab246f.zip gcc-5e7bb2b9b1c145d426011d5807931e1bc7ab246f.tar.gz gcc-5e7bb2b9b1c145d426011d5807931e1bc7ab246f.tar.bz2 |
re PR fortran/47601 ([OOP] Internal Error: mio_component_ref(): Component not found)
2011-05-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/47601
* module.c (mio_component_ref): Handle components of extended types.
* symbol.c (gfc_find_component): Return is sym is NULL.
2011-05-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/47601
* gfortran.dg/extends_13.f03: New.
From-SVN: r174416
Diffstat (limited to 'gcc/fortran/module.c')
-rw-r--r-- | gcc/fortran/module.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index b6acca3..533246d 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -2356,14 +2356,10 @@ mio_component_ref (gfc_component **cp, gfc_symbol *sym) if (sym->components != NULL && p->u.pointer == NULL) { /* Symbol already loaded, so search by name. */ - for (q = sym->components; q; q = q->next) - if (strcmp (q->name, name) == 0) - break; - - if (q == NULL) - gfc_internal_error ("mio_component_ref(): Component not found"); + q = gfc_find_component (sym, name, true, true); - associate_integer_pointer (p, q); + if (q) + associate_integer_pointer (p, q); } /* Make sure this symbol will eventually be loaded. */ |