https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117474
--- Comment #1 from Rimvydas (RJ) <rimvydas.jas at gmail dot com> --- It seams there are no major memory leaks. $ valgrind --leak-check=full /usr/lib64/gcc/x86_64-suse-linux/14/f951 -I. test.f90 ... ==118405== 1,234,200 bytes in 4,675 blocks are definitely lost in loss record 7,382 of 7,384 ==118405== at 0x484EA2F: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==118405== by 0x1B90FFE: UnknownInlinedFun (xmalloc.c:164) ==118405== by 0x1B90FFE: gfc_copy_array_spec(gfc_array_spec*) (array.cc:955) ==118405== by 0x1C8F2F4: resolve_component(gfc_component*, gfc_symbol*) (resolve.cc:15439) ==118405== by 0x1C9036A: resolve_fl_derived0(gfc_symbol*) (resolve.cc:15849) ==118405== by 0x1C912D6: resolve_fl_derived(gfc_symbol*) (resolve.cc:15981) ==118405== by 0x1C8BA77: resolve_symbol(gfc_symbol*) (resolve.cc:16379) ==118405== by 0x1CA91F2: do_traverse_symtree(gfc_symtree*, void (*)(gfc_symtree*), void (*)(gfc_symbol*)) [clone .lto_priv.0] (symbol.cc:4338) ==118405== by 0x1C8A531: UnknownInlinedFun (symbol.cc:4363) ==118405== by 0x1C8A531: resolve_types(gfc_namespace*) (resolve.cc:18341) ==118405== by 0x1C8B1C9: gfc_resolve(gfc_namespace*) [clone .part.0] (resolve.cc:18461) ==118405== by 0x1C8E541: resolve_symbol(gfc_symbol*) (resolve.cc:17016) ==118405== by 0x1CA91F2: do_traverse_symtree(gfc_symtree*, void (*)(gfc_symtree*), void (*)(gfc_symbol*)) [clone .lto_priv.0] (symbol.cc:4338) ==118405== by 0x1C8A531: UnknownInlinedFun (symbol.cc:4363) ==118405== by 0x1C8A531: resolve_types(gfc_namespace*) (resolve.cc:18341) ==118405== ==118405== 6,209,952 bytes in 27,723 blocks are definitely lost in loss record 7,383 of 7,384 ==118405== at 0x484EA2F: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==118405== by 0x1BB5E8F: UnknownInlinedFun (xmalloc.c:164) ==118405== by 0x1BB5E8F: UnknownInlinedFun (expr.cc:49) ==118405== by 0x1BB5E8F: gfc_lval_expr_from_sym(gfc_symbol*) (expr.cc:5301) ==118405== by 0x1BA9767: generate_finalization_wrapper(gfc_symbol*, gfc_namespace*, char const*, gfc_component*) (class.cc:2343) ==118405== by 0x1BA29B1: gfc_find_derived_vtab(gfc_symbol*) (class.cc:2672) ==118405== by 0x1C79137: gfc_resolve_finalizers(gfc_symbol*, bool*) (resolve.cc:14523) ==118405== by 0x1C912B8: resolve_fl_derived(gfc_symbol*) (resolve.cc:15956) ==118405== by 0x1C8BA77: resolve_symbol(gfc_symbol*) (resolve.cc:16379) ==118405== by 0x1CA91F2: do_traverse_symtree(gfc_symtree*, void (*)(gfc_symtree*), void (*)(gfc_symbol*)) [clone .lto_priv.0] (symbol.cc:4338) ==118405== by 0x1C8A531: UnknownInlinedFun (symbol.cc:4363) ==118405== by 0x1C8A531: resolve_types(gfc_namespace*) (resolve.cc:18341) ==118405== by 0x1C8B1C9: gfc_resolve(gfc_namespace*) [clone .part.0] (resolve.cc:18461) ==118405== by 0x1C8E541: resolve_symbol(gfc_symbol*) (resolve.cc:17016) ==118405== by 0x1CA91F2: do_traverse_symtree(gfc_symtree*, void (*)(gfc_symtree*), void (*)(gfc_symbol*)) [clone .lto_priv.0] (symbol.cc:4338) ==118405== ==118405== LEAK SUMMARY: ==118405== definitely lost: 171,216,496 bytes in 188,808 blocks ==118405== indirectly lost: 376,294,672 bytes in 1,159,513 blocks ==118405== possibly lost: 24,832 bytes in 59 blocks ==118405== still reachable: 38,215,755 bytes in 22,899 blocks ==118405== suppressed: 0 bytes in 0 blocks