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

    <tr>
        <th>Summary</th>
        <td>
            catch exception in coroutine on windows produces segfault
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    I created pr with reproducing bug, its producing segfault (only on windows)

https://github.com/kelbon/kelcoro/pull/48

```cpp
dd::task<int> foo1(int i) try {
  abc c;
  for (;;) {
    if (i == 42)
      co_return 0;
    co_await std::suspend_always{};

    try {
      bar(c);
 break;
    } catch (std::exception& e) {
      // here `e` already dead, 
 std::cout << '"' << e.what() << '"';
    }
  }
  throw "";
} catch (...) {
  co_return 0;
}
```

Notes:
memory where exception allocated is dead when catch block starts.

Its important that `break` in the try block, even if it is switch `break`, not break for `for` loop

 Access violation reading location 0xFFFFFFFFFFFFFFFF.

corotuine:

<img width="682" height="196" alt="Image" src="https://github.com/user-attachments/assets/407cee74-eef3-41af-8c5f-a31f9a888967" />
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8VN1uozoQfhrnZpQIbCBwwUXabqTenFdYGTOATx0b2UPZvP2RMU26e6S1ImFP5uebbz5bhqBHi9iy8oWVbwe50OR8-4Gmc_bQuf7evoPyKAl7mD2smibwOHvXL0rbEbplZPwVNAV4GgOOg1wMAeO1s-YOzsKqbe_WwHjDsgvLLhPRHJi4MH5l_DpqmpbupNyN8WuqnjbKecf4dV6MYfxa1CmYVVn6qXlm2aXvYyJxIRk-mHjVlpj4AYNzOeO1tgSa8QbI34GdX1h2AZCdAsVEOgzOR6TxKF6i55cXgB7iPxqYeGPiDQqe8MO2lPvpkRZvIftKtRnlKjVBoB1VWMKMtv8pzSrvIeY-vyX_PeQ7sLg66RmvVSyV0nYe5cezBDu_gZKkpojtUQZ_KZxJR-IqwN_bAEg0w4QegVUZsioDaTzK_g49yj4OMTo_0im3EDDxysQrMH5mnDN-_jLgaZ0kRc5imT-cfgO67b6-NHm3wubFdwa-t3I6nb7D_h-9Kc1j9onAfxzhpqPscsOb83dYtyYfdIA0xqlNwDpsvUYPu5ftjFMfEEh6CqeU8Z0C6NvsPElLQJOkyFiaQZWBtkATbkPbgiNz-Ik2akVTrBFWvXX0DIo-1lEaZNJblQ3Ox3zGuXnXwkUpDAE-tTNygx7nEy_U1kA0ZL-uf6wddLwntGiLiYr4E6_6NsKqe5qifDmv6kg8TKjHiZIpb6pokmY_v9_kiNESvEqWv9zTJaA_SiKpphtaCoxfZQi4bYrsrBDPxRFxEMcil8OxVuVwlCIfGlnXdVNFuWy6FD8OfSv6RjTygG1-LktRFKLkh6mtiq6qVF4PWMo-G-qzKGqhirppsGnqJjvolme8zOq8ynPR5PzEsSsbzFHWNe-Rl6zI8Ca1ORnzeTs5Px50CAu2eSmaojkY2aEJX8-fb6PXsVvGwIrM6EDhGUeaDLZJNk91aQuR-4W0xW_v3P4aYng8hofFm_YvbMY6--c4e_cvKmL8uoGNhO54P1v-XwAAAP__YcGwOQ">