Skip to content
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
316 commits
Select commit Hold shift + click to select a range
900d449
pass map.modifiers/emplace_hint.pass.cpp
vinay-deshmukh Apr 10, 2025
71b4ffb
WIP:Merge remote-tracking branch 'upstream/main' into vinay-issue-128…
vinay-deshmukh Jun 8, 2025
f470158
at.pass.cpp passes again
vinay-deshmukh Jun 8, 2025
687ca5f
iterator.pass.cpp passes
vinay-deshmukh Jun 8, 2025
eb3c0f8
move_assign.pass.cpp constexpr fixed
vinay-deshmukh Jun 8, 2025
b5577a6
move_alloc.pass.cpp constexpr fixed, other remains
vinay-deshmukh Jun 8, 2025
dda93ff
copy_assign.pass.cpp constexpr fixed, other remains
vinay-deshmukh Jun 8, 2025
ab52bea
erase_iter.pass.cpp
vinay-deshmukh Jun 8, 2025
f9a4e70
fix typo
vinay-deshmukh Jun 8, 2025
37110f1
map.ops pass
vinay-deshmukh Jun 8, 2025
fedf39b
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Jun 8, 2025
f3b5970
Partially fix assign_initializer_list.pass.cpp
vinay-deshmukh Jun 8, 2025
1d9e310
Fix assign_initializer_list.pass.cpp
vinay-deshmukh Jun 8, 2025
d8095a7
fix placement new to use std::addressof
vinay-deshmukh Jun 8, 2025
01d8633
fix copy_assign.pass.cpp
vinay-deshmukh Jun 8, 2025
e2f3b8f
move alloc failure location
vinay-deshmukh Jun 8, 2025
0cce96e
git-clang-format upstream/main
vinay-deshmukh Jun 9, 2025
2b8603c
featuer test generation
vinay-deshmukh Jun 9, 2025
fa77a07
<__type_traits/is_constant_evaluated.h>
vinay-deshmukh Jun 15, 2025
62f137a
__node_value_type
vinay-deshmukh Jun 15, 2025
4cb5709
Use __libcpp_is_constant_evaluated, still at 7 failures
vinay-deshmukh Jun 19, 2025
8fbff81
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Jun 19, 2025
8b84759
fix feature gen?
vinay-deshmukh Jun 19, 2025
c1b827d
feature macros
vinay-deshmukh Jun 19, 2025
664b3c6
? lang support
vinay-deshmukh Jun 19, 2025
92482b7
cf
vinay-deshmukh Jun 19, 2025
e24ff11
restore pair to main
vinay-deshmukh Jun 19, 2025
a492d0d
back at 7 failures due to min_allocator.h
vinay-deshmukh Jun 19, 2025
a205de2
cf?
vinay-deshmukh Jun 19, 2025
adc5f50
insert_range.pass.cpp, empty passes, stuck at next
vinay-deshmukh Jun 19, 2025
47943d9
min_allocator to main
vinay-deshmukh Jun 21, 2025
db54c2c
tree
vinay-deshmukh Jun 21, 2025
1e3bd1c
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Jun 21, 2025
75e3cd1
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Jul 4, 2025
bd0d751
clang format
vinay-deshmukh Jul 4, 2025
b73e365
fix CI?
vinay-deshmukh Jul 4, 2025
b9d4d95
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Jul 6, 2025
254b686
try CI fix?
vinay-deshmukh Jul 6, 2025
e48e585
readability-identifier-naming
vinay-deshmukh Jul 6, 2025
281e462
libcpp-hide-from-abi
vinay-deshmukh Jul 6, 2025
812c167
cf
vinay-deshmukh Jul 6, 2025
e631266
_Args not Args
vinay-deshmukh Jul 6, 2025
3a24e31
map?
vinay-deshmukh Jul 6, 2025
1744e8a
generic-cxx03
vinay-deshmukh Jul 6, 2025
a31f09b
libcpp-hide-from-abi
vinay-deshmukh Jul 6, 2025
8c401a6
cxx03
vinay-deshmukh Jul 6, 2025
7c72e0e
tmp
vinay-deshmukh Jul 6, 2025
54107af
WIP???
vinay-deshmukh Jul 12, 2025
a34f7af
Merge commit 'afcf76bda18c09cffd88cb562768385f97ebf894' into vinay-is…
vinay-deshmukh Jul 12, 2025
7dfa7c1
constexpr test ID*
vinay-deshmukh Jul 13, 2025
1549261
at.pass.cpp works
vinay-deshmukh Jul 29, 2025
17f8361
empty.pass.cpp
vinay-deshmukh Jul 29, 2025
e9bdbb7
index_key.pass.cpp -> static_assert
vinay-deshmukh Jul 29, 2025
c695518
iterator.pass.cpp
vinay-deshmukh Jul 29, 2025
0790081
size.pass.cpp
vinay-deshmukh Jul 29, 2025
16828a5
map.cons/assign_initializer_list.pass.cpp
vinay-deshmukh Jul 29, 2025
0dbe3d5
map.modifiers/emplace.pass.cpp
vinay-deshmukh Jul 29, 2025
e2938a5
map.modifiers/emplace_hint.pass.cpp
vinay-deshmukh Jul 29, 2025
ce082a3
map.modifiers/erase_key.pass.cpp
vinay-deshmukh Jul 29, 2025
64b93db
map.ops/count.pass.cpp
vinay-deshmukh Jul 29, 2025
bed849d
map.ops/equal_range.pass.cpp
vinay-deshmukh Jul 29, 2025
be3ac37
map.ops/find.pass.cpp
vinay-deshmukh Jul 29, 2025
f5a26ab
map.ops/upper_bound.pass.cpp
vinay-deshmukh Jul 29, 2025
07034d1
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Jul 29, 2025
e28df17
clang-format
vinay-deshmukh Jul 29, 2025
72912ac
fix error
vinay-deshmukh Aug 2, 2025
9356bb2
value_comp bad merge
vinay-deshmukh Aug 2, 2025
2a1d335
_root cannot be redeclared
vinay-deshmukh Aug 2, 2025
33fea96
remove base and cast
vinay-deshmukh Aug 2, 2025
0f3d0f1
copy_assign.pass.cpp
vinay-deshmukh Aug 3, 2025
c2f8451
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Aug 3, 2025
cca780a
fails largely because of constexpr limit, because for Container<int,…
vinay-deshmukh Aug 4, 2025
f1fabdc
use __node_traits::construct over placement new, copy_assing copy_all…
vinay-deshmukh Aug 5, 2025
d1de5b1
cf
vinay-deshmukh Aug 5, 2025
51cb5e2
note for failure
vinay-deshmukh Aug 5, 2025
446a15a
TODO
vinay-deshmukh Aug 7, 2025
f95216d
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Aug 9, 2025
d08023d
add constexpr cpp26
vinay-deshmukh Aug 9, 2025
d2a453a
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Aug 9, 2025
1d9a7e9
mistake
vinay-deshmukh Aug 9, 2025
61cc3cb
6 failures
vinay-deshmukh Aug 9, 2025
4b6bd5f
something
vinay-deshmukh Aug 9, 2025
a563260
clean
vinay-deshmukh Aug 9, 2025
325c9b7
clean more
vinay-deshmukh Aug 9, 2025
a5d575d
fix same_as allocate issues in index_rv_key
vinay-deshmukh Aug 10, 2025
1c46326
failures at move_alloc and move_assign
vinay-deshmukh Aug 10, 2025
f636597
allocator for copy_assign
vinay-deshmukh Aug 10, 2025
e57be9e
index_rv_key at it again
vinay-deshmukh Aug 10, 2025
d96f38b
haxxx
vinay-deshmukh Aug 10, 2025
ca06b8a
Temporary solution for UB & restriction
vinay-deshmukh Aug 10, 2025
ef90a64
copy_assign.pass.cpp
vinay-deshmukh Aug 10, 2025
9f27c4f
Finally only 2 tests fail
vinay-deshmukh Aug 10, 2025
36c1cc9
insert_key.pass.cpp
vinay-deshmukh Aug 10, 2025
8cafae7
Move_alloc.pass.cpp fails
vinay-deshmukh Aug 10, 2025
d72cf89
add docs
vinay-deshmukh Aug 10, 2025
a6c74cf
move_alloc and move_assign, fail in __insert_unique_from_orphaned_nod…
vinay-deshmukh Aug 10, 2025
8da6b53
kind of fixed it, almost
vinay-deshmukh Aug 10, 2025
c4a3034
Fix for move_assign
vinay-deshmukh Aug 11, 2025
77a9d5d
almost a fix for move_assign.pass.cpp
vinay-deshmukh Aug 11, 2025
27604a5
insert_range_maps_sets.h, needs a lot of constexpr depth
vinay-deshmukh Aug 11, 2025
d8d6278
add why sfinae
vinay-deshmukh Aug 11, 2025
187b86f
insert_and_emplace_allocator_requirements.pass.cpp passes
vinay-deshmukh Aug 11, 2025
b3deeb1
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Aug 11, 2025
2143eb5
use the typedef
vinay-deshmukh Aug 11, 2025
209f88d
remove concepts, collapse unnecessary sfinae
vinay-deshmukh Aug 11, 2025
a7235cb
some docs
vinay-deshmukh Aug 11, 2025
ee0a6b5
breaks correctly
vinay-deshmukh Aug 12, 2025
c8e907f
still correct failures with cleanup
vinay-deshmukh Aug 12, 2025
bfea79f
more cleans
vinay-deshmukh Aug 12, 2025
03a6a4a
more clean
vinay-deshmukh Aug 12, 2025
4fbb472
PR review comment
vinay-deshmukh Aug 12, 2025
b3e9926
include __memory/construct_at
vinay-deshmukh Aug 12, 2025
efd9f96
`Assertion `getConstructController()->isInAllocatorConstruct()' faile…
vinay-deshmukh Aug 12, 2025
ae13527
one clean
vinay-deshmukh Aug 12, 2025
ebfc34d
cleanup for libcxx/test/support/container_test_types.h
vinay-deshmukh Aug 12, 2025
4133867
clean back
vinay-deshmukh Aug 12, 2025
78fc8ca
clang-format
vinay-deshmukh Aug 12, 2025
0aa760e
adjust constexpr steps arg
vinay-deshmukh Aug 12, 2025
2edf9ac
clean
vinay-deshmukh Aug 12, 2025
7760d51
Redundant check
vinay-deshmukh Aug 12, 2025
06e38db
Add ReleaseNotes
vinay-deshmukh Aug 12, 2025
71e88c8
use allocator as template arg and allocator_traits, tests passed in c…
vinay-deshmukh Aug 13, 2025
88f7743
cf
vinay-deshmukh Aug 15, 2025
ae3a7b5
hide from abi
vinay-deshmukh Aug 15, 2025
85d3a4d
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Aug 15, 2025
2f689f9
use allocator as template arg and allocator_traits, tests passed in c…
vinay-deshmukh Aug 13, 2025
bbc637a
remove UB using list
vinay-deshmukh Aug 16, 2025
99c2829
cf
vinay-deshmukh Aug 16, 2025
5afe3a4
doc-fix
vinay-deshmukh Aug 16, 2025
ca72744
Replace __value_ with __get_value() for __tree_node
vinay-deshmukh Aug 16, 2025
47b71f8
miss typo
vinay-deshmukh Aug 16, 2025
d16fabf
fix ctor for cpp03 buffer
vinay-deshmukh Aug 16, 2025
dcd4cb4
cf
vinay-deshmukh Aug 16, 2025
08f5328
rename in map as well
vinay-deshmukh Aug 16, 2025
4b5609c
cf
vinay-deshmukh Aug 16, 2025
d24dbc2
include
vinay-deshmukh Aug 16, 2025
9c47574
more?
vinay-deshmukh Aug 16, 2025
8b1278e
hide from abi
vinay-deshmukh Aug 16, 2025
2dcaacf
Attempt fix for gcc-15 std=c++26
vinay-deshmukh Aug 16, 2025
3bc7443
try
vinay-deshmukh Aug 16, 2025
5443a8f
format and arm fix attempt'
vinay-deshmukh Aug 16, 2025
96a1ec1
cf
vinay-deshmukh Aug 16, 2025
55bf409
fix non-ascii
vinay-deshmukh Aug 16, 2025
f829a9f
=default;
vinay-deshmukh Aug 16, 2025
3eba630
noop
vinay-deshmukh Aug 16, 2025
b989b99
abi
vinay-deshmukh Aug 16, 2025
47e4c08
constexpr-dtor
vinay-deshmukh Aug 16, 2025
b241636
terser
vinay-deshmukh Aug 17, 2025
88ef82a
WIP: gcc-15 failure investigation
vinay-deshmukh Aug 18, 2025
f5cc9c3
redundant launder
vinay-deshmukh Aug 18, 2025
c1a776e
single branch
vinay-deshmukh Aug 18, 2025
4e905fe
remove the & from buffer
vinay-deshmukh Aug 18, 2025
225b03c
remove _LIBCPP_STANDALONE_DEBUG
vinay-deshmukh Aug 18, 2025
1b01b80
cf
vinay-deshmukh Aug 18, 2025
62df872
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Aug 19, 2025
e035df9
Merge branch 'main' into vinay-issue-128660-map-ub
vinay-deshmukh Aug 30, 2025
fe18363
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Aug 31, 2025
47a1376
fix the first failure with ptr_ is uninitialized
vinay-deshmukh Aug 31, 2025
ca741fe
fix map
vinay-deshmukh Aug 31, 2025
5823758
revert min_allocator default construction
vinay-deshmukh Aug 31, 2025
675a0ca
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Aug 31, 2025
54951dd
Merge branch 'vinay-issue-128660-map-ub' of out:vinay-deshmukh/llvm-p…
vinay-deshmukh Aug 31, 2025
5494264
_ptr is not initialized
vinay-deshmukh Aug 31, 2025
459f610
Merge branch 'vinay-issue-128660-map-ub' into vinay-issue-128660-P337…
vinay-deshmukh Aug 31, 2025
bcb160b
disable test for g++-15
vinay-deshmukh Sep 6, 2025
72f203d
remove debugging attempts
vinay-deshmukh Sep 6, 2025
968b396
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Sep 6, 2025
19c4395
Remove debugging attempt
vinay-deshmukh Sep 6, 2025
ad96d23
Fix testing at runtime as well
vinay-deshmukh Sep 7, 2025
27e2117
Description and links
vinay-deshmukh Sep 7, 2025
9fa48e6
partial fix for }
vinay-deshmukh Sep 7, 2025
666f6a8
restore TEST_HAS_NO_EXCEPTIONS
vinay-deshmukh Sep 7, 2025
7641f61
Remove extra include
vinay-deshmukh Sep 7, 2025
549703c
remove set -x
vinay-deshmukh Sep 7, 2025
9147482
undo debug attempts
vinay-deshmukh Sep 7, 2025
1d4eed8
Refactor libcxx/test/std/containers/associative/map/map.modifiers/ins…
vinay-deshmukh Sep 7, 2025
9cdfd46
CWG1514: key() is not constexpr
vinay-deshmukh Sep 7, 2025
f717c27
static can't be constexpr
vinay-deshmukh Sep 7, 2025
580a70d
Refactor libcxx/test/std/containers/associative/map/map.cons/from_ran…
vinay-deshmukh Sep 7, 2025
ad00104
Refactor libcxx/test/std/containers/associative/map/map.cons/copy_all…
vinay-deshmukh Sep 7, 2025
ba628f0
Refactor libcxx/test/std/containers/associative/map/map.cons/copy.pas…
vinay-deshmukh Sep 7, 2025
e1f6851
Refactor libcxx/test/std/containers/associative/map/map.access/index_…
vinay-deshmukh Sep 7, 2025
f921550
Refactor libcxx/test/std/containers/associative/map/map.access/index_…
vinay-deshmukh Sep 7, 2025
8b752b4
grammar
vinay-deshmukh Sep 7, 2025
7315286
Pass the generic-hardening-mode-debug
vinay-deshmukh Sep 7, 2025
32a7276
cf and remove non-ascii
vinay-deshmukh Sep 7, 2025
fa5d9d2
Remove hide abi
vinay-deshmukh Sep 8, 2025
b61c18e
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Sep 11, 2025
2ef6175
obsolete comment
vinay-deshmukh Sep 11, 2025
8c78c45
Add FIXME
vinay-deshmukh Sep 11, 2025
7616770
Apply cf
vinay-deshmukh Sep 11, 2025
a6c32e1
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Sep 13, 2025
a6eb443
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Sep 13, 2025
dcc1533
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Sep 21, 2025
28ed94b
cf
vinay-deshmukh Sep 21, 2025
3bbf31d
add constexpr
vinay-deshmukh Sep 21, 2025
a209fb5
cf
vinay-deshmukh Sep 21, 2025
b083bea
Move ReleaseNotes to Implemented papers
vinay-deshmukh Sep 30, 2025
d1dfb7f
Fix order of annotations
vinay-deshmukh Sep 30, 2025
cdac01f
node-handle doc
vinay-deshmukh Sep 30, 2025
0e10680
unrelated defaulting
vinay-deshmukh Sep 30, 2025
c7307a8
undo previous
vinay-deshmukh Sep 30, 2025
b556c84
unnecessary destructor for __tree_node_base
vinay-deshmukh Sep 30, 2025
8ecbbb5
Remove constexpr from cpp03 code
vinay-deshmukh Sep 30, 2025
2f2bec2
Unnecessary annotation on deleted function
vinay-deshmukh Sep 30, 2025
2661937
simplify type_trait
vinay-deshmukh Sep 30, 2025
c28aac0
Allow runtime decision for __insert_unique_from_orphaned_node
vinay-deshmukh Oct 1, 2025
c448834
Allow runtime decision for __assign_value
vinay-deshmukh Oct 1, 2025
f732308
local cf
vinay-deshmukh Oct 1, 2025
d358aed
Simplify at.pass.cpp
vinay-deshmukh Oct 1, 2025
986e713
use TEST_IS_CONSTANT_EVALUATED over libcxx function
vinay-deshmukh Oct 1, 2025
5c84f1f
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Oct 2, 2025
839c373
Remove extra arm CI hack
vinay-deshmukh Oct 2, 2025
80b2f06
missing space
vinay-deshmukh Oct 2, 2025
c5d73dd
Avoid creating a __tmp
vinay-deshmukh Oct 2, 2025
c4a0092
explicit copy
vinay-deshmukh Oct 3, 2025
d4a0430
Remove constexpr annotations from multimap
vinay-deshmukh Oct 3, 2025
87d28d5
CI fix for clang <=20
vinay-deshmukh Oct 3, 2025
3193936
Check clang<20 only for clang based compilers
vinay-deshmukh Oct 4, 2025
e93ea65
Fix apple-clang macro lookup
vinay-deshmukh Oct 4, 2025
b2ccf29
Fixme, not todo
vinay-deshmukh Oct 4, 2025
29acf01
Updated FIXME
vinay-deshmukh Oct 4, 2025
20a256c
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Oct 7, 2025
2e4f30b
and manual fixes, Merge remote-tracking branch 'upstream/main' into v…
vinay-deshmukh Oct 9, 2025
9f931f5
Remove assert(test());
vinay-deshmukh Oct 16, 2025
bee52bf
clang-format?
vinay-deshmukh Oct 16, 2025
c493c71
Synopsis attach: // constexpr since C++26
vinay-deshmukh Oct 16, 2025
3b772fd
Revert "Remove assert(test());"
vinay-deshmukh Oct 16, 2025
5bba72f
Fix the sed script
vinay-deshmukh Oct 16, 2025
57183b4
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Oct 18, 2025
f2a5a94
Add constexpr to the signature
vinay-deshmukh Oct 18, 2025
b4fed32
remove arm and freebsd from warning
vinay-deshmukh Oct 19, 2025
66b4d6f
comments alignment
vinay-deshmukh Oct 19, 2025
6258613
unnecessary comment
vinay-deshmukh Oct 19, 2025
e0e9f9f
remove the second //
vinay-deshmukh Oct 19, 2025
69bb9d3
formatting redo
vinay-deshmukh Oct 19, 2025
adc2589
Add constexpr to test signatures
vinay-deshmukh Oct 19, 2025
e751289
add constexpr for insert_node_type and insert_node_type_hint
vinay-deshmukh Oct 19, 2025
483a33b
remove releasenote from 22.rst
vinay-deshmukh Oct 19, 2025
18c8d32
align spaces
vinay-deshmukh Oct 19, 2025
ecb88ef
more cleanup
vinay-deshmukh Oct 19, 2025
0bcdb71
Change every static_cast to std::__static_fancy_pointer_cast in __tree
vinay-deshmukh Oct 19, 2025
a03604f
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Oct 24, 2025
6d3ebd3
Merge branch 'main' into vinay-issue-128660-P3372-constexpr-map
vinay-deshmukh Oct 25, 2025
2701291
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Oct 30, 2025
41847ef
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Nov 6, 2025
fd62583
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh Nov 8, 2025
731a987
merge.pass.cpp
vinay-deshmukh Nov 10, 2025
4af614d
insert_node_type*
vinay-deshmukh Nov 10, 2025
376399d
Use only _, and not __ in names
vinay-deshmukh Nov 12, 2025
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions libcxx/docs/FeatureTestMacroTable.rst
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,8 @@ Status
---------------------------------------------------------- -----------------
``__cpp_lib_constexpr_list`` ``202502L``
---------------------------------------------------------- -----------------
``__cpp_lib_constexpr_map`` ``202502L``
---------------------------------------------------------- -----------------
``__cpp_lib_constexpr_new`` ``202406L``
---------------------------------------------------------- -----------------
``__cpp_lib_constexpr_queue`` ``202502L``
Expand Down
1 change: 1 addition & 0 deletions libcxx/docs/ReleaseNotes/22.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ Implemented Papers
- P3060R3: Add ``std::views::indices(n)`` (`Github <https://llvm.org/PR148175>`__)
- P2835R7: Expose ``std::atomic_ref``'s object address (`Github <https://llvm.org/PR118377>`__)
- P3168R2: Give ``std::optional`` Range Support (`Github <https://llvm.org/PR105430>`__)
- P3372R3: ``constexpr map`` (`Github <https://llvm.org/PR134330>`__) (The paper is partially implemented. ``constexpr map`` is implemented in this release)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't need to add this release note for a partially implemented paper. You can update the status page though.

