This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/39931] New: ICE on invalid Fortran 95 code (bad pointer assignment), gimplify_expr at gimplify.c:6315
- From: "thomas dot orgis at awi dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Apr 2009 13:37:27 -0000
- Subject: [Bug fortran/39931] New: ICE on invalid Fortran 95 code (bad pointer assignment), gimplify_expr at gimplify.c:6315
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
I observed this for gfortran 4.3.2, but also just upgraded to 4.3.3, where only
the line number in gimplify.c increases by one.
The code is bad, I know, but the compiler should tell me that instead of
crashing, I guess.
A SuSE gfortran (version 4.1.2 20070115 (prerelease)) does correctly point out:
In file point_of_no_return.f95:20
face%bla => blu
1
Error: Pointer assignment to non-POINTER at (1)
While vanilla gfortran 4.3.3's response is an ICE, as noted in the
stripped-down example:
program point_of_no_return
implicit none
type face_t
! This is intended to be a pointer, but the keyword has been
forgotten...
integer :: bla
end type
integer, pointer :: blu
type(face_t), pointer :: face
allocate(face)
allocate(blu)
! Gfortran 4.3.2 gets ICE on this.
! It rather should detect that face%bla is no pointer (just a data field inside
a structure that is pointed to).
!point_of_no_return.f95: In function
'point_of_no_return':!point_of_no_return.f95:20: internal compiler error: in
gimplify_expr, at gimplify.c:6314
face%bla => blu
end program
--
Summary: ICE on invalid Fortran 95 code (bad pointer assignment),
gimplify_expr at gimplify.c:6315
Product: gcc
Version: 4.3.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: thomas dot orgis at awi dot de
GCC build triplet: x86_64-pc-linux-gnu
GCC host triplet: x86_64-pc-linux-gnu
GCC target triplet: x86_64-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39931