From efe283dc5a615f582e98b9a9bf37ab546e3854b0 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Tue, 4 Aug 2015 12:34:30 +0000 Subject: [PATCH] [CodeGen] Don't write into a SmallVector's uninitialized memory. That's just ugly and not needed in this case. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@243973 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CGCleanup.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/lib/CodeGen/CGCleanup.cpp b/lib/CodeGen/CGCleanup.cpp index ef5a98ead9..5666a689af 100644 --- a/lib/CodeGen/CGCleanup.cpp +++ b/lib/CodeGen/CGCleanup.cpp @@ -685,13 +685,10 @@ void CodeGenFunction::PopCleanupBlock(bool FallthroughIsBranchThrough) { // Copy the cleanup emission data out. Note that SmallVector // guarantees maximal alignment for its buffer regardless of its // type parameter. - SmallVector CleanupBuffer; - CleanupBuffer.reserve(Scope.getCleanupSize()); - memcpy(CleanupBuffer.data(), - Scope.getCleanupBuffer(), Scope.getCleanupSize()); - CleanupBuffer.set_size(Scope.getCleanupSize()); - EHScopeStack::Cleanup *Fn = - reinterpret_cast(CleanupBuffer.data()); + auto *CleanupSource = reinterpret_cast(Scope.getCleanupBuffer()); + SmallVector CleanupBuffer( + CleanupSource, CleanupSource + Scope.getCleanupSize()); + auto *Fn = reinterpret_cast(CleanupBuffer.data()); EHScopeStack::Cleanup::Flags cleanupFlags; if (Scope.isNormalCleanup()) -- 2.40.0