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

    <tr>
        <th>Summary</th>
        <td>
            Handle allocation failures gracefully in the libc
        </td>
    </tr>

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

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

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

<pre>
    A few libc functions allocate new memory via calls to allocation functions like `malloc`. In most places where memory is being allocated, the libc code just assumes that allocation succeeds. This tracker it audit all allocation sites and handle allocation failures gracefully if it is not already being handled. We also want to use custom `operator new` implementations to make allocation + object construction more C++ like.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNUsuOm0AQ_Bq4tIJgeBgOHHY3ipJ7pJyboYFZD4w1D1v--_Rge2PfIqF5qLqrq2oYzHjt32CiC2g1SJjCJr0ymwPU2kj0BBtjK63GXuGsECQDDrx5FHDxU5dWR4Kkydcd5UMGvzZYjfNw0ijJwWUhSw9C5WAgtc1f08ZEfIBf6KZGmpHgM3AzOhdW7vYL-ufJLkhJNLoMfi9M5i3KI1lQXBRGtZe-lCvPJLiNsPCi6cUEKh0swzOT0BS0Zn1TpGLizUQuSzhe74pvBGMGfyKLM3DBzcdcgiOQrNmsMQhzIove2BgjX0GtJ00rbR5vgXHDiscXIYl4BzN8kvQcwOa8DXu4nCIH98FoLIhBZyn1RdN07eHQVSId-3Lsyg5Tr7ym_uf_Ody-4k6D1f3i_ckl5VsifvA3K7-EIZNm5YvW58f27WRNFMhXxS9Djg91Jw6HdOnbtpJlhU3eNKUYUB6KCQdshWxF1dWdTDUOpF2f1GxExMG8JfX3VPUiF6IQeZE3dVtX2ZjnZdkVmHeFbKamSaqcVvaQRQmZsXNq-13NEGbHoFbOu38g_zNq3ojuk5w6o4yvZvE-EINfjO2fgHR30-9W_gJgExHX">