[libcxx-commits] [libcxx] [libc++] Harmonize header inclusion for all sorts of subsetting (PR #202246)

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Mon Jun 8 07:55:14 PDT 2026


ldionne wrote:

And the issue we originally hit in https://github.com/llvm/llvm-project/pull/202001 would be resolved if the transitive include generator took into account the carve-outs. Basically, don't generate the list of transitive includes when carve-outs are active, or when the standard version is too old.

I also think that pinning down transitive includes for carved-out headers provides little actual value at the end of the day: users shouldn't really be relying on transitive includes for e.g. `<locale>` when they are using libc++ configured with `has-no-localization`.

So, my overall strawman proposal would be:
1. Enable the header tests (all of them except the transitive includes) in all standard modes and regardless of whether carve-outs are active.
2. For the transitive includes test, continue to only support non-carved out configurations (so, basically keep `UNSUPPORTED: no-localization, no-threads, etc`)
3. Do not generate a reference list of transitive includes with the generation script whenever carve outs are active.

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


More information about the libcxx-commits mailing list