]> granicus.if.org Git - clang/commitdiff
Instead of dereferencing std::vector::end() (which is UB and causes failed assertions...
authorAaron Ballman <aaron@aaronballman.com>
Thu, 12 Mar 2015 13:49:45 +0000 (13:49 +0000)
committerAaron Ballman <aaron@aaronballman.com>
Thu, 12 Mar 2015 13:49:45 +0000 (13:49 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@232037 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/MicrosoftCXXABI.cpp

index 1ec37f413112f21711437f8d604520c3255d040e..3bc9f64fe4b7fc0a18e5b3780739cc8131475746 100644 (file)
@@ -3296,7 +3296,8 @@ MicrosoftCXXABI::getAddrOfCXXCopyCtorClosure(const CXXConstructorDecl *CD) {
   CodeGenFunction::RunCleanupsScope Cleanups(CGF);
 
   const auto *FPT = CD->getType()->castAs<FunctionProtoType>();
-  ConstExprIterator ArgBegin(ArgVec.data()), ArgEnd(&*ArgVec.end());
+  ConstExprIterator ArgBegin(ArgVec.data()),
+      ArgEnd(ArgVec.data() + ArgVec.size());
   CGF.EmitCallArgs(Args, FPT, ArgBegin, ArgEnd, CD, 1);
 
   // Insert any ABI-specific implicit constructor arguments.