-
Notifications
You must be signed in to change notification settings - Fork 14.9k
[libc++] Make <map>
std::map
constexpr as part of P3372R3
#134330
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
vinay-deshmukh
wants to merge
308
commits into
llvm:main
Choose a base branch
from
vinay-deshmukh:vinay-issue-128660-P3372-constexpr-map
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+2,140
−1,143
Open
Changes from 250 commits
Commits
Show all changes
308 commits
Select commit
Hold shift + click to select a range
b3218a7
cleanup
vinay-deshmukh 7cfa07f
Pass compare.pass.cpp
vinay-deshmukh 7930edd
pass incomplete_type.pass.cpp
vinay-deshmukh 2ff98ea
error: call to deleted constructor of '__node_value_type' (aka 'std::…
vinay-deshmukh 27f2bfe
clang-format
vinay-deshmukh 10f536f
Generate macro version correctly
vinay-deshmukh 1270c3e
fix unrelated CI failures
vinay-deshmukh 97b00cd
pass map.modifiers/emplace.pass.cpp
vinay-deshmukh 900d449
pass map.modifiers/emplace_hint.pass.cpp
vinay-deshmukh 71b4ffb
WIP:Merge remote-tracking branch 'upstream/main' into vinay-issue-128…
vinay-deshmukh f470158
at.pass.cpp passes again
vinay-deshmukh 687ca5f
iterator.pass.cpp passes
vinay-deshmukh eb3c0f8
move_assign.pass.cpp constexpr fixed
vinay-deshmukh b5577a6
move_alloc.pass.cpp constexpr fixed, other remains
vinay-deshmukh dda93ff
copy_assign.pass.cpp constexpr fixed, other remains
vinay-deshmukh ab52bea
erase_iter.pass.cpp
vinay-deshmukh f9a4e70
fix typo
vinay-deshmukh 37110f1
map.ops pass
vinay-deshmukh fedf39b
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh f3b5970
Partially fix assign_initializer_list.pass.cpp
vinay-deshmukh 1d9e310
Fix assign_initializer_list.pass.cpp
vinay-deshmukh d8095a7
fix placement new to use std::addressof
vinay-deshmukh 01d8633
fix copy_assign.pass.cpp
vinay-deshmukh e2f3b8f
move alloc failure location
vinay-deshmukh 0cce96e
git-clang-format upstream/main
vinay-deshmukh 2b8603c
featuer test generation
vinay-deshmukh fa77a07
<__type_traits/is_constant_evaluated.h>
vinay-deshmukh 62f137a
__node_value_type
vinay-deshmukh 4cb5709
Use __libcpp_is_constant_evaluated, still at 7 failures
vinay-deshmukh 8fbff81
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh 8b84759
fix feature gen?
vinay-deshmukh c1b827d
feature macros
vinay-deshmukh 664b3c6
? lang support
vinay-deshmukh 92482b7
cf
vinay-deshmukh e24ff11
restore pair to main
vinay-deshmukh a492d0d
back at 7 failures due to min_allocator.h
vinay-deshmukh a205de2
cf?
vinay-deshmukh adc5f50
insert_range.pass.cpp, empty passes, stuck at next
vinay-deshmukh 47943d9
min_allocator to main
vinay-deshmukh db54c2c
tree
vinay-deshmukh 1e3bd1c
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh 75e3cd1
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh bd0d751
clang format
vinay-deshmukh b73e365
fix CI?
vinay-deshmukh b9d4d95
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh 254b686
try CI fix?
vinay-deshmukh e48e585
readability-identifier-naming
vinay-deshmukh 281e462
libcpp-hide-from-abi
vinay-deshmukh 812c167
cf
vinay-deshmukh e631266
_Args not Args
vinay-deshmukh 3a24e31
map?
vinay-deshmukh 1744e8a
generic-cxx03
vinay-deshmukh a31f09b
libcpp-hide-from-abi
vinay-deshmukh 8c401a6
cxx03
vinay-deshmukh 7c72e0e
tmp
vinay-deshmukh 54107af
WIP???
vinay-deshmukh a34f7af
Merge commit 'afcf76bda18c09cffd88cb562768385f97ebf894' into vinay-is…
vinay-deshmukh 7dfa7c1
constexpr test ID*
vinay-deshmukh 1549261
at.pass.cpp works
vinay-deshmukh 17f8361
empty.pass.cpp
vinay-deshmukh e9bdbb7
index_key.pass.cpp -> static_assert
vinay-deshmukh c695518
iterator.pass.cpp
vinay-deshmukh 0790081
size.pass.cpp
vinay-deshmukh 16828a5
map.cons/assign_initializer_list.pass.cpp
vinay-deshmukh 0dbe3d5
map.modifiers/emplace.pass.cpp
vinay-deshmukh e2938a5
map.modifiers/emplace_hint.pass.cpp
vinay-deshmukh ce082a3
map.modifiers/erase_key.pass.cpp
vinay-deshmukh 64b93db
map.ops/count.pass.cpp
vinay-deshmukh bed849d
map.ops/equal_range.pass.cpp
vinay-deshmukh be3ac37
map.ops/find.pass.cpp
vinay-deshmukh f5a26ab
map.ops/upper_bound.pass.cpp
vinay-deshmukh 07034d1
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh e28df17
clang-format
vinay-deshmukh 72912ac
fix error
vinay-deshmukh 9356bb2
value_comp bad merge
vinay-deshmukh 2a1d335
_root cannot be redeclared
vinay-deshmukh 33fea96
remove base and cast
vinay-deshmukh 0f3d0f1
copy_assign.pass.cpp
vinay-deshmukh c2f8451
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh cca780a
fails largely because of constexpr limit, because for Container<int,…
vinay-deshmukh f1fabdc
use __node_traits::construct over placement new, copy_assing copy_all…
vinay-deshmukh d1de5b1
cf
vinay-deshmukh 51cb5e2
note for failure
vinay-deshmukh 446a15a
TODO
vinay-deshmukh f95216d
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh d08023d
add constexpr cpp26
vinay-deshmukh d2a453a
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh 1d9a7e9
mistake
vinay-deshmukh 61cc3cb
6 failures
vinay-deshmukh 4b6bd5f
something
vinay-deshmukh a563260
clean
vinay-deshmukh 325c9b7
clean more
vinay-deshmukh a5d575d
fix same_as allocate issues in index_rv_key
vinay-deshmukh 1c46326
failures at move_alloc and move_assign
vinay-deshmukh f636597
allocator for copy_assign
vinay-deshmukh e57be9e
index_rv_key at it again
vinay-deshmukh d96f38b
haxxx
vinay-deshmukh ca06b8a
Temporary solution for UB & restriction
vinay-deshmukh ef90a64
copy_assign.pass.cpp
vinay-deshmukh 9f27c4f
Finally only 2 tests fail
vinay-deshmukh 36c1cc9
insert_key.pass.cpp
vinay-deshmukh 8cafae7
Move_alloc.pass.cpp fails
vinay-deshmukh d72cf89
add docs
vinay-deshmukh a6c74cf
move_alloc and move_assign, fail in __insert_unique_from_orphaned_nod…
vinay-deshmukh 8da6b53
kind of fixed it, almost
vinay-deshmukh c4a3034
Fix for move_assign
vinay-deshmukh 77a9d5d
almost a fix for move_assign.pass.cpp
vinay-deshmukh 27604a5
insert_range_maps_sets.h, needs a lot of constexpr depth
vinay-deshmukh d8d6278
add why sfinae
vinay-deshmukh 187b86f
insert_and_emplace_allocator_requirements.pass.cpp passes
vinay-deshmukh b3deeb1
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh 2143eb5
use the typedef
vinay-deshmukh 209f88d
remove concepts, collapse unnecessary sfinae
vinay-deshmukh a7235cb
some docs
vinay-deshmukh ee0a6b5
breaks correctly
vinay-deshmukh c8e907f
still correct failures with cleanup
vinay-deshmukh bfea79f
more cleans
vinay-deshmukh 03a6a4a
more clean
vinay-deshmukh 4fbb472
PR review comment
vinay-deshmukh b3e9926
include __memory/construct_at
vinay-deshmukh efd9f96
`Assertion `getConstructController()->isInAllocatorConstruct()' faile…
vinay-deshmukh ae13527
one clean
vinay-deshmukh ebfc34d
cleanup for libcxx/test/support/container_test_types.h
vinay-deshmukh 4133867
clean back
vinay-deshmukh 78fc8ca
clang-format
vinay-deshmukh 0aa760e
adjust constexpr steps arg
vinay-deshmukh 2edf9ac
clean
vinay-deshmukh 7760d51
Redundant check
vinay-deshmukh 06e38db
Add ReleaseNotes
vinay-deshmukh 71e88c8
use allocator as template arg and allocator_traits, tests passed in c…
vinay-deshmukh 88f7743
cf
vinay-deshmukh ae3a7b5
hide from abi
vinay-deshmukh 85d3a4d
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh 2f689f9
use allocator as template arg and allocator_traits, tests passed in c…
vinay-deshmukh bbc637a
remove UB using list
vinay-deshmukh 99c2829
cf
vinay-deshmukh 5afe3a4
doc-fix
vinay-deshmukh ca72744
Replace __value_ with __get_value() for __tree_node
vinay-deshmukh 47b71f8
miss typo
vinay-deshmukh d16fabf
fix ctor for cpp03 buffer
vinay-deshmukh dcd4cb4
cf
vinay-deshmukh 08f5328
rename in map as well
vinay-deshmukh 4b5609c
cf
vinay-deshmukh d24dbc2
include
vinay-deshmukh 9c47574
more?
vinay-deshmukh 8b1278e
hide from abi
vinay-deshmukh 2dcaacf
Attempt fix for gcc-15 std=c++26
vinay-deshmukh 3bc7443
try
vinay-deshmukh 5443a8f
format and arm fix attempt'
vinay-deshmukh 96a1ec1
cf
vinay-deshmukh 55bf409
fix non-ascii
vinay-deshmukh f829a9f
=default;
vinay-deshmukh 3eba630
noop
vinay-deshmukh b989b99
abi
vinay-deshmukh 47e4c08
constexpr-dtor
vinay-deshmukh b241636
terser
vinay-deshmukh 88ef82a
WIP: gcc-15 failure investigation
vinay-deshmukh f5cc9c3
redundant launder
vinay-deshmukh c1a776e
single branch
vinay-deshmukh 4e905fe
remove the & from buffer
vinay-deshmukh 225b03c
remove _LIBCPP_STANDALONE_DEBUG
vinay-deshmukh 1b01b80
cf
vinay-deshmukh 62df872
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh e035df9
Merge branch 'main' into vinay-issue-128660-map-ub
vinay-deshmukh fe18363
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh 47a1376
fix the first failure with ptr_ is uninitialized
vinay-deshmukh ca741fe
fix map
vinay-deshmukh 5823758
revert min_allocator default construction
vinay-deshmukh 675a0ca
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh 54951dd
Merge branch 'vinay-issue-128660-map-ub' of out:vinay-deshmukh/llvm-p…
vinay-deshmukh 5494264
_ptr is not initialized
vinay-deshmukh 459f610
Merge branch 'vinay-issue-128660-map-ub' into vinay-issue-128660-P337…
vinay-deshmukh bcb160b
disable test for g++-15
vinay-deshmukh 72f203d
remove debugging attempts
vinay-deshmukh 968b396
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh 19c4395
Remove debugging attempt
vinay-deshmukh ad96d23
Fix testing at runtime as well
vinay-deshmukh 27e2117
Description and links
vinay-deshmukh 9fa48e6
partial fix for }
vinay-deshmukh 666f6a8
restore TEST_HAS_NO_EXCEPTIONS
vinay-deshmukh 7641f61
Remove extra include
vinay-deshmukh 549703c
remove set -x
vinay-deshmukh 9147482
undo debug attempts
vinay-deshmukh 1d4eed8
Refactor libcxx/test/std/containers/associative/map/map.modifiers/ins…
vinay-deshmukh 9cdfd46
CWG1514: key() is not constexpr
vinay-deshmukh f717c27
static can't be constexpr
vinay-deshmukh 580a70d
Refactor libcxx/test/std/containers/associative/map/map.cons/from_ran…
vinay-deshmukh ad00104
Refactor libcxx/test/std/containers/associative/map/map.cons/copy_all…
vinay-deshmukh ba628f0
Refactor libcxx/test/std/containers/associative/map/map.cons/copy.pas…
vinay-deshmukh e1f6851
Refactor libcxx/test/std/containers/associative/map/map.access/index_…
vinay-deshmukh f921550
Refactor libcxx/test/std/containers/associative/map/map.access/index_…
vinay-deshmukh 8b752b4
grammar
vinay-deshmukh 7315286
Pass the generic-hardening-mode-debug
vinay-deshmukh 32a7276
cf and remove non-ascii
vinay-deshmukh fa5d9d2
Remove hide abi
vinay-deshmukh b61c18e
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh 2ef6175
obsolete comment
vinay-deshmukh 8c78c45
Add FIXME
vinay-deshmukh 7616770
Apply cf
vinay-deshmukh a6c32e1
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh a6eb443
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh dcc1533
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh 28ed94b
cf
vinay-deshmukh 3bbf31d
add constexpr
vinay-deshmukh a209fb5
cf
vinay-deshmukh b083bea
Move ReleaseNotes to Implemented papers
vinay-deshmukh d1dfb7f
Fix order of annotations
vinay-deshmukh cdac01f
node-handle doc
vinay-deshmukh 0e10680
unrelated defaulting
vinay-deshmukh c7307a8
undo previous
vinay-deshmukh b556c84
unnecessary destructor for __tree_node_base
vinay-deshmukh 8ecbbb5
Remove constexpr from cpp03 code
vinay-deshmukh 2f2bec2
Unnecessary annotation on deleted function
vinay-deshmukh 2661937
simplify type_trait
vinay-deshmukh c28aac0
Allow runtime decision for __insert_unique_from_orphaned_node
vinay-deshmukh c448834
Allow runtime decision for __assign_value
vinay-deshmukh f732308
local cf
vinay-deshmukh d358aed
Simplify at.pass.cpp
vinay-deshmukh 986e713
use TEST_IS_CONSTANT_EVALUATED over libcxx function
vinay-deshmukh 5c84f1f
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh 839c373
Remove extra arm CI hack
vinay-deshmukh 80b2f06
missing space
vinay-deshmukh c5d73dd
Avoid creating a __tmp
vinay-deshmukh c4a0092
explicit copy
vinay-deshmukh d4a0430
Remove constexpr annotations from multimap
vinay-deshmukh 87d28d5
CI fix for clang <=20
vinay-deshmukh 3193936
Check clang<20 only for clang based compilers
vinay-deshmukh e93ea65
Fix apple-clang macro lookup
vinay-deshmukh b2ccf29
Fixme, not todo
vinay-deshmukh 29acf01
Updated FIXME
vinay-deshmukh 20a256c
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh 2e4f30b
and manual fixes, Merge remote-tracking branch 'upstream/main' into v…
vinay-deshmukh 9f931f5
Remove assert(test());
vinay-deshmukh bee52bf
clang-format?
vinay-deshmukh c493c71
Synopsis attach: // constexpr since C++26
vinay-deshmukh 3b772fd
Revert "Remove assert(test());"
vinay-deshmukh 5bba72f
Fix the sed script
vinay-deshmukh 57183b4
Merge remote-tracking branch 'upstream/main' into vinay-issue-128660-…
vinay-deshmukh f2a5a94
Add constexpr to the signature
vinay-deshmukh b4fed32
remove arm and freebsd from warning
vinay-deshmukh 66b4d6f
comments alignment
vinay-deshmukh 6258613
unnecessary comment
vinay-deshmukh e0e9f9f
remove the second //
vinay-deshmukh 69bb9d3
formatting redo
vinay-deshmukh adc2589
Add constexpr to test signatures
vinay-deshmukh e751289
add constexpr for insert_node_type and insert_node_type_hint
vinay-deshmukh 483a33b
remove releasenote from 22.rst
vinay-deshmukh 18c8d32
align spaces
vinay-deshmukh ecb88ef
more cleanup
vinay-deshmukh 0bcdb71
Change every static_cast to std::__static_fancy_pointer_cast in __tree
vinay-deshmukh 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
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
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.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
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:
llvm-project/libcxx/docs/Status/Cxx2cPapers.csv
Line 107 in f5ae102
and I originally added it here using this as a reference:
llvm-project/libcxx/docs/ReleaseNotes/21.rst
Line 51 in f5ae102
So perhaps should I just remove this line for this review?removed in 483a33b