re PR fortran/57912 (gfortran/coarray/alloc_comp_2.f90 ICE)
authorTobias Burnus <burnus@net-b.de>
Tue, 16 Jul 2013 20:54:37 +0000 (22:54 +0200)
committerTobias Burnus <burnus@gcc.gnu.org>
Tue, 16 Jul 2013 20:54:37 +0000 (22:54 +0200)
2013-07-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57912
        * trans-expr.c (gfc_trans_scalar_assign): Correct if
        condition for caf realloc.

From-SVN: r200987

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

index ef0da9a29e0f7f685897565a6e843f87dc7d37ff..0013101a544d1b54f7d3215dd51fd054b1a7aa15 100644 (file)
@@ -1,3 +1,9 @@
+2013-07-16  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/57912
+       * trans-expr.c (gfc_trans_scalar_assign): Correct if
+       condition for caf realloc.
+
 2013-07-15  Tobias Burnus  <burnus@net-b.de>
 
        * trans-array.h (gfc_deallocate_alloc_comp_no_caf,
index e1ed9d95b4308de13b6b82f59d74655ba1d02f07..de1e51b2aa69d4d2da6da6f8e3db8ec43f660590 100644 (file)
@@ -6857,9 +6857,8 @@ gfc_trans_scalar_assign (gfc_se * lse, gfc_se * rse, gfc_typespec ts,
                           fold_convert (TREE_TYPE (lse->expr), rse->expr));
 
       /* Restore pointer address of coarray components.  */
-      if (ts.u.derived->attr.coarray_comp && deep_copy)
+      if (ts.u.derived->attr.coarray_comp && deep_copy && tmp_var != NULL_TREE)
        {
-         gcc_assert (tmp_var != NULL_TREE);
          tmp = gfc_reassign_alloc_comp_caf (ts.u.derived, tmp_var, lse->expr);
          tmp = build3_v (COND_EXPR, cond, build_empty_stmt (input_location),
                          tmp);