<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><span class="vcard"><a class="email" href="mailto:richard-llvm@metafoo.co.uk" title="Richard Smith <richard-llvm@metafoo.co.uk>"> <span class="fn">Richard Smith</span></a>
</span> changed
          <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Clang rejects creation of struct with mutable member during constant evaluation"
   href="https://bugs.llvm.org/show_bug.cgi?id=48606">bug 48606</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>21e8bb83253e1a2f4b6fad9b53cafe8c530a38e2, 8153dee37272a73b1ed74ac1bc12422fac8ef033
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>NEW
           </td>
           <td>RESOLVED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Resolution</td>
           <td>---
           </td>
           <td>FIXED
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Clang rejects creation of struct with mutable member during constant evaluation"
   href="https://bugs.llvm.org/show_bug.cgi?id=48606#c1">Comment # 1</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Clang rejects creation of struct with mutable member during constant evaluation"
   href="https://bugs.llvm.org/show_bug.cgi?id=48606">bug 48606</a>
              from <span class="vcard"><a class="email" href="mailto:richard-llvm@metafoo.co.uk" title="Richard Smith <richard-llvm@metafoo.co.uk>"> <span class="fn">Richard Smith</span></a>
</span></b>
        <pre>Simpler testcase:

struct WithMutable {
    mutable int val_{0};
};

constexpr void createOnHeap() {
    WithMutable* var = new WithMutable{};
    var->val_ = 1;
    delete var;
}

Clang was not treating heap allocations as "lifetime started within the current
evaluation" for the purpose of determining whether 'mutable' prevents the
subobject from being used in the constant expression.

Fixed and backported to 12.0 release branch.</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>