https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118400
Bug ID: 118400 Summary: memory leak of irange at evaluate_properties_for_edge (ipa-fnsummary.cc:690) Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ipa Assignee: unassigned at gcc dot gnu.org Reporter: rguenth at gcc dot gnu.org Target Milestone: --- valgrind shows a definitive memory leak at ==9724== 40,808 bytes in 1 blocks are definitely lost in loss record 4,675 of 4,707 ==9724== at 0x484349F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==9724== by 0x1118C91: irange::maybe_resize(int) [clone .part.28] (value-range.h:713) ==9724== by 0x111C46C: maybe_resize (value-range.cc:1339) ==9724== by 0x111C46C: irange::operator=(irange const&) (value-range.cc:1320) ==9724== by 0xB55DE7: init (value-range.h:900) ==9724== by 0xB55DE7: value_range::operator=(vrange const&) (value-range.h:919) ==9724== by 0xB49D90: operator= (value-range.h:928) ==9724== by 0xB49D90: evaluate_properties_for_edge(cgraph_edge*, bool, unsigned int*, unsigned int*, ipa_auto_call_arg_values*, bool) (ipa-fnsummary.cc:690) which is avals->m_known_value_ranges[i] = vr; where the ipa_auto_call_arg_values member auto_vec<value_range, 32> m_known_value_ranges element ends up being re-allocated on assignment. This shows at least when building SPEC CPU 2017 500.perlbench_r