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

Reply via email to