https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88536
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Indeed: ==8241== Invalid read of size 8 ==8241== at 0x873E24: simplify_ref_chain(gfc_ref*, int, gfc_expr**) (expr.c:1943) ==8241== by 0x8744C0: gfc_simplify_expr(gfc_expr*, int) (expr.c:2164) ==8241== by 0x8F366B: gfc_match_varspec(gfc_expr*, int, bool, bool) (primary.c:2287) ==8241== by 0x8F756B: match_variable(gfc_expr**, int, int) (primary.c:3971) ==8241== by 0x8F75BC: gfc_match_variable(gfc_expr**, int) (primary.c:3986) ==8241== by 0x84C5E6: var_element(gfc_data_variable*) (decl.c:280) ==8241== by 0x84C794: top_var_list(gfc_data*) (decl.c:332) ==8241== by 0x84CFD1: gfc_match_data() (decl.c:617) ==8241== by 0x8E2361: match_word(char const*, match (*)(), locus*) (parse.c:65) ==8241== by 0x8E360C: decode_statement() (parse.c:468) ==8241== by 0x8E7A6B: next_free() (parse.c:1235) ==8241== by 0x8E8028: next_statement() (parse.c:1467) ==8241== Address 0x6351ba8 is 728 bytes inside a block of size 736 free'd ==8241== at 0x4C2DD18: free (vg_replace_malloc.c:530) ==8241== by 0x870ACB: gfc_free_ref_list(gfc_ref*) (expr.c:606) ==8241== by 0x870869: free_expr0(gfc_expr*) (expr.c:505) ==8241== by 0x870AF8: gfc_replace_expr(gfc_expr*, gfc_expr*) (expr.c:616) ==8241== by 0x873DF7: simplify_ref_chain(gfc_ref*, int, gfc_expr**) (expr.c:1970) ==8241== by 0x8744C0: gfc_simplify_expr(gfc_expr*, int) (expr.c:2164) ==8241== by 0x8F366B: gfc_match_varspec(gfc_expr*, int, bool, bool) (primary.c:2287) ==8241== by 0x8F756B: match_variable(gfc_expr**, int, int) (primary.c:3971) ==8241== by 0x8F75BC: gfc_match_variable(gfc_expr**, int) (primary.c:3986) ==8241== by 0x84C5E6: var_element(gfc_data_variable*) (decl.c:280) ==8241== by 0x84C794: top_var_list(gfc_data*) (decl.c:332) ==8241== by 0x84CFD1: gfc_match_data() (decl.c:617) ==8241== Block was alloc'd at ==8241== at 0x4C2EA1E: calloc (vg_replace_malloc.c:711) ==8241== by 0x2149D20: xcalloc (xmalloc.c:162) ==8241== by 0x8F288F: is_inquiry_ref(char const*, gfc_ref**) (primary.c:1964) ==8241== by 0x8F3292: gfc_match_varspec(gfc_expr*, int, bool, bool) (primary.c:2199) ==8241== by 0x8F756B: match_variable(gfc_expr**, int, int) (primary.c:3971) ==8241== by 0x8F75BC: gfc_match_variable(gfc_expr**, int) (primary.c:3986) ==8241== by 0x84C5E6: var_element(gfc_data_variable*) (decl.c:280) ==8241== by 0x84C794: top_var_list(gfc_data*) (decl.c:332) ==8241== by 0x84CFD1: gfc_match_data() (decl.c:617) ==8241== by 0x8E2361: match_word(char const*, match (*)(), locus*) (parse.c:65) ==8241== by 0x8E360C: decode_statement() (parse.c:468) ==8241== by 0x8E7A6B: next_free() (parse.c:1235)