[llvm] Enable libc++ hardening mode for LLVM_ENABLE_ASSERTIONS (PR #130243)
Brian Cain via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 16 09:43:54 PST 2026
androm3da wrote:
> @var-const after re-reading the commit history I think I am starting to understand where the skew/confusion comes from.
>
> We intentionally have `LLVM_ENABLE_ASSERTIONS` imply `LIBCXX_HARDENING_MODE` here so that enabling assertions means that the libc++ built here gets the benefit of assertions like clang and the binutils would? While that makes some sense to me, it seems like it's at odds with the libstdc++ behavior here:
>
> ```
> # Enable assertions in libstdc++.
> add_compile_definitions(_GLIBCXX_ASSERTIONS)
> ```
>
> Or -- maybe it's not at odds at all? I guess the right thing to do for this PR is to _not_ replace the code relating to `LIBCXX_HARDENING_MODE` but instead _add_ `_LIBCPP_HARDENING_MODE_*` definitions to correspond with the `_GLIBCXX_*` ones? So that both effects would happen: clang-built-with-LLVM_ENABLE_LIBCXX gets the hardened libc++ but then also libc++ builds get built with `LIBCXX_HARDENING_MODE`.
>
> I'll whip up a change like that -- probably makes the most sense.
Ok, done.
@llvm/reviewers-libcxx let me know what you think - this seems like a valuable option to enable for those of us dogfooding libc++ in our toolchain builds.
https://github.com/llvm/llvm-project/pull/130243
More information about the llvm-commits
mailing list