diff options
author | Mikael Morin <mikael@gcc.gnu.org> | 2014-03-28 20:04:01 +0000 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2014-03-28 21:04:01 +0100 |
commit | 61b6bed7e7e5821e58a0565ce68d001063b83197 (patch) | |
tree | 277f4797a472a360c665d342e727d78a761f253e /gcc/fortran/trans-expr.c | |
parent | 4cd8957f51341faaacdbc573b1698ede90895bc3 (diff) | |
download | gcc-61b6bed7e7e5821e58a0565ce68d001063b83197.zip gcc-61b6bed7e7e5821e58a0565ce68d001063b83197.tar.gz gcc-61b6bed7e7e5821e58a0565ce68d001063b83197.tar.bz2 |
re PR fortran/60576 (FAIL: gfortran.dg/assumed_rank_7.f90)
2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
Tobias Burnus <burnus@net-b.de>
PR fortran/60576
* trans-expr.c (gfc_conv_derived_to_class): Avoid
generation of out-of-bounds range expr.
Co-Authored-By: Tobias Burnus <burnus@net-b.de>
From-SVN: r208918
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r-- | gcc/fortran/trans-expr.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index 9a6b40c..30931a3 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -426,7 +426,11 @@ gfc_conv_derived_to_class (gfc_se *parmse, gfc_expr *e, gfc_conv_expr_descriptor (parmse, e); if (e->rank != class_ts.u.derived->components->as->rank) - class_array_data_assign (&block, ctree, parmse->expr, true); + { + gcc_assert (class_ts.u.derived->components->as->type + == AS_ASSUMED_RANK); + class_array_data_assign (&block, ctree, parmse->expr, false); + } else { if (gfc_expr_attr (e).codimension) |