diff options
-rw-r--r-- | lib/Analysis/BlockFrequencyInfoImpl.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/Analysis/BlockFrequencyInfoImpl.cpp b/lib/Analysis/BlockFrequencyInfoImpl.cpp index c2337bebe3..bc3722eb9d 100644 --- a/lib/Analysis/BlockFrequencyInfoImpl.cpp +++ b/lib/Analysis/BlockFrequencyInfoImpl.cpp @@ -598,7 +598,11 @@ void Distribution::normalize() { } void BlockFrequencyInfoImplBase::clear() { - *this = BlockFrequencyInfoImplBase(); + // Swap with a default-constructed std::vector, since std::vector<>::clear() + // does not actually clear heap storage. + std::vector<FrequencyData>().swap(Freqs); + std::vector<WorkingData>().swap(Working); + std::vector<LoopData>().swap(PackagedLoops); } /// \brief Clear all memory not needed downstream. |