https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93423
Bug ID: 93423 Summary: ICE on invalid with argument list for module procedure Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: abensonca at gmail dot com Target Milestone: --- The following invalid code results in an ICE (using git commit 472dc648ce3e7661762931d584d239611ddca964): module t type :: b contains procedure :: p => bp end type b interface module function bp(s) class(b), intent(inout) :: s integer, pointer :: bp end function end interface end module t submodule (t) ts contains module procedure bp(s) end procedure bp end submodule ts $ gfortran -v Using built-in specs. COLLECT_GCC=gfortran COLLECT_LTO_WRAPPER=/home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-git/configure --prefix=/home/abenson/Galacticus/Tools --enable-languages=c,c++,fortran --disable-multilib Thread model: posix Supported LTO compression algorithms: zlib gcc version 10.0.1 20200124 (experimental) (GCC) $ gfortran -c test2.mod.F90 -o test2.mod.o test2.mod.F90:21:19: 21 | module procedure bp(s) | 1 Error: MODULE PROCEDURE at (1) must be in a generic module interface test2.mod.F90:22:5: 22 | end procedure bp | 1 Error: Expecting END SUBMODULE statement at (1) *** glibc detected *** /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951: free(): invalid pointer: 0x0000000003e2fa70 *** ======= Backtrace: ========= /home/abenson/Galacticus/Tools/lib/libc.so.6(+0x71776)[0x7fe72592a776] /home/abenson/Galacticus/Tools/lib/libc.so.6(cfree+0x6c)[0x7fe72592f49c] /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951[0x8a6b4e] /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951[0x8a6c59] /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951[0x8a6276] /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951[0x8a6630] /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951(_Z17gfc_symbol_done_2v+0x54)[0x8a8314] /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951(_Z10gfc_done_2v+0x9)[0x83e559] /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951[0x85a9a4] /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951(_Z14gfc_parse_filev+0xa14)[0x8675d4] /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951[0x8b7570] /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951[0xe1b484] /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951(_ZN6toplev4mainEiPPc+0x7ad)[0xe1db0d] /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951(main+0x2f)[0x183b47f] /home/abenson/Galacticus/Tools/lib/libc.so.6(__libc_start_main+0xfd)[0x7fe7258d7d0d] /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951[0x7c5f21] ======= Memory map: ======== 00400000-025c3000 r-xp 00000000 09:06 39587037 /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951 027c3000-027d3000 rw-p 021c3000 09:06 39587037 /home/abenson/Galacticus/Tools/libexec/gcc/x86_64-pc-linux-gnu/10.0.1/f951 027d3000-0292d000 rw-p 00000000 00:00 0 03d87000-03e4a000 rw-p 00000000 00:00 0 [heap] 3c45400000-3c45420000 r-xp 00000000 09:01 1703950 /lib64/ld-2.12.so 3c4561f000-3c45620000 r--p 0001f000 09:01 1703950 /lib64/ld-2.12.so 3c45620000-3c45621000 rw-p 00020000 09:01 1703950 /lib64/ld-2.12.so 3c45621000-3c45622000 rw-p 00000000 00:00 0 7fe720000000-7fe720021000 rw-p 00000000 00:00 0 7fe720021000-7fe724000000 ---p 00000000 00:00 0 7fe725347000-7fe72535e000 r-xp 00000000 09:06 38928531 /home/abenson/Galacticus/Tools/lib64/libgcc_s.so.1 7fe72535e000-7fe72555d000 ---p 00017000 09:06 38928531 /home/abenson/Galacticus/Tools/lib64/libgcc_s.so.1 7fe72555d000-7fe72555e000 rw-p 00016000 09:06 38928531 /home/abenson/Galacticus/Tools/lib64/libgcc_s.so.1 7fe72555e000-7fe7258b9000 rw-p 00000000 00:00 0 7fe7258b9000-7fe725a18000 r-xp 00000000 09:06 36448328 /home/abenson/Galacticus/Tools/lib/libc-2.12.1.so 7fe725a18000-7fe725c18000 ---p 0015f000 09:06 36448328 /home/abenson/Galacticus/Tools/lib/libc-2.12.1.so 7fe725c18000-7fe725c1c000 r--p 0015f000 09:06 36448328 /home/abenson/Galacticus/Tools/lib/libc-2.12.1.so 7fe725c1c000-7fe725c1d000 rw-p 00163000 09:06 36448328 /home/abenson/Galacticus/Tools/lib/libc-2.12.1.so 7fe725c1d000-7fe725c22000 rw-p 00000000 00:00 0 7fe725c22000-7fe725ca3000 r-xp 00000000 09:06 36448363 /home/abenson/Galacticus/Tools/lib/libm-2.12.1.so 7fe725ca3000-7fe725ea2000 ---p 00081000 09:06 36448363 /home/abenson/Galacticus/Tools/lib/libm-2.12.1.so 7fe725ea2000-7fe725ea3000 r--p 00080000 09:06 36448363 /home/abenson/Galacticus/Tools/lib/libm-2.12.1.so 7fe725ea3000-7fe725ea4000 rw-p 00081000 09:06 36448363 /home/abenson/Galacticus/Tools/lib/libm-2.12.1.so 7fe725ea4000-7fe725ea5000 rw-p 00000000 00:00 0 7fe725ea5000-7fe725ea7000 r-xp 00000000 09:06 36448383 /home/abenson/Galacticus/Tools/lib/libdl-2.12.1.so 7fe725ea7000-7fe7260a7000 ---p 00002000 09:06 36448383 /home/abenson/Galacticus/Tools/lib/libdl-2.12.1.so 7fe7260a7000-7fe7260a8000 r--p 00002000 09:06 36448383 /home/abenson/Galacticus/Tools/lib/libdl-2.12.1.so 7fe7260a8000-7fe7260a9000 rw-p 00003000 09:06 36448383 /home/abenson/Galacticus/Tools/lib/libdl-2.12.1.so 7fe7260a9000-7fe7260aa000 rw-p 00000000 00:00 0 7ffe00d7e000-7ffe00d94000 rw-p 00000000 00:00 0 [stack] 7ffe00df2000-7ffe00df3000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] f951: internal compiler error: Aborted 0xe1b2bf crash_signal ../../gcc-git/gcc/toplev.c:328 0x7fe7258eb1ef ??? /data001/abenson/Galacticus/Tools/glibc-2.12.1/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0 0x7fe7258eb13e *__GI_raise ../nptl/sysdeps/unix/sysv/linux/raise.c:67 0x7fe7258ec584 *__GI_abort /data001/abenson/Galacticus/Tools/glibc-2.12.1/stdlib/abort.c:92 0x7fe72592531a __libc_message ../sysdeps/unix/sysv/linux/libc_fatal.c:186 0x7fe72592a775 malloc_printerr /data001/abenson/Galacticus/Tools/glibc-2.12.1/malloc/malloc.c:6283 0x7fe72592f49b *__GI___libc_free /data001/abenson/Galacticus/Tools/glibc-2.12.1/malloc/malloc.c:3738 0x8a6b4d gfc_free_namespace(gfc_namespace*) ../../gcc-git/gcc/fortran/symbol.c:4075 0x8a6c58 gfc_free_namespace(gfc_namespace*) ../../gcc-git/gcc/fortran/symbol.c:4050 0x8a6c58 gfc_free_symbol(gfc_symbol*) ../../gcc-git/gcc/fortran/symbol.c:3087 0x8a6275 free_sym_tree ../../gcc-git/gcc/fortran/symbol.c:3916 0x8a6275 free_sym_tree ../../gcc-git/gcc/fortran/symbol.c:3914 0x8a6275 free_sym_tree ../../gcc-git/gcc/fortran/symbol.c:3913 0x8a662f gfc_free_namespace(gfc_namespace*) ../../gcc-git/gcc/fortran/symbol.c:4054 0x8a8313 gfc_free_namespace(gfc_namespace*) ../../gcc-git/gcc/fortran/symbol.c:4050 0x8a8313 gfc_symbol_done_2() ../../gcc-git/gcc/fortran/symbol.c:4103 0x83e558 gfc_done_2() ../../gcc-git/gcc/fortran/misc.c:352 0x85a9a3 clean_up_modules ../../gcc-git/gcc/fortran/parse.c:6265 0x8675d3 translate_all_program_units ../../gcc-git/gcc/fortran/parse.c:6328 0x8675d3 gfc_parse_file() ../../gcc-git/gcc/fortran/parse.c:6544 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. The code is invalid (I think) because an argument list is given for the "module procedure" defined in the submodule.