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

Reply via email to