https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71580
Bug ID: 71580 Summary: Internal compiler error associated with type bound defined assignment Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: ian_harvey at bigpond dot com Target Milestone: --- With trunk r237470 the following results in an internal compiler error (sym->backend_decl is null at trans_decl.c:1420). MODULE MySharedPointer IMPLICIT NONE PRIVATE PUBLIC :: SharedPointer TYPE, PRIVATE :: shared_pointer_impl CONTAINS PROCEDURE, PRIVATE :: assign => ptr_impl_assign GENERIC :: ASSIGNMENT(=) => assign END TYPE shared_pointer_impl TYPE :: SharedPointer PRIVATE TYPE(shared_pointer_impl) :: impl = shared_pointer_impl() END TYPE SharedPointer CONTAINS SUBROUTINE ptr_impl_assign(lhs, rhs) CLASS(shared_pointer_impl), INTENT(OUT) :: lhs TYPE(shared_pointer_impl), INTENT(IN) :: rhs END SUBROUTINE ptr_impl_assign SUBROUTINE evil01_worker(x) TYPE(SharedPointer) :: x x = make_ptr() END SUBROUTINE evil01_worker FUNCTION make_ptr() RESULT(ptr) TYPE(SharedPointer) :: ptr END FUNCTION make_ptr END MODULE MySharedPointer $ gfortran -v PolyScalarSharedPointerExample.f90 Driving: gfortran -v PolyScalarSharedPointerExample.f90 -l gfortran -l m -shared-libgcc Using built-in specs. COLLECT_GCC=gfortran COLLECT_LTO_WRAPPER=/home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: .././src/configure --prefix=/home/MEGMS2/ian/usr/gcc-7.0.0 --enable-languages=c,c++,fortran --enable-libgomp --enable-checking=release Thread model: posix gcc version 7.0.0 20160615 (experimental) (GCC) COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' /home/MEGMS2/ian/usr/gcc-7.0.0/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/f951 PolyScalarSharedPointerExample.f90 -quiet -dumpbase PolyScalarSharedPointerExample.f90 -mtune=generic -march=x86-64 -auxbase PolyScalarSharedPointerExample -version -fintrinsic-modules-path /home/MEGMS2/ian/usr/gcc-7.0.0/lib/gcc/x86_64-pc-linux-gnu/7.0.0/finclude -o /tmp/ccdBc06e.s GNU Fortran (GCC) version 7.0.0 20160615 (experimental) (x86_64-pc-linux-gnu) compiled by GNU C version 7.0.0 20160615 (experimental), GMP version 6.0.0, MPFR version 3.1.3, MPC version 1.0.2, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU Fortran2008 (GCC) version 7.0.0 20160615 (experimental) (x86_64-pc-linux-gnu) compiled by GNU C version 7.0.0 20160615 (experimental), GMP version 6.0.0, MPFR version 3.1.3, MPC version 1.0.2, isl version none GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 PolyScalarSharedPointerExample.f90:30:0: END FUNCTION make_ptr internal compiler error: in gfc_get_symbol_decl, at fortran/trans-decl.c:1420 0x6a1408 gfc_get_symbol_decl(gfc_symbol*) ../.././src/gcc/fortran/trans-decl.c:1420 0x6a370f generate_local_decl ../.././src/gcc/fortran/trans-decl.c:5237 0x66bd2b do_traverse_symtree ../.././src/gcc/fortran/symbol.c:3926 0x6a4372 generate_local_vars ../.././src/gcc/fortran/trans-decl.c:5427 0x6a4372 gfc_generate_function_code(gfc_namespace*) ../.././src/gcc/fortran/trans-decl.c:6106 0x684141 gfc_generate_module_code(gfc_namespace*) ../.././src/gcc/fortran/trans.c:2058 0x63c86b translate_all_program_units ../.././src/gcc/fortran/parse.c:5830 0x63c86b gfc_parse_file() ../.././src/gcc/fortran/parse.c:6049 0x67de02 gfc_be_parse_file ../.././src/gcc/fortran/f95-lang.c:201 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.