Copy link
Contributor Author

@vinay-deshmukh vinay-deshmukh Oct 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was looking at this PR for a reference:
https://github.com/llvm/llvm-project/pull/137453/files

So Cxx2cPapers.csv already has an entry for it:

"`P3372R3 <https://wg21.link/P3372R3>`__","constexpr containers and adaptors","2025-02 (Hagenberg)","|In Progress|","","`#127876 <https://github.com/llvm/llvm-project/issues/127876>`__",""

and I originally added it here using this as a reference:

- P3372R3: ``constexpr`` containers and adaptors (`Github <https://github.com/llvm/llvm-project/issues/127876>`__) (``forward_list``, ``list``, ``priority_queue``, ``flat_map``, and ``flat_set`` are implemented)

So perhaps should I just remove this line for this review?

removed in 483a33b


Improvements and New Features
-----------------------------
Expand Down
3 changes: 2 additions & 1 deletion libcxx/include/__iterator/erase_if_container.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ _LIBCPP_PUSH_MACROS
_LIBCPP_BEGIN_NAMESPACE_STD

template <class _Container, class _Predicate>
_LIBCPP_HIDE_FROM_ABI typename _Container::size_type __libcpp_erase_if_container(_Container& __c, _Predicate& __pred) {
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 typename _Container::size_type
__libcpp_erase_if_container(_Container& __c, _Predicate& __pred) {
typename _Container::size_type __old_size = __c.size();

const typename _Container::iterator __last = __c.end();
Expand Down
48 changes: 25 additions & 23 deletions libcxx/include/__node_handle
Original file line number Diff line number Diff line change
Expand Up @@ -31,29 +31,29 @@ private:
public:
// [container.node.cons], constructors, copy, and assignment
constexpr node-handle() noexcept : ptr_(), alloc_() {}
node-handle(node-handle&&) noexcept;
node-handle& operator=(node-handle&&);
constexpr node-handle(node-handle&&) noexcept; // constexpr since C++26
constexpr node-handle& operator=(node-handle&&); // constexpr since C++26

// [container.node.dtor], destructor
~node-handle();
constexpr ~node-handle(); // constexpr since C++26

// [container.node.observers], observers
value_type& value() const; // not present for map containers
key_type& key() const; // not present for set containers
mapped_type& mapped() const; // not present for set containers
constexpr mapped_type& mapped() const; // not present for set containers, constexpr since C++26

allocator_type get_allocator() const;
explicit operator bool() const noexcept;
[[nodiscard]] bool empty() const noexcept; // nodiscard since C++20
constexpr allocator_type get_allocator() const; // constexpr since C++26
constexpr explicit operator bool() const noexcept; // constexpr since C++26
[[nodiscard]] constexpr bool empty() const noexcept; // nodiscard since C++20, constexpr since C++26

// [container.node.modifiers], modifiers
void swap(node-handle&)
constexpr void swap(node-handle&)
noexcept(ator_traits::propagate_on_container_swap::value ||
ator_traits::is_always_equal::value);
ator_traits::is_always_equal::value); // constexpr since C++26

friend void swap(node-handle& x, node-handle& y) noexcept(noexcept(x.swap(y))) {
constexpr friend void swap(node-handle& x, node-handle& y) noexcept(noexcept(x.swap(y))) {
x.swap(y);
}
} // constexpr since C++26
};

