Author: d0k Date: Tue Aug 4 07:34:30 2015 New Revision: 243973 URL: http://llvm.org/viewvc/llvm-project?rev=243973&view=rev Log: [CodeGen] Don't write into a SmallVector's uninitialized memory.
That's just ugly and not needed in this case. No functionality change. Modified: cfe/trunk/lib/CodeGen/CGCleanup.cpp Modified: cfe/trunk/lib/CodeGen/CGCleanup.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCleanup.cpp?rev=243973&r1=243972&r2=243973&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGCleanup.cpp (original) +++ cfe/trunk/lib/CodeGen/CGCleanup.cpp Tue Aug 4 07:34:30 2015 @@ -685,13 +685,10 @@ void CodeGenFunction::PopCleanupBlock(bo // Copy the cleanup emission data out. Note that SmallVector // guarantees maximal alignment for its buffer regardless of its // type parameter. - SmallVector<char, 8*sizeof(void*)> CleanupBuffer; - CleanupBuffer.reserve(Scope.getCleanupSize()); - memcpy(CleanupBuffer.data(), - Scope.getCleanupBuffer(), Scope.getCleanupSize()); - CleanupBuffer.set_size(Scope.getCleanupSize()); - EHScopeStack::Cleanup *Fn = - reinterpret_cast<EHScopeStack::Cleanup*>(CleanupBuffer.data()); + auto *CleanupSource = reinterpret_cast<char *>(Scope.getCleanupBuffer()); + SmallVector<char, 8 * sizeof(void *)> CleanupBuffer( + CleanupSource, CleanupSource + Scope.getCleanupSize()); + auto *Fn = reinterpret_cast<EHScopeStack::Cleanup *>(CleanupBuffer.data()); EHScopeStack::Cleanup::Flags cleanupFlags; if (Scope.isNormalCleanup()) _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits