re PR fortran/90002 (ICE: free_expr0(): Bad expr type)

2019-06-12  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/90002
	* array.c (gfc_free_array_spec): When freeing an array-spec, avoid
	an ICE for assumed-shape coarrays 

2019-06-12  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/90002
	* gfortran.dg/pr90002.f90: New test.

From-SVN: r272201
This commit is contained in:
Steven G. Kargl 2019-06-12 18:28:32 +00:00
parent e97bf6bbbd
commit 974b8e618b
4 changed files with 32 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2019-06-12 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/90002
* array.c (gfc_free_array_spec): When freeing an array-spec, avoid
an ICE for assumed-shape coarrays
2019-06-08 Paul Thomas <pault@gcc.gnu.org>
PR fortran/90786

View File

@ -324,10 +324,22 @@ gfc_free_array_spec (gfc_array_spec *as)
if (as == NULL)
return;
for (i = 0; i < as->rank + as->corank; i++)
if (as->corank == 0)
{
gfc_free_expr (as->lower[i]);
gfc_free_expr (as->upper[i]);
for (i = 0; i < as->rank; i++)
{
gfc_free_expr (as->lower[i]);
gfc_free_expr (as->upper[i]);
}
}
else
{
int n = as->rank + as->corank - (as->cotype == AS_EXPLICIT ? 1 : 0);
for (i = 0; i < n; i++)
{
gfc_free_expr (as->lower[i]);
gfc_free_expr (as->upper[i]);
}
}
free (as);

View File

@ -1,3 +1,8 @@
2019-06-12 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/90002
* gfortran.dg/pr90002.f90: New test.
2019-06-12 Martin Sebor <msebor@redhat.com>
PR middle-end/90676

View File

@ -0,0 +1,6 @@
! { dg-do compile }
! { dg-options "-fcoarray=single" }
! Contributed by Arseny Solokha <asolokha at gmx dot de>
module pc
integer, dimension(1) :: zw[1:1,1:*]
end module pc