mirror of git://gcc.gnu.org/git/gcc.git
resolve.c (conformable_arrays): Avoid segfault when ar.start[i] == NULL.
2013-05-05 Tobias Burnus <burnus@net-b.de>
* resolve.c (conformable_arrays): Avoid segfault
when ar.start[i] == NULL.
2013-05-05 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/allocate_with_source_3.f90: New.
From-SVN: r198610
This commit is contained in:
parent
07416986ec
commit
f0470cc59f
|
|
@ -1,3 +1,8 @@
|
|||
2013-05-05 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
* resolve.c (conformable_arrays): Avoid segfault
|
||||
when ar.start[i] == NULL.
|
||||
|
||||
2013-05-05 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/57141
|
||||
|
|
|
|||
|
|
@ -6508,6 +6508,9 @@ conformable_arrays (gfc_expr *e1, gfc_expr *e2)
|
|||
|
||||
for (i = 0; i < e1->rank; i++)
|
||||
{
|
||||
if (tail->u.ar.start[i] == NULL)
|
||||
break;
|
||||
|
||||
if (tail->u.ar.end[i])
|
||||
{
|
||||
mpz_set (s, tail->u.ar.end[i]->value.integer);
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
2013-05-05 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
* gfortran.dg/allocate_with_source_3.f90: New.
|
||||
|
||||
2013-05-05 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/57141
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
! { dg-do compile }
|
||||
!
|
||||
! Contributed by Reinhold Bader
|
||||
!
|
||||
program assumed_shape_01
|
||||
use, intrinsic :: iso_c_binding
|
||||
implicit none
|
||||
type, bind(c) :: cstruct
|
||||
integer(c_int) :: i
|
||||
real(c_float) :: r(2)
|
||||
end type cstruct
|
||||
interface
|
||||
subroutine psub(this, that) bind(c, name='Psub')
|
||||
import :: c_float, cstruct
|
||||
real(c_float) :: this(:,:)
|
||||
type(cstruct) :: that(:)
|
||||
end subroutine psub
|
||||
end interface
|
||||
|
||||
real(c_float) :: t(3,7)
|
||||
type(cstruct), pointer :: u(:)
|
||||
|
||||
! The following is VALID Fortran 2008 but NOT YET supported
|
||||
allocate(u, source=[cstruct( 4, [1.1,2.2] ) ]) ! { dg-error "Array specification required in ALLOCATE statement" }
|
||||
call psub(t, u)
|
||||
deallocate (u)
|
||||
|
||||
end program assumed_shape_01
|
||||
Loading…
Reference in New Issue