This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/32129] ICE: Procedure call with array-section-actual to scalar dummy
- From: "fxcoudert at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Nov 2007 13:51:57 -0000
- Subject: [Bug fortran/32129] ICE: Procedure call with array-section-actual to scalar dummy
- References: <bug-32129-13404@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #4 from fxcoudert at gcc dot gnu dot org 2007-11-21 13:51 -------
I think this is valid code. The reduced testcase is:
$ cat y.f90
program testCode
implicit none
type vec
real, dimension(1) :: coords
end type
integer :: i
real, dimension(1,1), parameter :: vy = 1.
i = 1
call Sub(vec(vy(:,i)))
contains
subroutine Sub(xin)
type(vec) :: xin
intent(in) xin
print*, xin
end subroutine
end program
$ gfortran y.f90
y.f90: In function ?testcode?:
y.f90:9: internal compiler error: in gfc_trans_call, at
fortran/trans-stmt.c:321
But it also happens with external functions:
$ cat y2.f90
implicit none
type vec
integer, dimension(1) :: coords
end type
integer :: i
integer, dimension(1,1), parameter :: vy = 0
i = 1
call shape(vec(vy(:,i)))
end program
$ gfortran y2.f90
y2.f90: In function ?MAIN__?:
y2.f90:8: internal compiler error: in gfc_trans_call, at
fortran/trans-stmt.c:321
And it's actually a nice area for bugs to creep in:
$ cat y3.f90
integer, parameter :: vy(1,1) = 0
type vec
integer :: coords(1)
end type
integer :: i
i = 1
print *, shape(vec(vy(:,i)))
end program
$ gfortran y3.f90
y3.f90: In function ?MAIN__?:
y3.f90:7: internal compiler error: Bad IO basetype (1)
$ cat y4.f90
implicit none
type vec
integer, dimension(1) :: coords
end type
integer :: i
integer, dimension(1,1), parameter :: vy = 0
i = 1
print *, shape(vec(vy(:,i)))
end program
$ gfortran y4.f90
y2.f90: In function ?MAIN__?:
y2.f90:8: internal compiler error: in gfc_typenode_for_spec, at
fortran/trans-types.c:841
--
fxcoudert at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |fxcoudert at gcc dot gnu dot
| |org
Keywords|ice-on-invalid-code |ice-on-valid-code
Last reconfirmed|2007-05-31 11:57:03 |2007-11-21 13:51:56
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32129