diff options
author | Tobias Burnus <burnus@net-b.de> | 2013-10-15 08:14:35 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2013-10-15 08:14:35 +0200 |
commit | 910ddd1808e57303949902384859971e16c19c67 (patch) | |
tree | 1d418a4f1533c5144cc648920439873ecdf094be /gcc | |
parent | 961402d3982e2ffbd7beaf5e874acd2dfb2cad9a (diff) | |
download | gcc-910ddd1808e57303949902384859971e16c19c67.zip gcc-910ddd1808e57303949902384859971e16c19c67.tar.gz gcc-910ddd1808e57303949902384859971e16c19c67.tar.bz2 |
re PR fortran/58652 (ICE with move_alloc and unlimited polymorphic)
2013-10-15 Tobias Burnus <burnus@net-b.de>
PR fortran/58652
* trans-intrinsic.c (conv_intrinsic_move_alloc): Fix handling
of CLASS(*) variables.
2013-10-15 Tobias Burnus <burnus@net-b.de>
PR fortran/58652
* gfortran.dg/unlimited_polymorphic_11.f90: New.
From-SVN: r203586
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-intrinsic.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 |
3 files changed, 15 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 0515e6c..83edb16 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2013-10-15 Tobias Burnus <burnus@net-b.de> + + PR fortran/58652 + * trans-intrinsic.c (conv_intrinsic_move_alloc): Fix handling + of CLASS(*) variables. + 2013-10-14 Tobias Burnus <burnus@net-b.de> PR fortran/58658 diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c index 6b85b5b..7e2bb36 100644 --- a/gcc/fortran/trans-intrinsic.c +++ b/gcc/fortran/trans-intrinsic.c @@ -7639,7 +7639,8 @@ conv_intrinsic_move_alloc (gfc_code *code) from_se.expr)); /* Reset _vptr component to declared type. */ - if (UNLIMITED_POLY (from_expr)) + if (vtab == NULL) + /* Unlimited polymorphic. */ gfc_add_modify_loc (input_location, &block, from_se.expr, fold_convert (TREE_TYPE (from_se.expr), null_pointer_node)); @@ -7695,7 +7696,8 @@ conv_intrinsic_move_alloc (gfc_code *code) from_se.expr)); /* Reset _vptr component to declared type. */ - if (UNLIMITED_POLY (from_expr)) + if (vtab == NULL) + /* Unlimited polymorphic. */ gfc_add_modify_loc (input_location, &block, from_se.expr, fold_convert (TREE_TYPE (from_se.expr), null_pointer_node)); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e4dca4b..7fb88c5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-10-15 Tobias Burnus <burnus@net-b.de> + + PR fortran/58652 + * gfortran.dg/unlimited_polymorphic_11.f90: New. + 2013-10-14 Ian Lance Taylor <iant@google.com> * go.test/go-test.exp (go-find-packages): New proc. |