diff --git a/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp b/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp --- a/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp @@ -577,10 +577,12 @@ } void DWARFUnit::clearDIEs(bool KeepCUDie) { - if (DieArray.size() > (unsigned)KeepCUDie) { - DieArray.resize((unsigned)KeepCUDie); - DieArray.shrink_to_fit(); - } + if (KeepCUDie && DieArray.size() > 0) { + std::vector VectorWithSingleCU(1); + VectorWithSingleCU.emplace_back(DieArray[0]); + DieArray = VectorWithSingleCU; + } else + DieArray = std::vector(0); } Expected