# Copyright 2019 Damian Jarek
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE.txt or copy at
# https://www.bfgroup.xyz/b2/LICENSE.txt)

import feature ;

#| tag::addr-doc[]

[[b2.builtin.features.address-sanitizer]]`address-sanitizer`::
*Allowed values:* `on`, `norecover`.
+
Enables address sanitizer. Value `norecover` disables recovery for the
sanitizer. The feature is optional, thus no sanitizer is enabled by default.

|# # end::addr-doc[]

feature.feature address-sanitizer
    : on norecover
    : propagated optional ;

#| tag::leak-doc[]

[[b2.builtin.features.leak-sanitizer]]`leak-sanitizer`::
*Allowed values:* `on`, `norecover`.
+
Enables leak sanitizer. Value `norecover` disables recovery for the
sanitizer. The feature is optional, thus no sanitizer is enabled by default.

|# # end::leak-doc[]

feature.feature leak-sanitizer
    : on norecover
    : propagated optional ;

#| tag::thread-doc[]

[[b2.builtin.features.thread-sanitizer]]`thread-sanitizer`::
*Allowed values:* `on`, `norecover`.
+
Enables thread sanitizer. Value `norecover` disables recovery for the
sanitizer. The feature is optional, thus no sanitizer is enabled by default.

|# # end::thread-doc[]

feature.feature thread-sanitizer
    : on norecover
    : propagated optional ;

#| tag::undef-doc[]

[[b2.builtin.features.undefined-sanitizer]]`undefined-sanitizer`::
*Allowed values:* `on`, `norecover`.
+
Enables undefined behavior sanitizer. Value `norecover` disables recovery for
the sanitizer. The feature is optional, thus no sanitizer is enabled by
default.

|# # end::undef-doc[]

feature.feature undefined-sanitizer
    : on norecover
    : propagated optional ;
