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)

Reply via email to