diff options
author | Janus Weil <janus@gcc.gnu.org> | 2013-12-15 10:49:51 +0100 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2013-12-15 10:49:51 +0100 |
commit | 013a961bacc2aacc34f27b786a5f191fbfe094c4 (patch) | |
tree | 2dfa78681db12296cf1838534bc34d8a8eaa28ea | |
parent | 5fbcd8d405e54e30b4a5a747d4162e3c2d194d93 (diff) | |
download | gcc-013a961bacc2aacc34f27b786a5f191fbfe094c4.zip gcc-013a961bacc2aacc34f27b786a5f191fbfe094c4.tar.gz gcc-013a961bacc2aacc34f27b786a5f191fbfe094c4.tar.bz2 |
re PR fortran/59493 ([OOP] ICE: Segfault on Class(*) pointer association)
2013-12-15 Janus Weil <janus@gcc.gnu.org>
PR fortran/59493
* class.c (gfc_find_intrinsic_vtab): Handle BT_CLASS.
2013-12-15 Janus Weil <janus@gcc.gnu.org>
PR fortran/59493
* gfortran.dg/unlimited_polymorphic_15.f90: New.
From-SVN: r205997
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/class.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/unlimited_polymorphic_15.f90 | 17 |
4 files changed, 28 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 9de1860..a7d2ff8 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2013-12-15 Janus Weil <janus@gcc.gnu.org> + + PR fortran/59493 + * class.c (gfc_find_intrinsic_vtab): Handle BT_CLASS. + 2013-12-14 Janus Weil <janus@gcc.gnu.org> PR fortran/59502 diff --git a/gcc/fortran/class.c b/gcc/fortran/class.c index 52b9760..b65cd89 100644 --- a/gcc/fortran/class.c +++ b/gcc/fortran/class.c @@ -2424,7 +2424,7 @@ gfc_find_intrinsic_vtab (gfc_typespec *ts) return NULL; /* Sometimes the typespec is passed from a single call. */ - if (ts->type == BT_DERIVED) + if (ts->type == BT_DERIVED || ts->type == BT_CLASS) return gfc_find_derived_vtab (ts->u.derived); /* Find the top-level namespace. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ccb7829..7074aca 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-12-15 Janus Weil <janus@gcc.gnu.org> + + PR fortran/59493 + * gfortran.dg/unlimited_polymorphic_15.f90: New. + 2013-12-14 Jan Hubicka <jh@suse.cz> PR middle-end/58477 diff --git a/gcc/testsuite/gfortran.dg/unlimited_polymorphic_15.f90 b/gcc/testsuite/gfortran.dg/unlimited_polymorphic_15.f90 new file mode 100644 index 0000000..1dfebdc --- /dev/null +++ b/gcc/testsuite/gfortran.dg/unlimited_polymorphic_15.f90 @@ -0,0 +1,17 @@ +! { dg-do compile } +! +! PR 59493: [OOP] ICE: Segfault on Class(*) pointer association +! +! Contributed by Hossein Talebi <talebi.hossein@gmail.com> + + implicit none + + type ty_mytype1 + end type + + class(ty_mytype1), allocatable, target:: cla1 + class(*), pointer :: ptr + + ptr => cla1 + +end |