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

    <tr>
        <th>Summary</th>
        <td>
            Regression: `std::deque` is no longer exception-safe when throwing in the constructor
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          var-const
      </td>
    </tr>
</table>

<pre>
    When initializing a deque with a pair of iterators, should one of the elements throw during copying, the already created elements won't be destroyed properly. It's a regression in LLVM 16, the prior version is correct -- see https://godbolt.org/z/459W4GMhj

I haven't investigated, but https://reviews.llvm.org/D132081 stood out as something that might be related. Cc'ing @ldionne and @philnik777.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxcUs1uqzoQfhqzGSUyJoFkwSJtxVWldnMXt2tjT7F7HQ_HHpKTPv2RaU8rVUIgNJ7P35_O2U8RsRf7O7F_qPTCjlJ_0WljKGauRrK3_sVhBB89ex38u48TaLD4a0G4enagYdY-Ab2CZ0yaKWWh7iE7WoIFilhG7BAw4BkjZ2CX6Ap2SQXL0HzzcSor5ZAOCbW9gUmoGe330pWiUB3DiGAxc6IbWpgTzZjCbQuPLFSXQUPCKWHOngpneHr67xnq9i_6nDwluGD6mGcwlBIahs0GMiI45jmL5iTUINQwkR0p8JbSJNTwLtSw2x9fdv88uzchH4Q8fbwfwekLfrDz8YKZ_VS4l0vHhX-AJrx4vOZtCJfzJ_JD3Sh5qCEzkQVaGHSGTGdkVxxipxnOfnKr-IShgG_h3gjVlbnYyWA9xYigoy2_s_Mh-v-7rttWtm_ssTnqCvu6PdT1sZFSVa43R90a3Gt7aA8HI0erdsdxdxhl23UH1b5WvldSNXJX17KVjVLbWqI5GqVGa01rm1bsJJ61D19SKp_zgn2r5L6tgh4x5LVZSgU_GqHu1keVpqW-LG3GZcqFvs_87UjFngP2_34FKZoTiFZmtsXF5rSWT7SyBBgJAsUJE-BvgzN7ipusXxGupbVr04pHPq75r61Oi2FK1ZJC_yNvz24Zt4bOQg2FzednMyd6Q8NCDavCLNSwivwTAAD__73tE20">