Microsoft's debug implementation of std::copy checks if the destination is an
array and then does some bounds checking. This was causing an assertion
failure in fs::rename_internal which copies to a buffer of the appropriate
size but that's type-punned to an array of length 1 for API compatibility
reasons.
Fix is to make make the destination a pointer rather than an array.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315222
91177308-0d34-0410-b5e6-
96231b3b80d8
RenameInfo.ReplaceIfExists = ReplaceIfExists;
RenameInfo.RootDirectory = 0;
RenameInfo.FileNameLength = ToWide.size();
- std::copy(ToWide.begin(), ToWide.end(), RenameInfo.FileName);
+ std::copy(ToWide.begin(), ToWide.end(), &RenameInfo.FileName[0]);
if (!SetFileInformationByHandle(FromHandle, FileRenameInfo, &RenameInfo,
RenameInfoBuf.size()))