@@ -328,6 +328,20 @@ following options to the compiler:
328328All the :ref: `same notes <notes-for-users >` apply to setting this macro as for
329329setting ``_LIBCPP_HARDENING_MODE ``.
330330
331+ Notes for vendors
332+ -----------------
333+
334+ Similarly to hardening modes, vendors can set the default assertion semantic by
335+ providing ``LIBCXX_ASSERTION_SEMANTIC `` as a configuration option, with the
336+ possible values of ``hardening_dependent ``, ``ignore ``, ``observe ``,
337+ ``quick_enforce `` and ``enforce ``. The default value is ``hardening_dependent ``
338+ which is a special value that instructs the library to select the semantic based
339+ on the hardening mode in effect (the mapping is described in
340+ :ref: `the main section on assertion semantics <assertion-semantics >`).
341+
342+ This option controls both the assertion semantic that the precompiled library is
343+ built with and the default assertion semantic that users will build with.
344+
331345.. _override-assertion-handler :
332346
333347Overriding the assertion failure handler
@@ -447,6 +461,13 @@ The first character of an ABI tag encodes the hardening mode:
447461- ``d `` -- [d]ebug mode;
448462- ``n `` -- [n]one mode.
449463
464+ The second character of an ABI tag encodes the assertion semantic:
465+
466+ - ``i `` -- [i]gnore semantic;
467+ - ``o `` -- [o]bserve semantic;
468+ - ``q `` -- [q]uick-enforce semantic;
469+ - ``e `` -- [e]nforce semantic.
470+
450471Hardened containers status
451472==========================
452473
0 commit comments