This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/41800] [OOP] ICE in fold_convert_loc, at fold-const.c:2789
- From: "dominiq at lps dot ens dot fr" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 23 Oct 2009 07:37:22 -0000
- Subject: [Bug fortran/41800] [OOP] ICE in fold_convert_loc, at fold-const.c:2789
- References: <bug-41800-6318@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #2 from dominiq at lps dot ens dot fr 2009-10-23 07:37 -------
Reduced test case:
module abstract_gradient
implicit none
public :: vector_class
public :: inner_product_class
public :: gradient_class
private
type, abstract :: vector_class
end type vector_class
type, abstract :: inner_product_class
end type inner_product_class
type, abstract, extends(vector_class) :: gradient_class
class(inner_product_class), pointer :: my_inner_product => null()
contains
procedure, public, non_overridable :: inquire_inner_product
end type gradient_class
contains
function inquire_inner_product (this)
class(gradient_class) :: this
class(inner_product_class), pointer :: inquire_inner_product
inquire_inner_product => this%my_inner_product
end function inquire_inner_product
end module abstract_gradient
module abstract_conjugate_gradients
use abstract_gradient
implicit none
contains
subroutine cg (g_initial)
class(gradient_class), intent(in) :: g_initial
class(inner_product_class), pointer :: ip_save
ip_save => g_initial%inquire_inner_product() ! ICE
end subroutine cg
end module abstract_conjugate_gradients
The ICE goes away if I comment line 6:
private
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41800