summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/MC/MCStreamer.cpp20
-rw-r--r--llvm/lib/MC/MCWin64EH.cpp8
2 files changed, 12 insertions, 16 deletions
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp
index 61f65c5f946..7521a752fe5 100644
--- a/llvm/lib/MC/MCStreamer.cpp
+++ b/llvm/lib/MC/MCStreamer.cpp
@@ -56,17 +56,12 @@ MCStreamer::MCStreamer(MCContext &Ctx)
SectionStack.push_back(std::pair<MCSectionSubPair, MCSectionSubPair>());
}
-MCStreamer::~MCStreamer() {
- for (unsigned i = 0; i < getNumWinFrameInfos(); ++i)
- delete WinFrameInfos[i];
-}
+MCStreamer::~MCStreamer() {}
void MCStreamer::reset() {
DwarfFrameInfos.clear();
- for (unsigned i = 0; i < getNumWinFrameInfos(); ++i)
- delete WinFrameInfos[i];
- WinFrameInfos.clear();
CurrentWinFrameInfo = nullptr;
+ WinFrameInfos.clear();
SymbolOrdering.clear();
SectionStack.clear();
SectionStack.push_back(std::pair<MCSectionSubPair, MCSectionSubPair>());
@@ -538,8 +533,9 @@ void MCStreamer::EmitWinCFIStartProc(const MCSymbol *Symbol) {
MCSymbol *StartProc = EmitCFILabel();
- WinFrameInfos.push_back(new WinEH::FrameInfo(Symbol, StartProc));
- CurrentWinFrameInfo = WinFrameInfos.back();
+ WinFrameInfos.emplace_back(
+ llvm::make_unique<WinEH::FrameInfo>(Symbol, StartProc));
+ CurrentWinFrameInfo = WinFrameInfos.back().get();
CurrentWinFrameInfo->TextSection = getCurrentSectionOnly();
}
@@ -557,9 +553,9 @@ void MCStreamer::EmitWinCFIStartChained() {
MCSymbol *StartProc = EmitCFILabel();
- WinFrameInfos.push_back(new WinEH::FrameInfo(CurrentWinFrameInfo->Function,
- StartProc, CurrentWinFrameInfo));
- CurrentWinFrameInfo = WinFrameInfos.back();
+ WinFrameInfos.emplace_back(llvm::make_unique<WinEH::FrameInfo>(
+ CurrentWinFrameInfo->Function, StartProc, CurrentWinFrameInfo));
+ CurrentWinFrameInfo = WinFrameInfos.back().get();
CurrentWinFrameInfo->TextSection = getCurrentSectionOnly();
}
diff --git a/llvm/lib/MC/MCWin64EH.cpp b/llvm/lib/MC/MCWin64EH.cpp
index fdc4c10cd6c..44dd8f1385a 100644
--- a/llvm/lib/MC/MCWin64EH.cpp
+++ b/llvm/lib/MC/MCWin64EH.cpp
@@ -220,17 +220,17 @@ static void EmitUnwindInfo(MCStreamer &streamer, WinEH::FrameInfo *info) {
void llvm::Win64EH::UnwindEmitter::Emit(MCStreamer &Streamer) const {
// Emit the unwind info structs first.
- for (WinEH::FrameInfo *CFI : Streamer.getWinFrameInfos()) {
+ for (const auto &CFI : Streamer.getWinFrameInfos()) {
MCSection *XData = Streamer.getAssociatedXDataSection(CFI->TextSection);
Streamer.SwitchSection(XData);
- ::EmitUnwindInfo(Streamer, CFI);
+ ::EmitUnwindInfo(Streamer, CFI.get());
}
// Now emit RUNTIME_FUNCTION entries.
- for (WinEH::FrameInfo *CFI : Streamer.getWinFrameInfos()) {
+ for (const auto &CFI : Streamer.getWinFrameInfos()) {
MCSection *PData = Streamer.getAssociatedPDataSection(CFI->TextSection);
Streamer.SwitchSection(PData);
- EmitRuntimeFunction(Streamer, CFI);
+ EmitRuntimeFunction(Streamer, CFI.get());
}
}
OpenPOWER on IntegriCloud