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

    <tr>
        <th>Summary</th>
        <td>
            [libc] annex K "Runtime-constraint violations" support
        </td>
    </tr>

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

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

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

<pre>
    > K.3.1.4 Runtime-constraint violations

Talks about having a callback function invocation when various constraints are violated.

> K.3.6 General utilities <stdlib.h>

Talks about the signature of a `constraint_handler_t` as provided by stdlib.h.

> K.3.6.1.1 The set_constraint_handler_s function

Talks about a setter for the callback.

> K.3.6.1.2 The abort_handler_s function
> K.3.6.1.3 The ignore_handler_s function

Talk about two predefined callbacks that can be set to handle the two most common cases.

We're adding `ctime_s` support in #110676, but without these callback invocations. `ctime_s` (and any annex k functions) need to be revisited when `set_constraint_handler_s` support is added.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMlDFv4z4MxT-NvBA1LCl2ksFD_23zH7odCtwY0BIT66pIgSi7129_sJs07aEpbkkW8b0fH0kjs9sHolbU_4n6vsAh9zG1wZlnS4yDD44SF120r63QD_BY6lKWC_gxhOwOdGNi4JzQhQyjix6zi4FFdS-q27ffJ_TPDNjFIUOPowt7QDDofYfmGXZDMFMJuDBGM1fDS08BRkwuDgwXfQZMdDIhW370OIM18D8FSuhhyM677IhB6DvO1ruu7IV-uEaWe4IpCMxDIog7QBBNdTHf9hisp7TNoqkAGY4pjs6She4VzvpfM5WylPA06VPefqHI7yFcg8OpNFOCXUwz6Tm-q4ZqNsQupm98PrzX83u3DzHRP4CdQ3uJcExkaecC2XcqhtxjBoMBurlryBHeRGf6qewQOYOJh0MMYJCJP7Xyk4RaJgK0dtqXaRLTsm15Cp-H4zGmDC6AUFrKqlk2Qt1BN2R4cbk_jZMvMX1YLi7_UhNqhcEChlfAEOg3XHaShVpDILITf0eQaHTsMtm3DRVNdW2inzB5aoNsWdhW27VeY0GtXGq50FKvmqJvrcFdZVGTXVTNiuTSyB0u11h3Wq06rAvXqkotpJRKLqv1oinNalVX6xUZpTWqeicWFR3Q-dL78VDGtC8c80CtlPW6WhYeO_I8X7hS3nVGKDXdemqn9zfdsGexqLzjzBeF7LKfvwpzQX1_iucRhFLfH79S5-aLIfm2z_nIQt8KtRFqs3e5H7rSxINQm8ns9HdzTPEXmSzUZmZnoTYn_LFVfwIAAP__wbCHPQ">