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.

Reply via email to