<div dir="ltr">Committed in r315222.</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 9, 2017 at 10:43 AM, Adrian McCarthy <span dir="ltr"><<a href="mailto:amccarth@google.com" target="_blank">amccarth@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">That's my plan.</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 9, 2017 at 10:41 AM, Peter Collingbourne <span dir="ltr"><<a href="mailto:peter@pcc.me.uk" target="_blank">peter@pcc.me.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">HI Adrian,<div><br></div><div>If that fix works for you, would you mind checking it in?</div><div><br></div><div>Peter</div></div><div class="gmail_extra"><div><div class="m_-1025175572279445838h5"><br><div class="gmail_quote">On Mon, Oct 9, 2017 at 10:35 AM, Adrian McCarthy <span dir="ltr"><<a href="mailto:amccarth@google.com" target="_blank">amccarth@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I just came across this, too.  I'm testing this fix:<div><br></div><div>std::copy(ToWide.begin(), ToWide.end(), &RenameInfo.FileName[0]);<br></div><div><br></div><div>which makes the target argument a plain old pointer rather than an array of length 1.</div></div><div class="m_-1025175572279445838m_1251381303093028853HOEnZb"><div class="m_-1025175572279445838m_1251381303093028853h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 9, 2017 at 10:13 AM, George Rimar via Phabricator <span dir="ltr"><<a href="mailto:reviews@reviews.llvm.org" target="_blank">reviews@reviews.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">grimar added inline comments.<br>
<br>
<br>
================<br>
Comment at: llvm/trunk/lib/Support/Windows<wbr>/Path.inc:375<br>
<span>+  RenameInfo.FileNameLength = ToWide.size();<br>
+  std::copy(ToWide.begin(), ToWide.end(), RenameInfo.FileName);<br>
</span>+<br>
----------------<br>
This asserts under windows/debug.<br>
`RenameInfo.FileName` here is `WCHAR  FileName[1];` and std::copy checks it's size<br>
for overflow and fails:<br>
<br>
```<br>
        _Myiter& operator+=(difference_type _Off)<br>
                {       // increment by integer<br>
 #if _ITERATOR_DEBUG_LEVEL == 2<br>
                if (_Size < _Idx + _Off)<br>
                        {       // report error<br>
                        _DEBUG_ERROR("array iterator + offset out of range");<br>
                        _SCL_SECURE_OUT_OF_RANGE;<br>
                        }<br>
```<br>
<br>
```<br>
template<class _InIt,<br>
        class _OutTy,<br>
        size_t _OutSize> inline<br>
        _OutTy *copy(_InIt _First, _InIt _Last,<br>
                _OutTy (&_Dest)[_OutSize])<br>
        {       // copy [_First, _Last) to [_Dest, ...)<br>
```<br>
<br>
I would suggest to use memcpy instead.<br>
<div class="m_-1025175572279445838m_1251381303093028853m_9205084068439479413HOEnZb"><div class="m_-1025175572279445838m_1251381303093028853m_9205084068439479413h5"><br>
<br>
Repository:<br>
  rL LLVM<br>
<br>
<a href="https://reviews.llvm.org/D38570" rel="noreferrer" target="_blank">https://reviews.llvm.org/D3857<wbr>0</a><br>
<br>
<br>
<br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div></div></div><span class="m_-1025175572279445838HOEnZb"><font color="#888888">-- <br><div class="m_-1025175572279445838m_1251381303093028853gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">-- <div>Peter</div></div></div>
</font></span></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>