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>
|
2009-10-23 Janus Weil <janus@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/41758
|
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);
|
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, &lse->pre);
|
||||||
gfc_add_block_to_block (&block, &rse->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>
|
2009-10-22 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||||||
|
|
||||||
PR target/41787
|
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