diff options
| author | Sam James <sam@gentoo.org> | 2024-01-02 02:16:28 +0000 |
|---|---|---|
| committer | Eli Schwartz <eschwartz93@gmail.com> | 2024-01-09 02:02:03 -0500 |
| commit | 90098473d51e6f059e775f1833b0a2ea91c8f8f9 (patch) | |
| tree | 0bd27016acb38506e402c633030cce57c97a5c56 /docs/markdown/Threads.md | |
| parent | c41fbf5076a79d5561ea0655d59131f4c34ef535 (diff) | |
| download | meson-90098473d51e6f059e775f1833b0a2ea91c8f8f9.tar.gz | |
compilers: cpp: wire up stdlib assertions
None of the options set here affect ABI and are intended for detecting constraint
violations.
For GCC, we simply need to set -D_GLIBCXX_ASSERTIONS.
For Clang, the situation is far more complicated:
* LLVM 18 uses a 'hardened mode' (https://libcxx.llvm.org/Hardening.html).
There are several levels of severity available here. I've chosen
_LIBCPP_HARDENING_MODE_EXTENSIVE as the strongest-but-one. The strongest
one (_DEBUG) doesn't affect ABI still but is reserved for stldebug.
* LLVM 15 uses a similar approach to libstdc++ called '_LIBCPP_ENABLE_ASSERTIONS'
Note that LLVM 17 while in development had fully deprecated _LIBCPP_ENABLE_ASSERTIONS
in favour of hardened, but changed its mind last-minute: https://discourse.llvm.org/t/rfc-hardening-in-libc/73925/4.
Signed-off-by: Sam James <sam@gentoo.org>
Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
Diffstat (limited to 'docs/markdown/Threads.md')
0 files changed, 0 insertions, 0 deletions
