https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87673
--- Comment #5 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- A better traceback. Part of this seems to be a use after free problem: =5863== Invalid read of size 1 ==5863== at 0x8FEEB4: resolve_elemental_actual(gfc_expr*, gfc_code*) (resolve.c:2160) ==5863== by 0x90160F: resolve_function(gfc_expr*) (resolve.c:3228) ==5863== by 0x909ECE: gfc_resolve_expr(gfc_expr*) (resolve.c:6866) ==5863== by 0x915AC6: resolve_charlen(gfc_charlen*) (resolve.c:11943) ==5863== by 0x921D66: resolve_types(gfc_namespace*) (resolve.c:16727) ==5863== by 0x921E24: resolve_types(gfc_namespace*) (resolve.c:16740) ==5863== by 0x92221F: gfc_resolve(gfc_namespace*) (resolve.c:16843) ==5863== by 0x8F1D04: gfc_parse_file() (parse.c:6275) ==5863== by 0x95177B: gfc_be_parse_file() (f95-lang.c:204) ==5863== by 0xED717F: compile_file() (toplev.c:456) ==5863== by 0x81F707: do_compile (toplev.c:2204) ==5863== by 0x81F707: toplev::main(int, char**) (toplev.c:2339) ==5863== by 0x8231BE: main (main.c:39) ==5863== Address 0x58b1dc7 is 87 bytes inside a block of size 344 free'd ==5863== at 0x4C2B390: free (vg_replace_malloc.c:530) ==5863== by 0x9448FF: gfc_free_symbol(gfc_symbol*) (symbol.c:3087) ==5863== by 0x9449EE: gfc_release_symbol(gfc_symbol*) (symbol.c:3114) ==5863== by 0x8F05E0: gfc_fixup_sibling_symbols(gfc_symbol*, gfc_namespace*) (parse.c:5492) ==5863== by 0x8F088A: parse_contained(int) (parse.c:5584) ==5863== by 0x8F126C: parse_module() (parse.c:5953) ==5863== by 0x8F1C36: gfc_parse_file() (parse.c:6248) ==5863== by 0x95177B: gfc_be_parse_file() (f95-lang.c:204) ==5863== by 0xED717F: compile_file() (toplev.c:456) ==5863== by 0x81F707: do_compile (toplev.c:2204) ==5863== by 0x81F707: toplev::main(int, char**) (toplev.c:2339) ==5863== by 0x8231BE: main (main.c:39) ==5863== Block was alloc'd at ==5863== at 0x4C2C432: calloc (vg_replace_malloc.c:752) ==5863== by 0x189EC60: xcalloc (xmalloc.c:162) ==5863== by 0x944A15: gfc_new_symbol(char const*, gfc_namespace*) (symbol.c:3125) ==5863== by 0x9450BA: gfc_get_sym_tree(char const*, gfc_namespace*, gfc_symtree**, bool) (symbol.c:3375) ==5863== by 0x94539C: gfc_get_ha_sym_tree(char const*, gfc_symtree**) (symbol.c:3468) ==5863== by 0x8F8677: gfc_match_rvalue(gfc_expr**) (primary.c:3349) ==5863== by 0x8BCC54: match_primary(gfc_expr**) (matchexp.c:157) ==5863== by 0x8BCD67: match_level_1(gfc_expr**) (matchexp.c:211) ==5863== by 0x8BCE29: match_mult_operand(gfc_expr**) (matchexp.c:267) ==5863== by 0x8BD034: match_add_operand(gfc_expr**) (matchexp.c:356) ==5863== by 0x8BD2F4: match_level_2(gfc_expr**) (matchexp.c:480) ==5863== by 0x8BD486: match_level_3(gfc_expr**) (matchexp.c:551) ==5863==