<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><span class="vcard"><a class="email" href="mailto:rnk@google.com" title="Reid Kleckner <rnk@google.com>"> <span class="fn">Reid Kleckner</span></a>
</span> changed
          <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Cannot throw move-only object on Windows"
   href="https://bugs.llvm.org/show_bug.cgi?id=43680">bug 43680</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;">Resolution</td>
           <td>---
           </td>
           <td>FIXED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>NEW
           </td>
           <td>RESOLVED
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Cannot throw move-only object on Windows"
   href="https://bugs.llvm.org/show_bug.cgi?id=43680#c12">Comment # 12</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Cannot throw move-only object on Windows"
   href="https://bugs.llvm.org/show_bug.cgi?id=43680">bug 43680</a>
              from <span class="vcard"><a class="email" href="mailto:rnk@google.com" title="Reid Kleckner <rnk@google.com>"> <span class="fn">Reid Kleckner</span></a>
</span></b>
        <pre>812bdb3c13210759341e8a1b08b864a539ce9dc7

While I was working on the fix, it seems it's more complicated. It seems that
Sema checks that the throw operand is copyable or movable. If it's not one of
those two, it rejects it. So you cannot remove the move constructor.

We also already get this right if the std::string member (or any other
non-trivial member) is removed. Somehow, in that case, LookupCopyingConstructor
will return null if the object doesn't have any non-trivial members. Perhaps
LookupCopyingConstructor shouldn't return deleted constructors. I didn't audit
the callers, but someone could.

Separately, all the ABI-specific semantic analysis should probably be sunk
through the AST CXXABI interface.</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>