Commit 582f2176 by Janus Weil

re PR fortran/54189 (ICE (segfault) with invalid assumed-size dummy)

2013-05-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/54189
	* resolve.c (check_assumed_size_reference): Check for e->ref.


2013-05-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/54189
	* gfortran.dg/assumed_size_1.f90: New.

From-SVN: r199445
parent 0b871ccf
2013-05-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/54189
* resolve.c (check_assumed_size_reference): Check for e->ref.
2013-05-30 Tobias Burnus <burnus@net-b.de> 2013-05-30 Tobias Burnus <burnus@net-b.de>
PR fortran/57458 PR fortran/57458
......
...@@ -1459,7 +1459,7 @@ check_assumed_size_reference (gfc_symbol *sym, gfc_expr *e) ...@@ -1459,7 +1459,7 @@ check_assumed_size_reference (gfc_symbol *sym, gfc_expr *e)
/* FIXME: The comparison "e->ref->u.ar.type == AR_FULL" is wrong. /* FIXME: The comparison "e->ref->u.ar.type == AR_FULL" is wrong.
What should it be? */ What should it be? */
if ((e->ref->u.ar.end[e->ref->u.ar.as->rank - 1] == NULL) if (e->ref && (e->ref->u.ar.end[e->ref->u.ar.as->rank - 1] == NULL)
&& (e->ref->u.ar.as->type == AS_ASSUMED_SIZE) && (e->ref->u.ar.as->type == AS_ASSUMED_SIZE)
&& (e->ref->u.ar.type == AR_FULL)) && (e->ref->u.ar.type == AR_FULL))
{ {
......
2013-05-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/54189
* gfortran.dg/assumed_size_1.f90: New.
2013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org> 2013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
* gcc.dg/shrink-wrap-alloca.c: New added. * gcc.dg/shrink-wrap-alloca.c: New added.
......
! { dg-do compile }
!
! PR 54189: ICE (segfault) with invalid assumed-size dummy
!
! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
implicit none
procedure(g), pointer :: x ! { dg-error "must be a dummy argument" }
x => g
contains
function g() ! { dg-error "must be a dummy argument" }
integer :: g(*)
end function
end
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