*/
Expand Down Expand Up @@ -99,12 +99,12 @@ private:
__node_pointer_type __ptr_ = nullptr;
optional<allocator_type> __alloc_;

_LIBCPP_HIDE_FROM_ABI void __release_ptr() {
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void __release_ptr() {
__ptr_ = nullptr;
__alloc_ = std::nullopt;
}

_LIBCPP_HIDE_FROM_ABI void __destroy_node_pointer() {
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void __destroy_node_pointer() {
if (__ptr_ != nullptr) {
typedef typename __allocator_traits_rebind< allocator_type, _NodeType>::type __node_alloc_type;
__node_alloc_type __alloc(*__alloc_);
Expand All @@ -113,19 +113,20 @@ private:
}
}

_LIBCPP_HIDE_FROM_ABI __basic_node_handle(__node_pointer_type __ptr, allocator_type const& __alloc)
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
__basic_node_handle(__node_pointer_type __ptr, allocator_type const& __alloc)
: __ptr_(__ptr), __alloc_(__alloc) {}

public:
_LIBCPP_HIDE_FROM_ABI __basic_node_handle() = default;
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __basic_node_handle() = default;

_LIBCPP_HIDE_FROM_ABI __basic_node_handle(__basic_node_handle&& __other) noexcept
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __basic_node_handle(__basic_node_handle&& __other) noexcept
: __ptr_(__other.__ptr_), __alloc_(std::move(__other.__alloc_)) {
__other.__ptr_ = nullptr;
__other.__alloc_ = std::nullopt;
}

_LIBCPP_HIDE_FROM_ABI __basic_node_handle& operator=(__basic_node_handle&& __other) {
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __basic_node_handle& operator=(__basic_node_handle&& __other) {
_LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR(
__alloc_ == std::nullopt || __alloc_traits::propagate_on_container_move_assignment::value ||
__alloc_ == __other.__alloc_,
Expand All @@ -144,13 +145,13 @@ public:
return *this;
}

_LIBCPP_HIDE_FROM_ABI allocator_type get_allocator() const { return *__alloc_; }
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 allocator_type get_allocator() const { return *__alloc_; }

_LIBCPP_HIDE_FROM_ABI explicit operator bool() const { return __ptr_ != nullptr; }
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 explicit operator bool() const { return __ptr_ != nullptr; }

[[nodiscard]] _LIBCPP_HIDE_FROM_ABI bool empty() const { return __ptr_ == nullptr; }
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool empty() const { return __ptr_ == nullptr; }

_LIBCPP_HIDE_FROM_ABI void swap(__basic_node_handle& __other) noexcept(
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void swap(__basic_node_handle& __other) noexcept(
__alloc_traits::propagate_on_container_swap::value || __alloc_traits::is_always_equal::value) {
using std::swap;
swap(__ptr_, __other.__ptr_);
Expand All @@ -159,12 +160,12 @@ public:
swap(__alloc_, __other.__alloc_);
}

_LIBCPP_HIDE_FROM_ABI friend void
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 friend void
swap(__basic_node_handle& __a, __basic_node_handle& __b) noexcept(noexcept(__a.swap(__b))) {
__a.swap(__b);
}

_LIBCPP_HIDE_FROM_ABI ~__basic_node_handle() { __destroy_node_pointer(); }
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 ~__basic_node_handle() { __destroy_node_pointer(); }
};

template <class _NodeType, class _Derived>
Expand All @@ -179,6 +180,7 @@ struct __map_node_handle_specifics {
using key_type = __remove_const_t<typename _NodeType::__node_value_type::first_type>;
using mapped_type = typename _NodeType::__node_value_type::second_type;

// This method is not constexpr as per the standard.
_LIBCPP_HIDE_FROM_ABI key_type& key() const {
return const_cast<key_type&>(static_cast<_Derived const*>(this)->__ptr_->__get_value().first);
}
Expand Down
Loading
Loading