re PR fortran/41800 ([OOP] ICE in fold_convert_loc, at fold-const.c:2789)
2009-10-23 Janus Weil <janus@gcc.gnu.org> PR fortran/41800 * trans-expr.c (gfc_trans_scalar_assign): Handle CLASS variables. 2009-10-23 Janus Weil <janus@gcc.gnu.org> PR fortran/41800 * gfortran.dg/class_10.f03: New test. From-SVN: r153504
This commit is contained in:
parent
428b80d5e4
commit
566df91a82
@ -1,3 +1,8 @@
|
||||
2009-10-23 Janus Weil <janus@gcc.gnu.org>
|
||||
|
||||
PR fortran/41800
|
||||
* trans-expr.c (gfc_trans_scalar_assign): Handle CLASS variables.
|
||||
|
||||
2009-10-23 Janus Weil <janus@gcc.gnu.org>
|
||||
|
||||
PR fortran/41758
|
||||
|
@ -4660,7 +4660,7 @@ gfc_trans_scalar_assign (gfc_se * lse, gfc_se * rse, gfc_typespec ts,
|
||||
gfc_add_expr_to_block (&block, tmp);
|
||||
}
|
||||
}
|
||||
else if (ts.type == BT_DERIVED)
|
||||
else if (ts.type == BT_DERIVED || ts.type == BT_CLASS)
|
||||
{
|
||||
gfc_add_block_to_block (&block, &lse->pre);
|
||||
gfc_add_block_to_block (&block, &rse->pre);
|
||||
|
@ -1,3 +1,8 @@
|
||||
2009-10-23 Janus Weil <janus@gcc.gnu.org>
|
||||
|
||||
PR fortran/41800
|
||||
* gfortran.dg/class_10.f03: New test.
|
||||
|
||||
2009-10-22 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||||
|
||||
PR target/41787
|
||||
|
32
gcc/testsuite/gfortran.dg/class_10.f03
Normal file
32
gcc/testsuite/gfortran.dg/class_10.f03
Normal file
@ -0,0 +1,32 @@
|
||||
! { dg-do compile }
|
||||
!
|
||||
! PR 41800: [OOP] ICE in fold_convert_loc, at fold-const.c:2789
|
||||
!
|
||||
! Contributed by Harald Anlauf <anlauf@gmx.de>
|
||||
|
||||
module abstract_gradient
|
||||
|
||||
implicit none
|
||||
private
|
||||
|
||||
type, public, abstract :: gradient_class
|
||||
contains
|
||||
procedure, nopass :: inner_product
|
||||
end type
|
||||
|
||||
contains
|
||||
|
||||
function inner_product ()
|
||||
class(gradient_class), pointer :: inner_product
|
||||
inner_product => NULL()
|
||||
end function
|
||||
|
||||
end module
|
||||
|
||||
|
||||
use abstract_gradient
|
||||
class(gradient_class), pointer :: g_initial, ip_save
|
||||
ip_save => g_initial%inner_product() ! ICE
|
||||
end
|
||||
|
||||
! { dg-final { cleanup-modules "abstract_gradient" } }
|
Loading…
Reference in New Issue
Block a user