Roll libc++ from b16984ce99c7 to 944eeec7c303 (199 revisions)

This change includes a patch to add `-Wno-microsoft-cast` as
a temporary workaround to windows bot failures.

This change causes a large increase in binary size that is likely
due to `_LIBCPP_ABI_VECTOR_LAYOUT_SIZE_BASED`. However, we cannot
disable that feature as a separate PR introduced a change that
requires complete types to call `empty()` on vectors, which breaks
our builds. It is also possible that new PGO profiles will reduce
the binary size, so we should land this to compare canary binary sizes
in a couple days. If the profiles don't change anything we can revert
this roll. See the linked bug crbug.com/534049474 for more discussion
around the binary size increase.

https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/b16984ce99c7..944eeec7c303

2026-07-14 liza@chromium.org [libc++][pstl] Add missing #pragma GCC system_header to libdispatch.h (#209579)
2026-07-14 fpiovezan@apple.com Revert "[libc++][NFC] Inline std::function members into the class body" (#209555)
2026-07-14 hghristov.rmm@gmail.com [libc++][ranges][NFC] Format `view.interface.pass.cpp` (#209391)
2026-07-14 ldionne.2@gmail.com [libc++][NFC] Remove unused <cassert> from algorithm benchmarks (#209492)
2026-07-14 douglas.yung@sony.com Bump version to 24.0.0git (#209473)
2026-07-14 nikolasklauser@berlin.de [libc++][NFC] Inline std::function members into the class body (#209461)
2026-07-14 open-source@inquisitivecrystal.addy.io [libc++] Mark LWG3403 as complete (#208866)
2026-07-14 ldionne.2@gmail.com [libc++] Improve diagnostic for libcxxabi missing from the runtimes (#208274)
2026-07-14 ldionne.2@gmail.com [libc++] Fix usage of constructive interference when we meant destructive (#208804)
2026-07-14 phosek@google.com [libcxx][libcxxabi] Remove OVERRIDABLE_FUNCTION macro (#209323)
2026-07-14 phosek@google.com [libcxx] Rename __libcpp_launder to __launder_function_pointer (#209320)
2026-07-13 jonathan_roelofs@apple.com [libcxx][test] Fingerprint the compiler when memoizing results (#208311)
2026-07-13 aidengrossman@google.com [libcxx] Avoid including deprecated ClangTidyModuleRegistry.h (#208945)
2026-07-13 emmettzhang2020@outlook.com [libc++][unique_ptr] Implement LWG 4144: Disallow unique_ptr<T&, D> (#209018)
2026-07-13 liza@chromium.org [libc++] Add missing include to thread.h (#208740)
2026-07-13 de34@live.cn [libc++] Backport P3029R1 Better `mdspan`'s CTAD to C++20/23 (#208132)
2026-07-13 Jake.egan@ibm.com [libc++] Fix filesystem::remove_all bug with read-only nested directory (#197104)
2026-07-13 nikolasklauser@berlin.de [libc++][NFC] Remove unused includes from <__iterator/segmented_iterator.h> (#209105)
2026-07-13 nikolasklauser@berlin.de [libc++] Refactor the string benchmarks (#185397)
2026-07-11 mike.kazakov@gmail.com [libc++][pstl] Default implementation of parallel std::reverse_copy (#208085)
2026-07-11 aidengrossman@google.com [libcxx] Bump runner set (#208929)
2026-07-11 phosek@google.com [libcxx][NFC] Move release notes for MSVC's implementation of exception_ptr (#208883)
2026-07-11 phosek@google.com [libc++] Replace the of use custom sections for detecting overriden functions (#208330)
2026-07-10 aidengrossman@google.com [libcxx] Bump GitHub runner version (#208823)
2026-07-10 yronglin777@gmail.com [libc++] Bump base image version to most recent (#208776)
2026-07-10 ldionne.2@gmail.com [libc++] Merge atomic-wait contention tables into a single table (#208493)
2026-07-10 stl@nuwen.net [libc++] Add MSVC's implementation of exception_ptr for Windows (#94977)
2026-07-10 yronglin777@gmail.com [libc++] Update the base image hash to get most recent clang-23 (#208766)
2026-07-10 ldionne.2@gmail.com [libc++] Add benchmarks for std::is_heap and std::is_heap_until (#207045)
2026-07-10 nikolasklauser@berlin.de [libc++] Fix shared_ptr not accepting allocators with explicit conversions (#208439)
2026-07-10 ldionne.2@gmail.com [libc++] Rename the macro for the LLVM 18 ABI tag used in ranges (#208464)
2026-07-10 ldionne.2@gmail.com [libc++] Remove diagnostic about _LIBCPP_ABI_NO_ITERATOR_BASES (#208460)
2026-07-09 hehiralbi@gmail.com [libc++] Enable missing allocator constructors in C++11 (#204845)
2026-07-09 nikolasklauser@berlin.de [libc++] Remove benchmark::DoNotOptimize from custom predicates in benchmarks (#208412)
2026-07-09 ldionne.2@gmail.com [libc++] Mark LWG4276 as complete (#208273)
2026-07-09 ldionne.2@gmail.com [libc++] Add tests for LWG3949 and mark it as done (#208272)
2026-07-09 ldionne.2@gmail.com [libc++] Fix assign_range test for forward_list (#208283)
2026-07-09 ldionne.2@gmail.com [libc++][NFC] Rename forward_list constructor tests (#208301)
2026-07-09 aokblast@FreeBSD.org [libc++] Update the label for FreeBSD in CI to version 15.1 (#205417)
2026-07-09 ldionne.2@gmail.com [libc++] Add missing <string> include (#208281)
2026-07-09 ldionne.2@gmail.com [libc++][NFC] Fix comment about size-based vector (#208463)
2026-07-09 aviipatel06@gmail.com [libc++] Implement LWG4472: std::atomic_ref<const T> can be constructed from temporaries (#208131)
2026-07-09 github.snugness349@passinbox.com [libc++][ranges] Applied [[nodiscard]] to `lazy_split` (#208036)
2026-07-09 nikolasklauser@berlin.de [libc++] Remove some unnecessary functions from __vector_layout (#207152)
2026-07-08 mike.kazakov@gmail.com [libc++][pstl] Default implementation of parallel std::find_first_of (#206328)
2026-07-08 michaelrj@google.com [libcxx][NFC] Move guards outside namespace (#208089)
2026-07-08 thoughtsoflifeandlight17@gmail.com [libc++] Implement LWG3918: copy elision in `std::uninitialized_move/_n` (#207692)
2026-07-08 emmettzhang2020@outlook.com [libc++][chrono] Implement LWG 4481: Disallow `chrono::duration<const T, P>` (#207558)
2026-07-08 phosek@google.com Revert "[libc++] Replace the of use custom sections for detecting overriden functions" (#208157)
2026-07-08 phosek@google.com [libc++] Replace the of use custom sections for detecting overriden functions (#175896)
2026-07-07 hghristov.rmm@gmail.com [libc++][ranges] Applied `[[nodiscard]]` to `zip_view` (#207667)
2026-07-07 anthonycalandra@geotab.com [libc++][ThreadSafety] Add thread safety annotations for variadic std::scoped_lock (#204462)
2026-07-07 benjamin.luke@sony.com [clang][X86] Emit AVX level mismatch psABI warnings on function definitions (#199091)
2026-07-07 c8ef@outlook.com [libc++] Mark LWG3585 as resolved (#207717)
2026-07-07 github.snugness349@passinbox.com [libc++][ranges] Applied [[nodiscard]] to `join_view` (#206838)
2026-07-07 github.snugness349@passinbox.com [libc++][ranges] Applied [[nodiscard]] to `adjacent_transform_view` (#205900)
2026-07-06 hghristov.rmm@gmail.com [libc++][ranges] Applied `[[nodiscard]]` to `views::zip_transform` (#207120)
2026-07-06 aliaksei.urbanski@gmail.com [NFC] Fix "is is" typos (#206288)
2026-07-06 github.snugness349@passinbox.com [libc++][ranges] Applied [[nodiscard]] to `elements_view` (#206589)
2026-07-06 ldionne.2@gmail.com [libc++] Make atomic contention tables constinit (#207456)
2026-07-06 nikolasklauser@berlin.de [libc++] Use _LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23 in <future> (#207668)
2026-07-06 nikolasklauser@berlin.de [libc++] Split the multidimensional algorithms out of uninitialized_algorithms.h (#207447)
2026-07-06 vinay_deshmukh@outlook.com [libc++] Make `<set>` `std::multiset` constexpr as part of P3372R3 (#206257)
2026-07-05 nikolasklauser@berlin.de [libc++] Add an ABI flag to optimize mersenne_twister_engine (#206423)
2026-07-05 nikolasklauser@berlin.de [libc++] Use std::to_chars to format thread::id and canonicalize the representation across platforms (#181624)
2026-07-05 github.snugness349@passinbox.com [libc++] Mark LWG4098 as resolved (#206295)
2026-07-05 c8ef@outlook.com [libc++] Mark LWG3454 as resolved (#207487)
2026-07-03 ldionne.2@gmail.com [libc++] Fix SPEC benchmarks not producing a .lnt result file (#207450)
2026-07-03 hghristov.rmm@gmail.com [libc++][ranges] Enable CPO compile tests (#207123)
2026-07-03 c8ef@outlook.com [libc++] Add assert test for string assign/append (#207164)
2026-07-03 nikolasklauser@berlin.de [libc++] Base string's alignment on __STDCPP_DEFAULT_NEW_ALIGNMENT__ (#171785)
2026-07-03 nikolasklauser@berlin.de [libc++] Use _LIBCPP_NO_UNIQUE_ADDRESS for the new vector layout (#207149)
2026-07-02 ldionne.2@gmail.com [libc++][NFC] Move the lower_bound/upper_bound benchmark to the sorting directory (#207215)
2026-07-02 roche@httrack.com [libc++][test] Cover byteswap _BitInt padding on every ABI with width 72 (#206360)
2026-07-02 nikolasklauser@berlin.de [libc++] Remove _LIBCPP_COMPRESSED_PAIR from packaged_task (#200642)
2026-07-02 nikolasklauser@berlin.de Reapply "[libc++] Optimize fstream::read" (#206453)
2026-07-02 nikolasklauser@berlin.de Revert "[libc++] Move threading and random device config into <__configuration/platform.h>" (#207134)
2026-07-01 vinay_deshmukh@outlook.com [NFC][libc++] Fix formatting for `<set>` tests (#207080)
2026-07-01 nikolasklauser@berlin.de [libc++] Remove projection from __lower_bound_onesided (#206676)
2026-07-01 cjdb@google.com [libc++] Add a size-based representation for `vector` in the unstable ABI (#155330)
2026-07-01 nikolasklauser@berlin.de [libc++] Move threading and random device config into <__configuration/platform.h> (#206262)
2026-07-01 george.burgess.iv@gmail.com [libc++] Add Android assertion handler (#198831)
2026-07-01 aokblast@FreeBSD.org [libcxx] Enable std module test on FreeBSD (#206269)
2026-07-01 vonosmas@gmail.com [libc++] Assume that <wchar.h> in llvm-libc has const-overloads. (#206805)
2026-07-01 de34@live.cn [libc++] Fix behavior for `get_temporary_buffer` with non-positive size (#206871)
2026-07-01 nikolasklauser@berlin.de [libc++] Don't make libc++ headers system headers in the modulemap (#205509)
2026-07-01 nikolasklauser@berlin.de [libc++] Don't #define __unused with glibc in system_reserved_names.gen.py (#206971)
2026-07-01 c8ef@outlook.com [libc++] Implement LWG3662 basic_string::append/assign(NTBS, pos, n) suboptimal (#206320)
2026-07-01 Matthew.Arsenault@amd.com [runtimes][NFC] Re-indent shared library blocks (#205523)
2026-07-01 wtranviet@proton.me [libc++] Resolve LWG4366: Heterogeneous comparison of `expected` may be ill-formed  (#185342)
2026-06-30 xavier.roche@algolia.com [libc++][test][NFC] Remove implementation-detail noise from _BitInt test comments (#206666)
2026-06-30 vinay_deshmukh@outlook.com [libc++] Make `<set>` `std::set` constexpr as part of P3372R3 (#167241)
2026-06-29 phosek@google.com [CMake] Warn when the version of CMake is older than 3.31.0 (#204203)
2026-06-29 ikudrin@accesssoftek.com [libc++] Do not remove a root-name followed by ".." in `path::lexically_normal()` (#201261)
2026-06-29 vvereschaka@accesssoftek.com [libc++][test] XFAIL `text/text_encoding/environment.pass.cpp` test on Armv7/Linux Ubuntu targets. (#206188)
2026-06-29 de34@live.cn [libc++] Implement LWG4125: `move_iterator`'s default constructor should be constrained (#206427)
2026-06-29 paulxicao7@gmail.com [libc++] LWG4557: Remove `constexpr` from `owner_less` and `owner_before` (#191534)
2026-06-29 de34@live.cn [libc++][docs] Remove superfluous entries for P1286R2 and P2085R0 (#166116)
2026-06-29 Matthew.Arsenault@amd.com [runtimes] Don't create shared library targets when unsupported (#205517)
2026-06-29 nikolasklauser@berlin.de [libc++] Consistently use version guards outside namespace macros (#181136)
2026-06-29 c8ef@outlook.com [libc++] Mark LWG4084 as resolved (#206224)
2026-06-29 github.snugness349@passinbox.com [libc++][ranges] Applied [[nodiscard]] to `adjacent_view` (#205206)
2026-06-28 xavier.roche@algolia.com [libc++][test] Drop _BitInt(96) byteswap padding check on 32-bit x86 (#205295)
2026-06-27 aokblast@FreeBSD.org [libc++][FreeBSD] Fix localization test on FreeBSD (#186066)
2026-06-27 nikolasklauser@berlin.de [libc++][NFC] Mark random_device::__padding_ as [[maybe_unused]] (#206248)
2026-06-27 c8ef@outlook.com [libc++] Mark LWG3498 as resolved (#206078)
2026-06-27 nikolasklauser@berlin.de [libc++] Fix shared_ptr rebinding allocators to incomplete types (#206145)
2026-06-26 de34@live.cn [libc++] Specify `encoding='utf-8'` in `conformance` script (#189534)
2026-06-26 ldionne.2@gmail.com [libc++] Fix instantiation of incomplete type when evaluating tuple comparisons (#204679)
2026-06-26 nikolasklauser@berlin.de [libc++] Split the PSTL configuration macros into a separate header (#205531)
2026-06-26 hghristov.rmm@gmail.com [libc++][ranges] Apply `[[nodiscard]]` to `istream_view` (#205154)
2026-06-26 nikolasklauser@berlin.de [libc++] Move compiler-specific configuration into <__configuration/compiler.h> (#205590)
2026-06-26 nikolasklauser@berlin.de [libc++] Remove _BitScanForward{,64} (#205551)
2026-06-26 nikolasklauser@berlin.de [libc++] Move _LIBCPP_FOPEN_CLOEXEC_MODE to <fstream> (#205537)
2026-06-26 nikolasklauser@berlin.de [libc++][NFC] Simplify the implementation of aligned_union (#185449)
2026-06-26 wtranviet@proton.me [libc++] Cast 0 to `__locale_t` in `text_encoding.cpp` (#205882)
2026-06-26 jdoerfert.llvm@gmail.com Revert "[Instrumentor] Add runtime examples: [1/N] A flop counter" (#205960)
2026-06-26 jdoerfert.llvm@gmail.com [Instrumentor] Add runtime examples: [1/N] A flop counter (#205698)
2026-06-25 de34@live.cn Revert "[libc++]  P3798R1: The unexpected in std::expected (#204826)" (#205597)
2026-06-25 hghristov.rmm@gmail.com [libc++][ranges] Applied `[[nodiscard]]` to `split_view` (#205161)
2026-06-25 hghristov.rmm@gmail.com [libc++][ranges] Applied `[[nodiscard]]` to `take_while_view` (#205172)
2026-06-25 nikolasklauser@berlin.de [libc++] Fix move-only types in std::make_shared (#205819)
2026-06-25 ldionne.2@gmail.com [libc++] Add missing ABI changelog entry for #173283 (#205887)
2026-06-25 nikolasklauser@berlin.de [libc++] Remove __broadcast simd function (#205559)
2026-06-25 de34@live.cn [libc++] Add missing attribute usages to `<__memory/shared_ptr.h>` (#205776)
2026-06-25 nikolasklauser@berlin.de [libc++] Remove _LIBCPP_COMPRESSED_PAIR/TRIPLE from shared_ptr (#200401)
2026-06-25 wtranviet@proton.me [libc++] Add implementations of `__get_locale_encoding(...)` to Fuschia and LLVM-Libc (#205716)
2026-06-25 nikolasklauser@berlin.de [libc++] Enable clang-tidy in the CI again (#195047)
2026-06-24 wtranviet@proton.me [libc++] Implement P1885R12: `<text_encoding>` (#141312)
2026-06-24 scott.linder@amd.com [docs] Create utils/docs (#203962)
2026-06-24 github.snugness349@passinbox.com [libc++][ranges] Applied [[nodiscard]] to `transform_view` (#204014)
2026-06-24 de34@live.cn [libc++] Apply `[[nodiscard]]` to `wstring_convert`, `wbuffer_convert` (#205486)
2026-06-24 nikolasklauser@berlin.de [libc++][C++03] Cherry-pick #106832 (#205547)
2026-06-24 nikolasklauser@berlin.de [libc++] Remove <features.h> include from <__config> (#205549)
2026-06-24 nikolasklauser@berlin.de [libc++] Move <features.h> include to <__configuration/platform.h> (#205548)
2026-06-24 nikolasklauser@berlin.de [libc++] Move _LIBCPP_CONCAT{,3} to <__configuration/utility.h> (#205533)
2026-06-24 nikolasklauser@berlin.de [libc++] Move constexpr/explicit macros to <__configuration/language.h> (#205535)
2026-06-24 hghristov.rmm@gmail.com [libc++][ranges] Applied `[[nodiscard]]` to `reverse_view` (#205186)
2026-06-23 hghristov.rmm@gmail.com [libc++][ranges] Backport P2711R1: Making multi-param constructors of views explicit (#190513)
2026-06-23 godexsoft@gmail.com [libc++]  P3798R1: The unexpected in std::expected (#204826)
2026-06-22 hghristov.rmm@gmail.com [libc++][random] Applied `[[nodiscard]]` to `<random>` (#204970)
2026-06-22 roche@httrack.com [libc++] std::abs support for _BitInt(N) and __int128 (#196532)
2026-06-22 yronglin777@gmail.com [libc++] Implement P4206R0 Revert string support in std::constant_wrapper (#203338)
2026-06-22 ldionne.2@gmail.com [libc++][lnt] Allow retaining build artifacts in run-benchbot (#205146)
2026-06-20 de34@live.cn [libc++][test] Rewrite tests for `std::byte` (#204116)
2026-06-19 hghristov.rmm@gmail.com [libc++][byte] Apply [[nodiscard]] to std::byte (#204674)
2026-06-19 aokblast@FreeBSD.org [libcxx] Make std::pair pretty-printer ABI-independent (#201768)
2026-06-19 nikolasklauser@berlin.de [libc++] Default the allocator argument for most string constructors (#169901)
2026-06-19 tikuta@google.com [libc++] Add a missing include in string.h (#135134)
2026-06-19 vinay_deshmukh@outlook.com [libc++] Make std::multimap constexpr as part of P3372R3 (#161901)
2026-06-19 xavier.roche@algolia.com [libc++][test] Migrate _BitInt probe to __BITINT_MAXWIDTH__ and fix latent test bugs (#203876)
2026-06-18 eiytoq@outlook.com [libc++][mdspan][test] Correct `mapping::operator()` constraint tests (#201061)
2026-06-18 hui.xie1990@gmail.com [libc++] Add missing constant_wrapper in the std module (#202038)
2026-06-18 neuronspectrelin@gmail.com [libc++] Restore release note dropped during rebase of #196495 (#204435)
2026-06-18 ldionne.2@gmail.com [libc++] Add Github issue links in Brno-voted papers (#204579)
2026-06-18 ldionne.2@gmail.com [libc++] Use public os_sync API instead of private __ulock on newer Apple platforms (#202519)
2026-06-17 ldionne.2@gmail.com [libc++] Create issues in batch in libcxx/utils/conformance (#204428)
2026-06-17 ldionne.2@gmail.com [libc++] Document post-WG21-meeting conformance update procedure (#204357)
2026-06-17 ldionne.2@gmail.com [libc++] Add WG21 issues and papers voted in Brno (#204191)
2026-06-17 prabhukr@google.com [libcxx] Configuration option to lower deque block size (#198348)
2026-06-16 hghristov.rmm@gmail.com [libc++][numeric] Applied `[[nodiscard]]` to `<numeric>` (#202770)
2026-06-16 ych@meta.com [libc++] Strengthen optional value constructor noexcept (#202765)
2026-06-16 hima130602@gmail.com [AIX][libc++] Fix sized_delete.pass.cpp for AIX by adding -fsized-deallocation flag (#199366)
2026-06-15 ldionne.2@gmail.com [libc++] Enable header tests under all configurations (#202543)
2026-06-15 10316270+k3DW@users.noreply.github.com [libc++] Make the body of println(FILE*) dependent on the template parameter to avoid template instantiation (#200996)
2026-06-14 wtranviet@proton.me [libc++][NFC] Simplify `optional<T>` and `optional<T&>` a bit (#203665)
2026-06-13 aidengrossman@google.com [libcxx] Do not mark mkstemp tests xfail for libc (#203681)
2026-06-13 de34@live.cn [libc++] LWG3767: `codecvt<charN_t, char8_t, mbstate_t>` incorrectly added to locale (#201749)
2026-06-13 wtranviet@proton.me [libc++] Fix bug where `optional<T&>` couldn't be constructed from `transform()` (#203462)
2026-06-13 de34@live.cn [libc++] P3369R0: constexpr for `uninitialized_default_construct` (#200163)
2026-06-11 wtranviet@proton.me [libc++] Reimplement `optional<T&>` as a partial specialization (#201983)
2026-06-11 ldionne.2@gmail.com [libc++] Hoist <compare> outside the threads guard in <thread> (#202535)
2026-06-10 nikolasklauser@berlin.de [libc++] Remove _Lazy (#202303)
2026-06-10 nikolasklauser@berlin.de [libc++] Make __is_less_than_compatable a variable template (#202525)
2026-06-10 ldionne.2@gmail.com [libc++] Fill in Apple availability for LLVM 21 (#202347)
2026-06-10 nikolasklauser@berlin.de [libc++] Assume that __array_rank is provided by the compiler (#202511)
2026-06-10 nikita.taranov@clickhouse.com [libc++] Fix exception safety of `__hash_table::__copy_construct` (avoid memory leak) (#201452)
2026-06-09 neuronspectrelin@gmail.com [libcxx] Enrich message for std::bad_variant_access exception (#196495)
2026-06-09 hghristov.rmm@gmail.com [libc++][vector] Test `[[nodiscard]]` applied to `vector::iterator` (#202262)
2026-06-09 hghristov.rmm@gmail.com [libc++][vector] Apply `[[nodiscard]]` to `vector<bool>::iterator` (#202265)
2026-06-09 de34@live.cn [libc++][format] Propagate `m` when formatting range elements (#94562)
2026-06-09 nikolasklauser@berlin.de [libc++] Simplify some meta programming in <variant> (#201538)
2026-06-09 nikolasklauser@berlin.de [libc++] Make __can_dynamic_cast a variable template (#202297)
2026-06-09 79003240+Himadhith@users.noreply.github.com [AIX][libc++] Mark offset_range test UNSUPPORTED on 32-bit AIX due to 32-bit off_t (#200861)
2026-06-09 hehiralbi@gmail.com [libc++] Finish converting __wrap_iter::operator<,== to C++20 (#193287)
2026-06-09 eiytoq@outlook.com [libc++][span][test] Various cleanups for <span> tests (#202319)
2026-06-09 aidengrossman@google.com [libcxx] Bump Github runner image version (#202470)
2026-06-08 nikolasklauser@berlin.de [libc++] Remove <atomic> includes from <stop_token> (#201710)
2026-06-07 hghristov.rmm@gmail.com [libc++][string_view] Test [[nodiscard]] applied to `basic_string_view::const_iterator` (#202203)
2026-06-07 hghristov.rmm@gmail.com [libc++][string] Test [[nodiscard]] applied to `basic_string::iterator` (#202202)
2026-06-07 hghristov.rmm@gmail.com [libc++][span] Test `[[nodiscard]]` applied to `span::iterator` (#202068)
2026-06-07 hghristov.rmm@gmail.com [libc++][array] Test `[[nodicard]]`  with `array::const_iterator` (#202070)
2026-06-06 nikolasklauser@berlin.de [libc++] Assume that <atomic> is available (#199674)
2026-06-05 nikolasklauser@berlin.de [libc++][NFC] Simplify duration comparisons a bit (#201788)
2026-06-05 nikolasklauser@berlin.de [libc++] Drop transitive includes by default (#195509)
2026-06-04 nikolasklauser@berlin.de [libc++] Remove ios_base::__xindex_ from the ABI (#198994)
2026-06-04 ldionne.2@gmail.com [libc++] Suppress deprecation warning around wstring_convert::to_bytes (#201633)
2026-06-04 ldionne.2@gmail.com [libc++] Fix constraint recursion in std::expected's operator== (#201455)
2026-06-04 nikolasklauser@berlin.de [libc++] Simplify unique_ptr constructor SFINAE (#201305)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/libcxx-chromium
Please CC hans@chromium.org,thakis@chromium.org on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Tbr: hans@chromium.org,thakis@chromium.org
Bug: 534049474, 503250165, 534283300
Binary-Size: See commit description.
Fuchsia-Binary-Size: See commit description.
Change-Id: I625accfc3537ed0ff4f8a55fbc92b561d17ea1a3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8109897
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Liza Burakova <liza@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1665653}
NOKEYCHECK=True
GitOrigin-RevId: 7476014c08aaeae8cadbf10b4bcbddbd01f09e19
14 files changed
tree: 594cf01ae3850a0978609c4fe27d32256990e7ac
  1. .github/
  2. absl/
  3. ci/
  4. CMake/
  5. patches/
  6. .clang-format-ignore
  7. ABSEIL_ISSUE_TEMPLATE.md
  8. absl.gni
  9. absl_hardening_test.cc
  10. AUTHORS
  11. BUILD.bazel
  12. BUILD.gn
  13. CMakeLists.txt
  14. conanfile.py
  15. CONTRIBUTING.md
  16. create_lts.py
  17. DIR_METADATA
  18. FAQ.md
  19. generate_def_files.py
  20. LICENSE
  21. MODULE.bazel
  22. OWNERS
  23. PrivacyInfo.xcprivacy
  24. README.chromium
  25. README.md
  26. roll_abseil.py
  27. symbols_arm64_dbg.def
  28. symbols_arm64_dbg_cxx23.def
  29. symbols_arm64_rel.def
  30. symbols_arm64_rel_cxx23.def
  31. symbols_x64_dbg.def
  32. symbols_x64_dbg_cxx23.def
  33. symbols_x64_rel.def
  34. symbols_x64_rel_asan.def
  35. symbols_x64_rel_asan_cxx23.def
  36. symbols_x64_rel_cxx23.def
  37. symbols_x86_dbg.def
  38. symbols_x86_dbg_cxx23.def
  39. symbols_x86_rel.def
  40. symbols_x86_rel_cxx23.def
  41. UPGRADES.md
README.md

Abseil - C++ Common Libraries

The repository contains the Abseil C++ library code. Abseil is an open-source collection of C++ code (compliant to C++17) designed to augment the C++ standard library.

Table of Contents

About Abseil

Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.

In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you.

Abseil is not meant to be a competitor to the standard library; we've just found that many of these utilities serve a purpose within our code base, and we now want to provide those resources to the C++ community as a whole.

Quickstart

If you want to just get started, make sure you at least run through the Abseil Quickstart. The Quickstart contains information about setting up your development environment, downloading the Abseil code, running tests, and getting a simple binary working.

Building Abseil

Bazel and CMake are the official build systems for Abseil. See the quickstart for more information on building Abseil using the Bazel build system. If you require CMake support, please check the CMake build instructions and CMake Quickstart.

Support

Abseil follows Google's Foundational C++ Support Policy. See this table for a list of currently supported versions compilers, platforms, and build tools.

Codemap

Abseil contains the following C++ library components:

  • base
    The base library contains initialization code and other code which all other Abseil code depends on. Code within base may not depend on any other code (other than the C++ standard library).
  • algorithm
    The algorithm library contains additions to the C++ <algorithm> library and container-based versions of such algorithms.
  • cleanup
    The cleanup library contains the control-flow-construct-like type absl::Cleanup which is used for executing a callback on scope exit.
  • container
    The container library contains additional STL-style containers, including Abseil's unordered “Swiss table” containers.
  • crc The crc library contains code for computing error-detecting cyclic redundancy checks on data.
  • debugging
    The debugging library contains code useful for enabling leak checks, and stacktrace and symbolization utilities.
  • flags
    The flags library contains code for handling command line flags for libraries and binaries built with Abseil.
  • hash
    The hash library contains the hashing framework and default hash functor implementations for hashable types in Abseil.
  • log
    The log library contains LOG and CHECK macros and facilities for writing logged messages out to disk, stderr, or user-extensible destinations.
  • memory
    The memory library contains memory management facilities that augment C++'s <memory> library.
  • meta
    The meta library contains type checks similar to those available in the C++ <type_traits> library.
  • numeric
    The numeric library contains 128-bit integer types as well as implementations of C++20's bitwise math functions.
  • profiling
    The profiling library contains utility code for profiling C++ entities. It is currently a private dependency of other Abseil libraries.
  • random
    The random library contains functions for generating pseudorandom values.
  • status
    The status library contains abstractions for error handling, specifically absl::Status and absl::StatusOr<T>.
  • strings
    The strings library contains a variety of strings routines and utilities.
  • synchronization
    The synchronization library contains concurrency primitives (Abseil's absl::Mutex class, an alternative to std::mutex) and a variety of synchronization abstractions.
  • time
    The time library contains abstractions for computing with absolute points in time, durations of time, and formatting and parsing time within time zones.
  • types
    The types library contains non-container utility types.
  • utility
    The utility library contains utility and helper code.

Releases

Abseil recommends users “live-at-head” (update to the latest commit from the master branch as often as possible). However, we realize this philosophy doesn't work for every project, so we also provide Long Term Support Releases to which we backport fixes for severe bugs. See our release management document for more details.

License

The Abseil C++ library is licensed under the terms of the Apache license. See LICENSE for more information.

Links

For more information about Abseil: