re PR fortran/47768 (ICE: printing a derived-type variable with proc-pointer components)

2011-02-18  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47768
	* resolve.c (resolve_transfer): Reject variables with procedure pointer
	components.

2011-02-18  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47768
	* gfortran.dg/proc_ptr_comp_30.f90: New.

From-SVN: r170271
This commit is contained in:
Janus Weil 2011-02-18 13:23:56 +01:00
parent abfea58d53
commit 357f98e552
4 changed files with 34 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2011-02-18 Janus Weil <janus@gcc.gnu.org>
PR fortran/47768
* resolve.c (resolve_transfer): Reject variables with procedure pointer
components.
2011-02-18 Janus Weil <janus@gcc.gnu.org>
PR fortran/47767

View File

@ -8091,6 +8091,14 @@ resolve_transfer (gfc_code *code)
return;
}
/* F08:C935. */
if (ts->u.derived->attr.proc_pointer_comp)
{
gfc_error ("Data transfer element at %L cannot have "
"procedure pointer components", &code->loc);
return;
}
if (ts->u.derived->attr.alloc_comp)
{
gfc_error ("Data transfer element at %L cannot have "

View File

@ -1,3 +1,8 @@
2011-02-18 Janus Weil <janus@gcc.gnu.org>
PR fortran/47768
* gfortran.dg/proc_ptr_comp_30.f90: New.
2011-02-18 Jakub Jelinek <jakub@redhat.com>
PR debug/47780

View File

@ -0,0 +1,15 @@
! { dg-do compile }
!
! PR 47768: ICE: printing a derived-type variable with proc-pointer components
!
! Contributed by Janus Weil <janus@gcc.gnu.org>
type :: t
integer :: i = 3
procedure(type(t)), pointer, nopass :: ppc
end type
type(t) :: x
print *,x ! { dg-error "cannot have procedure pointer components" }
end