Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
b03c708
Prepare the constexpr machinery needed for string and vector
miscco Dec 21, 2020
0d8082a
Properly initialize
miscco Jan 11, 2021
a3add31
Merge branch 'master' into constexpr_machinery
miscco Jan 18, 2021
0ca2b48
Use _CONSTEXPR20_CONTAINER
miscco Jan 18, 2021
4135658
Address review comments
miscco Jan 21, 2021
9b9c2bc
Merge branch 'master' into constexpr_machinery
miscco Jan 22, 2021
3000309
Unblock __cpp_lib_constexpr_dynamic_alloc for all compilers that supp…
miscco Jan 22, 2021
593de17
Unskip some tests
miscco Jan 22, 2021
5e56275
Consistently use __cpp_lib_constexpr_dynamic_alloc
miscco Jan 22, 2021
ed8c2dc
Properly guard ranges in tests
miscco Jan 22, 2021
5d393af
Disable portions of P0784 test for EDG due to bugs
mnatsuhara Jan 27, 2021
b3140a4
Try to apply workaround
miscco Jan 29, 2021
09b3acf
[P0980R1] Implement constexpr string
miscco Jan 29, 2021
c70ab51
Merge branch 'main' into gh1502
mnatsuhara Feb 8, 2021
5908b20
EDG workaround for nonlit ret type
mnatsuhara Feb 9, 2021
f7266e1
workaround for filesystem ICE
mnatsuhara Feb 9, 2021
230f056
Disable portions of test according to current bugs
mnatsuhara Feb 10, 2021
ce625ed
add workarounds for DevCom-1331017
mnatsuhara Feb 10, 2021
1cee692
fix comment for bug fix
mnatsuhara Feb 10, 2021
01ed70d
Skip affected libcxx tests with recorded bugs
mnatsuhara Feb 11, 2021
1fe5aee
Oops - missed one
mnatsuhara Feb 11, 2021
9bf3514
Lets see what happens without concepts
miscco Feb 14, 2021
2fa8114
Use latest...
miscco Feb 14, 2021
1f4075a
Try to unblock MSVC
miscco Feb 15, 2021
1047d74
add feature test macro test, fix comment
mnatsuhara Feb 16, 2021
3754d01
re-enable _STL_VERIFY and use __cpp_lib_constexpr_string for basic_st…
mnatsuhara Feb 16, 2021
098b9f8
fix regression in comments
mnatsuhara Feb 16, 2021
99ea643
remove extra declaration
mnatsuhara Feb 17, 2021
40e6b43
address some review comments
mnatsuhara Feb 17, 2021
861d262
disable tests for EDG because bugs :(
mnatsuhara Feb 17, 2021
e3f0ac2
Merge branch 'main' into gh1502
mnatsuhara Feb 17, 2021
5a16936
re-enable fixes from review comments
mnatsuhara Feb 18, 2021
58d345d
Use MSVC_INTERNAL_TESTING throughout added test
mnatsuhara Feb 18, 2021
7ffe8b9
Disable offending portions of moving allocators test
mnatsuhara Feb 19, 2021
543ebc8
Merge branch 'main' into gh1502
mnatsuhara Feb 19, 2021
9a82181
misc code review changes
mnatsuhara Feb 20, 2021
9bd986f
avoid branch duplication
mnatsuhara Feb 20, 2021
643f7a2
logic is hard, add parens around max call
mnatsuhara Feb 20, 2021
8a79061
_Take_contents restructuring
mnatsuhara Feb 20, 2021
9a8f3d1
Restore _Construct_lv_contents and add comment, constexpr pathway
mnatsuhara Feb 20, 2021
b2d0525
restructure _Swap_data
mnatsuhara Feb 20, 2021
cc4acdb
remove constexpr paths, covered by _BUF_SIZE <= _Old_capacity
mnatsuhara Feb 20, 2021
043aab9
Add minimum size in shrink_to_fit
mnatsuhara Feb 20, 2021
98dba89
Remove constexpr pathway, _Large_string_engaged() handles it
mnatsuhara Feb 20, 2021
590aec4
Workaround clang bug and fix bug in `_Tidy_deallocate`
miscco Feb 22, 2021
1b63fcb
Address review comments
mnatsuhara Feb 22, 2021
3537f61
remove unnecessary static, std::, blank line
mnatsuhara Feb 23, 2021
a20b153
The members of `_Iterator_base12` must be mutable
miscco Feb 23, 2021
7acf11b
test reserve/shrink_to_fit more
mnatsuhara Feb 23, 2021
74ddcfb
Add more test coverage as requested
mnatsuhara Feb 23, 2021
fed56b9
Merge branch 'string_constexpr' of https://github.com/miscco/STL into…
mnatsuhara Feb 23, 2021
ba7b560
update TRANSITION comment with bug number
mnatsuhara Feb 25, 2021
7449254
clarify comment, use construct_at in other assign
mnatsuhara Feb 25, 2021
0ee4631
Merge branch 'main' into gh1502, apply _CONSTEXPR20_CONTAINER to <=>
mnatsuhara Feb 25, 2021
c880343
VSO-1270432 was fixed, so add defined(MSVC_INTERNAL_TESTING).
StephanTLavavej Feb 25, 2021
a647e22
Preserve Clang coverage in VSO_0102478_moving_allocators.
StephanTLavavej Feb 25, 2021
e72b232
Fix arrow comments, extract _CONSTEXPR20_STRING_LITERALS for clarity.
StephanTLavavej Feb 25, 2021
c8240ea
Comment changes.
StephanTLavavej Feb 25, 2021
801bd61
Debug perf: Extract test in _Char_traits::assign.
StephanTLavavej Feb 25, 2021
a8d0232
Avoid dead code, reduce verbosity with _My_data/_Right_data.
StephanTLavavej Feb 25, 2021
eae98c7
Move "can't shrink from small mode" into runtime block.
StephanTLavavej Feb 25, 2021
8bac194
Remove _CONSTEXPR20_CONTAINER from _Release_to_buffer.
StephanTLavavej Feb 25, 2021
3949807
Remove _CONSTEXPR20_CONTAINER from small-mode functions.
StephanTLavavej Feb 25, 2021
9381328
For consistency, extract _My_data in _Tidy_init().
StephanTLavavej Feb 25, 2021
7591743
In _Tidy_deallocate(), set _Mysize/_Myres to zero.
StephanTLavavej Feb 25, 2021
21feb8d
xmemory: Work around VSO-1284799 with _Fake_alloc.
StephanTLavavej Feb 26, 2021
3bd03ec
P0980R1_constexpr_strings: Fix type mismatch.
StephanTLavavej Feb 25, 2021
70e76e3
P0980R1_constexpr_strings: Fix asserts/static_asserts.
StephanTLavavej Feb 25, 2021
4f6e6de
P0980R1_constexpr_strings: Remove stray 's' in comment.
StephanTLavavej Feb 26, 2021
eb692e9
P0980R1_constexpr_strings: Include more headers.
StephanTLavavej Feb 26, 2021
d6953d0
P0980R1_constexpr_strings: Drop default template args.
StephanTLavavej Feb 26, 2021
529b5a9
P0980R1_constexpr_strings: Test default_constructed.empty().
StephanTLavavej Feb 26, 2021
53cd9c1
P0980R1_constexpr_strings: Examine copy_assigned's state.
StephanTLavavej Feb 26, 2021
4d31310
P0980R1_constexpr_strings: Test assignment to non-empty.
StephanTLavavej Feb 26, 2021
9f12a89
P0980R1_constexpr_strings: Style: use braces.
StephanTLavavej Feb 26, 2021
a6181b9
P0980R1_constexpr_strings: Rename variables.
StephanTLavavej Feb 26, 2021
4f22c60
P0980R1_constexpr_strings: Test all UDL types.
StephanTLavavej Feb 26, 2021
40d5869
P0980R1_constexpr_strings: Use 'b' instead of 47 for elements.
StephanTLavavej Feb 26, 2021
ef85d83
P0980R1_constexpr_strings: Test container/iterator spaceships.
StephanTLavavej Feb 26, 2021
eeed38d
P0980R1_constexpr_strings: Consistently use CharType{'x'}.
StephanTLavavej Feb 26, 2021
42eecfd
Merge branch 'main' into string_constexpr
StephanTLavavej Feb 26, 2021
16aa653
Perma-workaround VSO-1285539 EDG ICE in VSO_0102478_moving_allocators.
StephanTLavavej Feb 26, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 16 additions & 8 deletions stl/inc/vector
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,8 @@ public:

_NODISCARD _CONSTEXPR20_CONTAINER _Vector_const_iterator operator+(const difference_type _Off) const noexcept {
_Vector_const_iterator _Tmp = *this;
return _Tmp += _Off;
_Tmp += _Off; // TRANSITION, LLVM-49342
return _Tmp;
}

_CONSTEXPR20_CONTAINER _Vector_const_iterator& operator-=(const difference_type _Off) noexcept {
Expand All @@ -135,7 +136,8 @@ public:

_NODISCARD _CONSTEXPR20_CONTAINER _Vector_const_iterator operator-(const difference_type _Off) const noexcept {
_Vector_const_iterator _Tmp = *this;
return _Tmp -= _Off;
_Tmp -= _Off; // TRANSITION, LLVM-49342
return _Tmp;
}

_NODISCARD _CONSTEXPR20_CONTAINER difference_type operator-(const _Vector_const_iterator& _Right) const noexcept {
Expand Down Expand Up @@ -307,7 +309,8 @@ public:

_NODISCARD _CONSTEXPR20_CONTAINER _Vector_iterator operator+(const difference_type _Off) const noexcept {
_Vector_iterator _Tmp = *this;
return _Tmp += _Off;
_Tmp += _Off; // TRANSITION, LLVM-49342
return _Tmp;
}

_CONSTEXPR20_CONTAINER _Vector_iterator& operator-=(const difference_type _Off) noexcept {
Expand All @@ -319,7 +322,8 @@ public:

_NODISCARD _CONSTEXPR20_CONTAINER _Vector_iterator operator-(const difference_type _Off) const noexcept {
_Vector_iterator _Tmp = *this;
return _Tmp -= _Off;
_Tmp -= _Off; // TRANSITION, LLVM-49342
return _Tmp;
}

_NODISCARD _CONSTEXPR20_CONTAINER reference operator[](const difference_type _Off) const noexcept {
Expand Down Expand Up @@ -2185,7 +2189,8 @@ public:

_NODISCARD _CONSTEXPR20_CONTAINER _Vb_const_iterator operator+(const difference_type _Off) const noexcept {
_Vb_const_iterator _Tmp = *this;
return _Tmp += _Off;
_Tmp += _Off; // TRANSITION, LLVM-49342
return _Tmp;
}

_CONSTEXPR20_CONTAINER _Vb_const_iterator& operator-=(const difference_type _Off) noexcept {
Expand All @@ -2194,7 +2199,8 @@ public:

_NODISCARD _CONSTEXPR20_CONTAINER _Vb_const_iterator operator-(const difference_type _Off) const noexcept {
_Vb_const_iterator _Tmp = *this;
return _Tmp -= _Off;
_Tmp -= _Off; // TRANSITION, LLVM-49342
return _Tmp;
}

_NODISCARD _CONSTEXPR20_CONTAINER difference_type operator-(const _Vb_const_iterator& _Right) const noexcept {
Expand Down Expand Up @@ -2363,7 +2369,8 @@ public:

_NODISCARD _CONSTEXPR20_CONTAINER _Vb_iterator operator+(const difference_type _Off) const noexcept {
_Vb_iterator _Tmp = *this;
return _Tmp += _Off;
_Tmp += _Off; // TRANSITION, LLVM-49342
return _Tmp;
}

_CONSTEXPR20_CONTAINER _Vb_iterator& operator-=(const difference_type _Off) noexcept {
Expand All @@ -2375,7 +2382,8 @@ public:

_NODISCARD _CONSTEXPR20_CONTAINER _Vb_iterator operator-(const difference_type _Off) const noexcept {
_Vb_iterator _Tmp = *this;
return _Tmp -= _Off;
_Tmp -= _Off; // TRANSITION, LLVM-49342
return _Tmp;
}

_NODISCARD _CONSTEXPR20_CONTAINER reference operator[](const difference_type _Off) const noexcept {
Expand Down
7 changes: 4 additions & 3 deletions stl/inc/xmemory
Original file line number Diff line number Diff line change
Expand Up @@ -1178,8 +1178,8 @@ public:

static constexpr bool _Unwrap_when_unverified = _ITERATOR_DEBUG_LEVEL == 0;

_Container_proxy* _Myproxy = nullptr;
_Iterator_base12* _Mynextiter = nullptr;
mutable _Container_proxy* _Myproxy = nullptr;
mutable _Iterator_base12* _Mynextiter = nullptr;

#if _ITERATOR_DEBUG_LEVEL == 2
private:
Expand Down Expand Up @@ -1338,7 +1338,8 @@ struct _Container_proxy_ptr12 : _Basic_container_proxy_ptr12 {
};

#if _ITERATOR_DEBUG_LEVEL == 0
#define _GET_PROXY_ALLOCATOR(_Alty, _Al) _Fake_allocator()
_INLINE_VAR constexpr _Fake_allocator _Fake_alloc{};
#define _GET_PROXY_ALLOCATOR(_Alty, _Al) _Fake_alloc // TRANSITION, VSO-1284799, should be _Fake_allocator{}
template <class _Alloc>
using _Container_proxy_ptr = _Fake_proxy_ptr_impl;
#else // _ITERATOR_DEBUG_LEVEL == 0
Expand Down
Loading