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==

Reply via email to