[Bug fortran/64947] New: Internal compiler error: in gimplify_expr, at gimplify.c:8425
bugs at stellardeath dot org
gcc-bugzilla@gcc.gnu.org
Thu Feb 5 14:26:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64947
Bug ID: 64947
Summary: Internal compiler error: in gimplify_expr, at
gimplify.c:8425
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: bugs at stellardeath dot org
Created attachment 34676
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34676&action=edit
Fairly minimal testcase to trigger the bug.
The following (IMO valid) code produces an internal compiler error for gfortran
4.9.0 which is available on my openSUSE:
#> cat testcase.f90
module ice_gimplify_expr
use, intrinsic :: iso_c_binding
implicit none
integer, parameter :: name_length = 40
type :: node_t
character(len=name_length) :: name
contains
procedure, pass :: get_child => node_get_child
end type
interface
pure function strnlen(ptr, maxlen) result(size) bind(c, name="strnlen")
use, intrinsic :: iso_c_binding
type(c_ptr), intent(in), value :: ptr
integer(kind=C_SIZE_T), intent(in), value :: maxlen
integer(kind=C_SIZE_T) :: size
end function
end interface
contains
function node_get_child(self, name) result(child)
class(node_t), intent(in) :: self
character(len=*), intent(in) :: name
type(node_t), pointer :: child
child => NULL()
end function
function c_string(ptr) result(s)
type(c_ptr), value, intent(in) :: ptr
character(kind=C_CHAR, len=strnlen(ptr, int(name_length, kind=C_SIZE_T))),
pointer :: s
call c_f_pointer(ptr, s)
end function
function node_from_strings(strings) result(node)
type(node_t), pointer :: node
type(c_ptr), intent(in), dimension(2) :: strings
node => node%get_child(c_string(strings(1)))
end function
end module
#> gfortran-4.9 --version
GNU Fortran (SUSE Linux) 4.9.0
Copyright (C) 2014 Free Software Foundation, Inc.
GNU Fortran comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of GNU Fortran
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING
#> gfortran-4.9 -ffree-form -c testcase.f90
testcase.f90: In function ‘node_from_strings’:
testcase.f90:40:0: internal compiler error: in gimplify_expr, at
gimplify.c:8425
node => node%get_child(c_string(strings(1)))
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugs.opensuse.org/> for instructions.
#>
More information about the Gcc-bugs
mailing list