diff options
author | Louis Dionne <ldionne.2@gmail.com> | 2025-08-28 18:11:13 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-28 18:11:13 -0400 |
commit | 1213d4ece0e8f391dfca2bd4a184197004442e70 (patch) | |
tree | a1a953613c68a5a9ef1213cb247ed5f9f74c2fc0 /llvm/lib/CodeGen/CommandFlags.cpp | |
parent | 810f06ec3e87e924f9cf1a60f1440663f8f70d82 (diff) | |
download | llvm-1213d4ece0e8f391dfca2bd4a184197004442e70.zip llvm-1213d4ece0e8f391dfca2bd4a184197004442e70.tar.gz llvm-1213d4ece0e8f391dfca2bd4a184197004442e70.tar.bz2 |
[libc++] Stabilize transitive includes for C++23 (#134143)
Our mechanism to retain transitive includes for backwards compatibility
was previously not taking into account C++23: this means that users on
C++23 would not get any protection against the removal of transitive
includes. This was fine when C++23 was still not used widely and it
allowed us to make build time improvements for such "bleeding edge"
users.
It also didn't take into account the larger topic of providing a
backwards compatible set of declarations, which is the real goal
of this mechanism.
However, now that C++23 is used pretty widely, we should start providing
transitive includes backwards compatibility for users of that language mode
too. This patch documents that requirement and mentions backwards compatibility
of the set of declarations as well, meaning we may also add internal headers in
the `_LIBCPP_REMOVE_TRANSITIVE_INCLUDES` blocks going forward.
There are no actual changes to the code since we haven't removed
transitive includes since the last release. However, starting now,
we should guard any removal of transitive includes behind
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 23
instead of
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
Diffstat (limited to 'llvm/lib/CodeGen/CommandFlags.cpp')
0 files changed, 0 insertions, 0 deletions