------- Comment #18 from pault at gcc dot gnu dot org 2010-04-19 18:48 ------- (In reply to comment #16) I sort of doubt it. The problem arises because mio_symbol crashes in writing the character length of the procedure symbol:
Breakpoint 1, mio_symbol (sym=0x9d02370) at ../../fortran-dev/gcc/fortran/module.c:3560 3560 mio_typespec (&sym->ts); (gdb) print sym->name $1 = 0xb7c8c9f0 "char1" (gdb) print sym->ts.u.cl $2 = (gfc_charlen *) 0x9d04400 (gdb) print *sym->ts.u.cl $3 = {length = 0x9d04420, next = 0x0, length_from_typespec = 0 '\0', backend_decl = 0x0, passed_length = 0x0, resolved = 0} (gdb) print *sym->ts.interface->ts.u.cl $4 = {length = 0x9d03000, next = 0x9cb6be8, length_from_typespec = 0 '\0', backend_decl = 0x0, passed_length = 0x0, resolved = 1} (gdb) Note that the interface character length has been resolved, whereas the procedure character length has not. This is why my patch of #7 works. I believe that the problem must lie in resolve.c. For some reason, the symbol's own character length expression is not being resolved. Paul -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43227