http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58906

            Bug ID: 58906
           Summary: SELECT TYPE with CLASS IS generates ICE
           Product: gcc
           Version: 4.8.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: kimwooyoung at gmail dot com

The code fragment causes gfortan to die with a seg fault.
Using 'TYPE IS' instead of 'CLASS IS' seems o.k.

MODULE mymod

  TYPE base
  CONTAINS
  END TYPE base

  TYPE, EXTENDS(base) :: child
    CLASS(*), DIMENSION(:), POINTER :: arr
  CONTAINS
  END TYPE child

CONTAINS

  SUBROUTINE f(r)
    CLASS(base), INTENT(INOUT) ::  r
    SELECT TYPE ( r )
    CLASS IS ( child )
    !TYPE IS ( child )
      SELECT TYPE( iarr=>r%arr )
      TYPE IS ( INTEGER )
        CALL func( iarr )
      END SELECT
    END SELECT
  END SUBROUTINE f

END MODULE mymod

$ gfortran -c reprod2.F90
f951: internal compiler error: Segmentation fault
0x869cbf crash_signal
        ../../gcc-4.8.2/gcc/toplev.c:332
0x56a244 resolve_select_type
        ../../gcc-4.8.2/gcc/fortran/resolve.c:8367
0x56b7cc resolve_code
        ../../gcc-4.8.2/gcc/fortran/resolve.c:10379
0x56d24e resolve_codes
        ../../gcc-4.8.2/gcc/fortran/resolve.c:15047
0x55ddb2 gfc_resolve
        ../../gcc-4.8.2/gcc/fortran/resolve.c:15075
0x56b940 gfc_resolve
        ../../gcc-4.8.2/gcc/fortran/resolve.c:15066
0x56b940 resolve_block_construct
        ../../gcc-4.8.2/gcc/fortran/resolve.c:9367
0x56b940 resolve_code
        ../../gcc-4.8.2/gcc/fortran/resolve.c:10383
0x56a0fb gfc_resolve_blocks(gfc_code*, gfc_namespace*)
        ../../gcc-4.8.2/gcc/fortran/resolve.c:9449
0x56adf3 resolve_code
        ../../gcc-4.8.2/gcc/fortran/resolve.c:10193
0x56a0fb gfc_resolve_blocks(gfc_code*, gfc_namespace*)
        ../../gcc-4.8.2/gcc/fortran/resolve.c:9449
0x56ab1f resolve_select_type
        ../../gcc-4.8.2/gcc/fortran/resolve.c:8681
0x56b7cc resolve_code
        ../../gcc-4.8.2/gcc/fortran/resolve.c:10379
0x56d24e resolve_codes
        ../../gcc-4.8.2/gcc/fortran/resolve.c:15047
0x56d157 resolve_codes
        ../../gcc-4.8.2/gcc/fortran/resolve.c:15033
0x55ddb2 gfc_resolve
        ../../gcc-4.8.2/gcc/fortran/resolve.c:15075
0x552486 gfc_parse_file()
        ../../gcc-4.8.2/gcc/fortran/parse.c:4614
0x58e365 gfc_be_parse_file
        ../../gcc-4.8.2/gcc/fortran/f95-lang.c:189
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Reply via email to