summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/Windows
diff options
context:
space:
mode:
authorAdrian McCarthy <amccarth@google.com>2017-10-09 17:50:01 +0000
committerAdrian McCarthy <amccarth@google.com>2017-10-09 17:50:01 +0000
commite6275c6edb1b764afe787e58f485a5b47bac1247 (patch)
treec03c7e07c0c8124565175896a298ef272883292f /llvm/lib/Support/Windows
parent7c6d1c3171a434d70323c3b5756b5be7a93d73ed (diff)
downloadbcm5719-llvm-e6275c6edb1b764afe787e58f485a5b47bac1247.tar.gz
bcm5719-llvm-e6275c6edb1b764afe787e58f485a5b47bac1247.zip
Fix after r315079
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. llvm-svn: 315222
Diffstat (limited to 'llvm/lib/Support/Windows')
-rw-r--r--llvm/lib/Support/Windows/Path.inc2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Support/Windows/Path.inc b/llvm/lib/Support/Windows/Path.inc
index fbed7f8b025..045734c3694 100644
--- a/llvm/lib/Support/Windows/Path.inc
+++ b/llvm/lib/Support/Windows/Path.inc
@@ -372,7 +372,7 @@ static std::error_code rename_internal(HANDLE FromHandle, const Twine &To,
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()))
OpenPOWER on IntegriCloud