<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/56783>56783</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            std::__transaction leads to bad code generation and debug info when exceptions are disabled
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc++
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ldionne
      </td>
    </tr>
</table>

<pre>
    When exceptions are disabled, it seems like the compiler isn't able to see that the cleanup phase of `std::__transaction` is never executed, which leads to additional codegen and debug information.

See the Chromium interactions on https://reviews.llvm.org/D128146 for details.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx1Uc1u3CAQfhp8GdXCeG0vBx-SrPoCOeQYYZisaTFYDN6kb9-xt2oUqZVGYJjP388wJfdrfJkxAn5YXItPkcBkBOfJTAGdUE_gCxDiQhD8T4QyI9i0rD5gBk9RqKHAjoWSdhwDTLmjApq4rbDOhhDSG4heUnGifeB6fS3ZRDJ21-QGU0HEG3PiB9qt3KXfZ29nYB5HO71xzu94E9iCwyv7NtGBw2m7go9vKS9m79dCXoR8uK_PeDf9NOe0-G1hYMF8FyZIEeZSVtpdqe9cGW8e36kO4bbUKV_56tKoc3PqgflZqxgfqK5wbPpOS9W2fVO5sXW61aYqvgQc_53yM8dk3BEAOAFbOZpfg3Dy_z9KteUwfnV99WXeppofhg-79T_btzWnH2gLHz3RhsQfXT-c22oecRhwsoNusGscbw222p71SfcDdhKHKpgJA42iexRKBT9ZoR6PUqK7VH5UUik58Gy6k1ay1u3Z6k5aJbUZWqXFSeLCw_o7yiqPhycOSdwMnsrnnCtD5K8R8dBjfrOVOfEfjvNHrA774-H9Nz2l5lI">