[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