aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2013-10-15 08:14:35 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2013-10-15 08:14:35 +0200
commit910ddd1808e57303949902384859971e16c19c67 (patch)
tree1d418a4f1533c5144cc648920439873ecdf094be /gcc
parent961402d3982e2ffbd7beaf5e874acd2dfb2cad9a (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/fortran/trans-intrinsic.c6
-rw-r--r--gcc/testsuite/ChangeLog5
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.