https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89751

            Bug ID: 89751
           Summary: [PDT] ICE: Segmentation fault (in resolve_component)
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---

gfortran-9.0.0-alpha20190317 snapshot (r269746) ICEs when compiling the
following testcase:

program vw
  interface
    integer function ul ()
    end function ul
  end interface
  type :: q8 (s4)
    integer, kind :: s4 = 4
    procedure (ul), nopass, pointer :: pj
  end type q8
  type (q8) :: ki
end program vw

% powerpc-e300c3-linux-gnu-gfortran-9.0.0-alpha20190317 -c xmf8iifd.f90
f951: internal compiler error: Segmentation fault
0xd9d006 crash_signal
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190317/work/gcc-9-20190317/gcc/toplev.c:326
0x8111cf resolve_component
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190317/work/gcc-9-20190317/gcc/fortran/resolve.c:13965
0x8111cf resolve_component
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190317/work/gcc-9-20190317/gcc/fortran/resolve.c:13818
0x811b22 resolve_fl_derived0
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190317/work/gcc-9-20190317/gcc/fortran/resolve.c:14315
0x81216f resolve_fl_derived0
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190317/work/gcc-9-20190317/gcc/fortran/resolve.c:14414
0x81216f resolve_fl_derived
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190317/work/gcc-9-20190317/gcc/fortran/resolve.c:14444
0x80e8c7 resolve_symbol
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190317/work/gcc-9-20190317/gcc/fortran/resolve.c:14818
0x837632 do_traverse_symtree
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190317/work/gcc-9-20190317/gcc/fortran/symbol.c:4165
0x81ba15 resolve_types
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190317/work/gcc-9-20190317/gcc/fortran/resolve.c:16730
0x80d86e gfc_resolve(gfc_namespace*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190317/work/gcc-9-20190317/gcc/fortran/resolve.c:16844
0x80d86e gfc_resolve(gfc_namespace*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190317/work/gcc-9-20190317/gcc/fortran/resolve.c:16825
0x7ff526 resolve_all_program_units
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190317/work/gcc-9-20190317/gcc/fortran/parse.c:6073
0x7ff526 gfc_parse_file()
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190317/work/gcc-9-20190317/gcc/fortran/parse.c:6323
0x84d5fe gfc_be_parse_file
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190317/work/gcc-9-20190317/gcc/fortran/f95-lang.c:204

==11159== Invalid read of size 8
==11159==    at 0x8111CF: resolve_component (resolve.c:13965)
==11159==    by 0x8111CF: resolve_component(gfc_component*, gfc_symbol*)
(resolve.c:13818)
==11159==    by 0x811B22: resolve_fl_derived0(gfc_symbol*) [clone .part.54]
(resolve.c:14315)
==11159==    by 0x81216F: resolve_fl_derived0 (resolve.c:14414)
==11159==    by 0x81216F: resolve_fl_derived(gfc_symbol*) (resolve.c:14444)
==11159==    by 0x80E8C7: resolve_symbol(gfc_symbol*) (resolve.c:14818)
==11159==    by 0x837632: do_traverse_symtree(gfc_symtree*, void
(*)(gfc_symtree*), void (*)(gfc_symbol*)) (symbol.c:4165)
==11159==    by 0x81BA15: resolve_types(gfc_namespace*) (resolve.c:16730)
==11159==    by 0x80D86E: gfc_resolve (resolve.c:16844)
==11159==    by 0x80D86E: gfc_resolve(gfc_namespace*) (resolve.c:16825)
==11159==    by 0x7FF526: resolve_all_program_units (parse.c:6073)
==11159==    by 0x7FF526: gfc_parse_file() (parse.c:6323)
==11159==    by 0x84D5FE: gfc_be_parse_file() (f95-lang.c:204)
==11159==    by 0xD9D09C: compile_file() (toplev.c:456)
==11159==    by 0x764663: do_compile (toplev.c:2205)
==11159==    by 0x764663: toplev::main(int, char**) (toplev.c:2340)
==11159==    by 0x766B8D: main (main.c:39)
==11159==  Address 0x30 is not stack'd, malloc'd or (recently) free'd

This testcase was reduced from the same original file as the one filed in
PR89601.

(While my target here is powerpc, the ICE is not target-specific.)

Reply via email to