<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="phabricator-transaction-content">
      <div class="differential-comment-core">
        <div class="phabricator-remarkup">
          <p>Here is the patch and pach description from <a
              href="http://llvm-reviews.chandlerc.com/D1887">D1887</a>:</p>
          <p>The approach establishes the following rules of
            invalidation/escape for the source and destination buffers
            passed to memcpy():<br>
            - source buffer is const-invalidated without
            const-pointer-escape the address of the top-level region.<br>
            - destination buffer is regularly invalidated without
            pointer-escape the address of the top-level region.</p>
          <p>This rules are derived from the rules suggested by Jordan
            in the days prior to r191342 when it was unable to associate
            processing behavior with the particular region/symbol (see <a
              href="http://llvm-reviews.chandlerc.com/D1486"
              class="phabricator-tag-view phabricator-tag-type-object"
              data-sigil="hovercard" data-meta="0_0"><span
                class="phabricator-tag-core
                phabricator-tag-color-object">D1486</span></a> for
            detailes). <br>
            Here are rules from Jordan:<br>
            > 1. Const-invalidate 'src', with pointer escape.<br>
            - invalidate metadata of indirect regions<br>
            - invalidate contents of indirect regions<br>
            - (unwanted) const-pointer-escape the address of the
            top-level region<br>
          </p>
          <p>> 2. Const-invalidate 'dst', with pointer escape.<br>
            - invalidate the metadata of indirect regions (that "in
            anticipation" thing that goes with our loss of knowledge)<br>
            - invalidate the contents of indirect regions (ditto)<br>
            - (unwanted) const-pointer-escape the address of the
            top-level region<br>
          </p>
          <p>> 3. Regular-invalidate 'dst' without pointer escape.<br>
            - (harmlessly repeated) invalidate the contents of indirect
            regions<br>
            - invalidate the contents of the top-level region</p>
        </div>
      </div>
    </div>
    <br>
    <pre class="moz-signature" cols="72">-- 
Anton</pre>
  </body>
</html>