Commit f0470cc5 by Tobias Burnus Committed by Tobias Burnus

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
parent 07416986
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
* decl.c (gfc_match_null): Permit use-associated
NULL intrinsic.
......
......@@ -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);
......
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
* gfortran.dg/null_8.f90: New.
......
! { 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment