<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><span class="vcard"><a class="email" href="mailto:ldionne@apple.com" title="Louis Dionne <ldionne@apple.com>"> <span class="fn">Louis Dionne</span></a>
</span> changed
          <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - tuple::operator=(derived_from_tuple)"
   href="https://bugs.llvm.org/show_bug.cgi?id=17550">bug 17550</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Fixed By Commit(s)</td>
           <td>
                
           </td>
           <td>a0839b14df6de99fe29bee7cdfff182d50de665d
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Resolution</td>
           <td>---
           </td>
           <td>FIXED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>REOPENED
           </td>
           <td>RESOLVED
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - tuple::operator=(derived_from_tuple)"
   href="https://bugs.llvm.org/show_bug.cgi?id=17550#c12">Comment # 12</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - tuple::operator=(derived_from_tuple)"
   href="https://bugs.llvm.org/show_bug.cgi?id=17550">bug 17550</a>
              from <span class="vcard"><a class="email" href="mailto:ldionne@apple.com" title="Louis Dionne <ldionne@apple.com>"> <span class="fn">Louis Dionne</span></a>
</span></b>
        <pre>Fix merged:

commit a0839b14df6de99fe29bee7cdfff182d50de665d
Author: Louis Dionne <<a href="mailto:ldionne@apple.com">ldionne@apple.com</a>>
Date:   Tue Jul 31 11:56:20 2018 -0400

    [libc++] Fix tuple assignment from types derived from a tuple-like

    The implementation of tuple's constructors and assignment operators
    currently diverges from the way the Standard specifies them, which leads
    to subtle cases where the behavior is not as specified. In particular, a
    class derived from a tuple-like type (e.g. pair) can't be assigned to a
    tuple with corresponding members, when it should. This commit re-implements
    the assignment operators (BUT NOT THE CONSTRUCTORS) in a way much closer
    to the specification to get rid of this bug. Most of the tests have been
    stolen from Eric's patch <a href="https://reviews.llvm.org/D27606">https://reviews.llvm.org/D27606</a>.

    As a fly-by improvement, tests for noexcept correctness have been added
    to all overloads of operator=. We should tackle the same issue for the
    tuple constructors in a future patch - I'm just trying to make progress
    on fixing this long-standing bug.

    PR17550
    rdar://15837420

    Differential Revision: <a href="https://reviews.llvm.org/D50106">https://reviews.llvm.org/D50106</a></pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>