This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/42851] New: [4.3/4.4/4.5] ICE (segfault) at gfc_trans_pointer_assignment for subpointer
- From: "burnus at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 23 Jan 2010 17:40:34 -0000
- Subject: [Bug fortran/42851] New: [4.3/4.4/4.5] ICE (segfault) at gfc_trans_pointer_assignment for subpointer
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Found while looking again as PR 39304. The following program causes an ICE. It
might well be only fixable with the new array descriptor.
The program works with 4.1 and 4.2 (which might well be only by chance) but
fails with 4.3/4.4/4.5 with:
test.f90: In function 'func':
test.f90:7:0: internal compiler error: Segmentation fault
Program received signal SIGSEGV, Segmentation fault.
0x000000000055d935 in gfc_trans_pointer_assignment (expr1=0x137b4e0,
expr2=0x137b970) at /home/tob/projects/gcc/gcc/fortran/trans-expr.c:4676
4676 gfc_add_modify (&lse.post, GFC_DECL_SPAN(decl), tmp);
module m
implicit none
type t
real :: a(3)
end type t
contains
function func(x,i)
type(t), target :: x(:)
integer :: i
real, dimension(:), pointer :: func
func => x%a(i)
end function func
end module m
use m
type(t) :: mt(3)
real :: res(3)
mt = t(1.0)
res = matmul(func(mt,1), reshape( (/1,2,3,4,5,6,7,8,9/), (/3,3 /) ))
if (res(1) /= 6.0 .and. res(2) /= 15.0 .and. res(3) /= 24.0) then
print *, res
stop 'error'
end if
end
--
Summary: [4.3/4.4/4.5] ICE (segfault) at
gfc_trans_pointer_assignment for subpointer
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
OtherBugsDependingO 42742
nThis:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42851