This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch, Fortran, pr70397, gcc-5, v1] [5/6 Regression] ice while allocating ultimate polymorphic
- From: Dominique d'HumiÃres <dominiq at lps dot ens dot fr>
- To: Andre Vehreschild <vehre at gmx dot de>
- Cc: fortran at gcc dot gnu dot org, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Sun, 27 Mar 2016 21:41:52 +0200
- Subject: Re: [Patch, Fortran, pr70397, gcc-5, v1] [5/6 Regression] ice while allocating ultimate polymorphic
- Authentication-results: sourceware.org; auth=none
Andre,
In order to apply the patch on a recent trunk
@@ -1070,7 +1089,7 @@ gfc_copy_class_to_class (tree from, tree to, tree nelems, bool unlimited)
if (unlimited)
{
if (from_class_base != NULL_TREE)
- from_len = gfc_class_len_get (from_class_base);
+ from_len = gfc_class_len_or_zero_get (from_class_base);
else
from_len = integer_zero_node;
}
should be something such as
@@ -1120,7 +1142,7 @@ gfc_copy_class_to_class (tree from, tree
if (unlimited)
{
if (from != NULL_TREE && unlimited)
- from_len = gfc_class_len_get (from);
+ from_len = gfc_class_len_or_zero_get (from);
else
from_len = integer_zero_node;
}
With my patched tree I also see the regression
FAIL: gfortran.dg/coarray_allocate_4.f08 * (internal compiler error)
/opt/gcc/work/gcc/testsuite/gfortran.dg/coarray_allocate_4.f08:39:0:
allocate (z, source=x)
internal compiler error: tree check: expected record_type or union_type or qual_union_type, have void_type in gfc_class_len_or_zero_get, at fortran/trans-expr.c:186
Dominique