This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/33040] New: ICE in gfc_trans_structure_assign
- 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: 9 Aug 2007 21:13:26 -0000
- Subject: [Bug fortran/33040] New: ICE in gfc_trans_structure_assign
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The following reduced example, based on
http://www.lrz-muenchen.de/services/software/mathematik/gsl/fortran/, gives an
segmentation fault:
fgsl.f90: In function 'fgsl_multifit_fdfsolver_jac':
fgsl.f90:24: internal compiler error: Segmentation fault
valgrind shows:
==21413== Invalid read of size 2
==21413== at 0x49810A: gfc_trans_structure_assign (trans-expr.c:3179)
tmp = build3 (COMPONENT_REF, TREE_TYPE (field), dest, field, NULL_TREE);
==21413== by 0x497FF3: gfc_trans_subcomponent_assign (trans-expr.c:3139)
==21413== by 0x498142: gfc_trans_structure_assign (trans-expr.c:3180)
==21413== by 0x4982FE: gfc_conv_structure (trans-expr.c:3207)
==21413== by 0x494EA0: gfc_trans_assignment_1 (trans-expr.c:4020)
==21413== by 0x49501B: gfc_trans_assignment (trans-expr.c:4171)
==21413== by 0x4791CA: gfc_trans_code (trans.c:577)
The crash occurs because field = NULL, which fails when using
"TREE_TYPE(field)".
module fgsl
use, intrinsic :: iso_c_binding
implicit none
type, public :: fgsl_matrix
private
type(c_ptr) :: gsl_matrix = c_null_ptr
end type fgsl_matrix
type, public :: fgsl_multifit_fdfsolver
private
type(c_ptr) :: gsl_multifit_fdfsolver = c_null_ptr
end type fgsl_multifit_fdfsolver
interface
function gsl_multifit_fdfsolver_jac(s) bind(c)
import :: c_ptr
type(c_ptr), value :: s
type(c_ptr) :: gsl_multifit_fdfsolver_jac
end function gsl_multifit_fdfsolver_jac
end interface
contains
function fgsl_multifit_fdfsolver_jac(s)
type(fgsl_multifit_fdfsolver), intent(in) :: s
type(fgsl_matrix) :: fgsl_multifit_fdfsolver_jac
fgsl_multifit_fdfsolver_jac%gsl_matrix = &
gsl_multifit_fdfsolver_jac(s%gsl_multifit_fdfsolver)
end function fgsl_multifit_fdfsolver_jac
end module fgsl
--
Summary: ICE in gfc_trans_structure_assign
Product: gcc
Version: 4.3.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
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33040