]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/60576 (FAIL: gfortran.dg/assumed_rank_7.f90)
authorMikael Morin <mikael@gcc.gnu.org>
Fri, 28 Mar 2014 20:56:28 +0000 (20:56 +0000)
committerTobias Burnus <burnus@gcc.gnu.org>
Fri, 28 Mar 2014 20:56:28 +0000 (21:56 +0100)
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: r208923

gcc/fortran/ChangeLog
gcc/fortran/trans-expr.c

index 92dad46c3807e2aab5da4ed2ae7b8ff9c103895a..55ed5fe22850b66d5284e934f3c49fec7808f97e 100644 (file)
@@ -1,3 +1,10 @@
+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.
+
 2014-04-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/60522
index 891717aca40052cceb2066fe6692a8c7da3c0307..d6411b0f5ecd59f9733ad9771792c060dc1fb8da 100644 (file)
@@ -355,7 +355,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)