MODULE test USE iso_c_binding TYPE, BIND(c) :: odig INTEGER(c_int) :: value END TYPE TYPE, BIND(c) :: odig_type INTEGER(c_int64_t) :: name INTEGER(c_int) :: value END TYPE INTEGER(c_int),PARAMETER :: od_ig=11 INTERFACE SUBROUTINE odessa_segment_all(iseg,ityp,itype,isize,n,n1,p) BIND(C,NAME="odessa_segment_all") USE iso_c_binding INTEGER(c_int),INTENT(in),VALUE :: iseg,ityp INTEGER(c_int),INTENT(out) :: itype,isize,n,n1 TYPE(C_PTR) ,INTENT(out) :: p END SUBROUTINE END INTERFACE CONTAINS SUBROUTINE odgetptrigval(vector,value) TYPE(odig) ,INTENT(in) :: vector INTEGER(c_int),POINTER,INTENT(out) :: value(:) TYPE(odig_type),POINTER :: d(:) TYPE(C_PTR) :: p INTEGER :: itype,n,n1,isize CALL odessa_segment_all(vector%value,od_ig,itype,isize,n,n1,p) CALL C_F_POINTER(p,d,(/n/)) value => d(:)%value END SUBROUTINE END MODULE
$ gfortran -c test.f90 test.f90: In function 'odgetptrigval': test.f90:27:0: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. $ gfortran --version GNU Fortran (GCC) 4.5.0 20100214 (experimental) [trunk revision 156762] Copyright (C) 2010 Free Software Foundation, Inc. -- Summary: ICE with gfortran when compiling the following source file Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: francois dot jacq at irsn dot fr GCC host triplet: linux i686 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43091