https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122136
--- Comment #1 from anlauf at gcc dot gnu.org --- For the record: MALLOC_PERTURB_=3 valgrind --leak-check=full --track-origins=yes /work/gnu/git/build-trunk/gcc/f951 -quiet -pedantic pdt_39.f03 This gives: ==25644== Invalid read of size 8 ==25644== at 0xFB9E7C: get_kind(bt, gfc_expr*, char const*, int) (simplify.cc:133) ==25644== by 0xFCC89E: gfc_simplify_real(gfc_expr*, gfc_expr*) (simplify.cc:7547) ==25644== by 0xEFBAC9: do_simplify(gfc_intrinsic_sym*, gfc_expr*) (intrinsic.cc:4895) ==25644== by 0xEFC702: gfc_intrinsic_func_interface(gfc_expr*, int) (intrinsic.cc:5298) ==25644== by 0xF8A143: resolve_unknown_f(gfc_expr*) (resolve.cc:3082) ==25644== by 0xF8B0A6: resolve_function(gfc_expr*) (resolve.cc:3509) ==25644== by 0xF963C3: gfc_resolve_expr(gfc_expr*) (resolve.cc:8154) ==25644== by 0xE80317: resolve_array_list(splay_tree_s*) (array.cc:2210) ==25644== by 0xE80971: gfc_resolve_array_constructor(gfc_expr*) (array.cc:2388) ==25644== by 0xF96499: gfc_resolve_expr(gfc_expr*) (resolve.cc:8186) ==25644== by 0xE80317: resolve_array_list(splay_tree_s*) (array.cc:2210) ==25644== by 0xE80971: gfc_resolve_array_constructor(gfc_expr*) (array.cc:2388) ==25644== Address 0x67fdb78 is 728 bytes inside a block of size 736 free'd ==25644== at 0x523494B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==25644== by 0xECD411: gfc_free_ref_list(gfc_ref*) (expr.cc:681) ==25644== by 0xECD12D: free_expr0(gfc_expr*) (expr.cc:571) ==25644== by 0xECD446: gfc_replace_expr(gfc_expr*, gfc_expr*) (expr.cc:691) ==25644== by 0xFB9E77: get_kind(bt, gfc_expr*, char const*, int) (simplify.cc:139) ==25644== by 0xFCC89E: gfc_simplify_real(gfc_expr*, gfc_expr*) (simplify.cc:7547) ==25644== by 0xEFBAC9: do_simplify(gfc_intrinsic_sym*, gfc_expr*) (intrinsic.cc:4895) ==25644== by 0xEFC702: gfc_intrinsic_func_interface(gfc_expr*, int) (intrinsic.cc:5298) ==25644== by 0xF8A143: resolve_unknown_f(gfc_expr*) (resolve.cc:3082) ==25644== by 0xF8B0A6: resolve_function(gfc_expr*) (resolve.cc:3509) ==25644== by 0xF963C3: gfc_resolve_expr(gfc_expr*) (resolve.cc:8154) ==25644== by 0xE80317: resolve_array_list(splay_tree_s*) (array.cc:2210) ==25644== Block was alloc'd at ==25644== at 0x5238C31: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==25644== by 0x3865E94: xcalloc (xmalloc.c:164) ==25644== by 0xFDA12B: gfc_find_component(gfc_symbol*, char const*, bool, bool, gfc_ref**) (symbol.cc:2647) ==25644== by 0xF7DB0E: gfc_match_varspec(gfc_expr*, int, bool, bool) (primary.cc:2672) ==25644== by 0xF80D69: gfc_match_rvalue(gfc_expr**) (primary.cc:3929) ==25644== by 0xF24612: match_primary (matchexp.cc:217) ==25644== by 0xF24612: match_level_1 (matchexp.cc:267) ==25644== by 0xF24612: match_mult_operand(gfc_expr**) (matchexp.cc:323) ==25644== by 0xF248DC: match_add_operand(gfc_expr**) (matchexp.cc:412) ==25644== by 0xF24BD9: match_level_2(gfc_expr**) (matchexp.cc:536) ==25644== by 0xF24DBA: match_level_3(gfc_expr**) (matchexp.cc:607) ==25644== by 0xF24F02: match_level_4 (matchexp.cc:655) ==25644== by 0xF24F02: match_and_operand(gfc_expr**) (matchexp.cc:749) ==25644== by 0xF250DA: match_or_operand(gfc_expr**) (matchexp.cc:778) ==25644== by 0xF251EA: match_equiv_operand(gfc_expr**) (matchexp.cc:821)
