diff options
author | Janus Weil <janus@gcc.gnu.org> | 2017-05-22 19:08:24 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2017-05-22 19:08:24 +0200 |
commit | 477f145b5798e5a8f0766aaa1f0fb0ca2dcd9abd (patch) | |
tree | 885eb54988d65815f23359f5ceecb73d08e281ed | |
parent | a5f15ed90a9e5dac66aca6a10087ac5169e6d5c6 (diff) | |
download | gcc-477f145b5798e5a8f0766aaa1f0fb0ca2dcd9abd.zip gcc-477f145b5798e5a8f0766aaa1f0fb0ca2dcd9abd.tar.gz gcc-477f145b5798e5a8f0766aaa1f0fb0ca2dcd9abd.tar.bz2 |
re PR fortran/80766 ([OOP] ICE with type-bound procedure returning an array)
2017-05-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/80766
* resolve.c (resolve_fl_derived): Make sure that vtype symbols are
properly resolved.
2017-05-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/80766
* gfortran.dg/typebound_call_28.f90: New test.
From-SVN: r248341
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/resolve.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/typebound_call_28.f90 | 37 |
4 files changed, 50 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 76418d9..6977bd1 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2017-05-22 Janus Weil <janus@gcc.gnu.org> + + PR fortran/80766 + * resolve.c (resolve_fl_derived): Make sure that vtype symbols are + properly resolved. + 2017-05-19 Paul Thomas <pault@gcc.gnu.org> PR fortran/80333 diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index d50ffdb..a5f4874 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -13832,6 +13832,8 @@ resolve_fl_derived (gfc_symbol *sym) gfc_symbol *vtab = gfc_find_derived_vtab (data->ts.u.derived); gcc_assert (vtab); vptr->ts.u.derived = vtab->ts.u.derived; + if (!resolve_fl_derived0 (vptr->ts.u.derived)) + return false; } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e162c86..d9a1e1c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-05-22 Janus Weil <janus@gcc.gnu.org> + + PR fortran/80766 + * gfortran.dg/typebound_call_28.f90: New test. + 2017-05-22 Nathan Sidwell <nathan@acm.org> * g++.dg/lookup/strong-using.C: New. diff --git a/gcc/testsuite/gfortran.dg/typebound_call_28.f90 b/gcc/testsuite/gfortran.dg/typebound_call_28.f90 new file mode 100644 index 0000000..376c4c4 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/typebound_call_28.f90 @@ -0,0 +1,37 @@ +! { dg-do compile } +! +! PR 80766: [7/8 Regression] [OOP] ICE with type-bound procedure returning an array +! +! Contributed by Vladimir Fuka <vladimir.fuka@gmail.com> + +module m1 + + type :: base + contains + procedure :: fun + end type + + type, extends(base) :: child + end type + +contains + + function fun(o) result(res) + real :: res(3) + class(base) :: o + res = 0 + end function +end module + + +module m2 +contains + + subroutine sub(o) + use m1 + class(child) :: o + real :: res(3) + + res = o%fun() + end subroutine +end module |