[libcxx-commits] [libcxx] [libc++] Do not define std::nothrow with VCRuntime ABI (PR #217694)

A. Jiang via libcxx-commits libcxx-commits at lists.llvm.org
Fri Aug 21 04:41:21 PDT 2026


frederick-vs-ja wrote:

> LLVM clang-cl CI lanes explicitely put` libc++.lib` on the link via [-llibc++](https://github.com/llvm/llvm-project/blob/8d9145680dbc6e56c801d324745043b098741f8d/libcxx/test/configs/llvm-libc%2B%2B-static-clangcl.cfg.in#L22-L24).

Oh, I see! Thanks for explanation.

> What happens is that with manual libc++ link flags, `std::nothrow` is extracted from `libc++.lib(new_helpers.obj)` and later`std::__throw_bad_alloc` is resolved from there as well, leading to `msvcrt.lib(std_nothrow.obj)` not participating even if it contains the `std::nothrow` as well.

However, should we treat using such "manual libc++ link flags" as a correct building way? Is this way documented as valid?

Should we do the other way around? I.e. documenting this as unsupported.

https://github.com/llvm/llvm-project/pull/217694


More information about the libcxx-commits mailing list