Skip to content

Commit 7096687

Browse files
Add [[clang::lifetimebound]] to numerous functions in libc++ include headers
1 parent 1a18767 commit 7096687

26 files changed

+611
-611
lines changed

libcxx/include/__bit_reference

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -609,10 +609,10 @@ struct __bit_array {
609609
std::__construct_at(__word_ + __i, 0);
610610
}
611611
}
612-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator begin() {
612+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator begin() _LIBCPP_LIFETIMEBOUND {
613613
return iterator(pointer_traits<__storage_pointer>::pointer_to(__word_[0]), 0);
614614
}
615-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator end() {
615+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator end() _LIBCPP_LIFETIMEBOUND {
616616
return iterator(pointer_traits<__storage_pointer>::pointer_to(__word_[0]) + __size_ / __bits_per_word,
617617
static_cast<unsigned>(__size_ % __bits_per_word));
618618
}

libcxx/include/__expected/expected.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -714,15 +714,15 @@ class expected : private __expected_base<_Tp, _Err> {
714714

715715
template <class... _Args>
716716
requires is_nothrow_constructible_v<_Tp, _Args...>
717-
_LIBCPP_HIDE_FROM_ABI constexpr _Tp& emplace(_Args&&... __args) noexcept {
717+
_LIBCPP_HIDE_FROM_ABI constexpr _Tp& emplace(_Args&&... __args) noexcept _LIBCPP_LIFETIMEBOUND {
718718
this->__destroy();
719719
this->__construct(in_place, std::forward<_Args>(__args)...);
720720
return this->__val();
721721
}
722722

723723
template <class _Up, class... _Args>
724724
requires is_nothrow_constructible_v<_Tp, initializer_list<_Up>&, _Args...>
725-
_LIBCPP_HIDE_FROM_ABI constexpr _Tp& emplace(initializer_list<_Up> __il, _Args&&... __args) noexcept {
725+
_LIBCPP_HIDE_FROM_ABI constexpr _Tp& emplace(initializer_list<_Up> __il, _Args&&... __args) noexcept _LIBCPP_LIFETIMEBOUND {
726726
this->__destroy();
727727
this->__construct(in_place, __il, std::forward<_Args>(__args)...);
728728
return this->__val();

libcxx/include/__filesystem/path.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -668,7 +668,7 @@ class _LIBCPP_EXPORTED_FROM_ABI path {
668668
// native format observers
669669
_LIBCPP_HIDE_FROM_ABI const string_type& native() const noexcept { return __pn_; }
670670

671-
_LIBCPP_HIDE_FROM_ABI const value_type* c_str() const noexcept { return __pn_.c_str(); }
671+
_LIBCPP_HIDE_FROM_ABI const value_type* c_str() const noexcept _LIBCPP_LIFETIMEBOUND { return __pn_.c_str(); }
672672

673673
_LIBCPP_HIDE_FROM_ABI operator string_type() const { return __pn_; }
674674

libcxx/include/__flat_map/flat_map.h

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -510,31 +510,31 @@ class flat_map {
510510
}
511511

512512
// iterators
513-
_LIBCPP_HIDE_FROM_ABI iterator begin() noexcept {
513+
_LIBCPP_HIDE_FROM_ABI iterator begin() noexcept _LIBCPP_LIFETIMEBOUND {
514514
return iterator(__containers_.keys.begin(), __containers_.values.begin());
515515
}
516516

517-
_LIBCPP_HIDE_FROM_ABI const_iterator begin() const noexcept {
517+
_LIBCPP_HIDE_FROM_ABI const_iterator begin() const noexcept _LIBCPP_LIFETIMEBOUND {
518518
return const_iterator(__containers_.keys.begin(), __containers_.values.begin());
519519
}
520520

521-
_LIBCPP_HIDE_FROM_ABI iterator end() noexcept {
521+
_LIBCPP_HIDE_FROM_ABI iterator end() noexcept _LIBCPP_LIFETIMEBOUND {
522522
return iterator(__containers_.keys.end(), __containers_.values.end());
523523
}
524524

525-
_LIBCPP_HIDE_FROM_ABI const_iterator end() const noexcept {
525+
_LIBCPP_HIDE_FROM_ABI const_iterator end() const noexcept _LIBCPP_LIFETIMEBOUND {
526526
return const_iterator(__containers_.keys.end(), __containers_.values.end());
527527
}
528528

529-
_LIBCPP_HIDE_FROM_ABI reverse_iterator rbegin() noexcept { return reverse_iterator(end()); }
530-
_LIBCPP_HIDE_FROM_ABI const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); }
531-
_LIBCPP_HIDE_FROM_ABI reverse_iterator rend() noexcept { return reverse_iterator(begin()); }
532-
_LIBCPP_HIDE_FROM_ABI const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); }
529+
_LIBCPP_HIDE_FROM_ABI reverse_iterator rbegin() noexcept _LIBCPP_LIFETIMEBOUND { return reverse_iterator(end()); }
530+
_LIBCPP_HIDE_FROM_ABI const_reverse_iterator rbegin() const noexcept _LIBCPP_LIFETIMEBOUND { return const_reverse_iterator(end()); }
531+
_LIBCPP_HIDE_FROM_ABI reverse_iterator rend() noexcept _LIBCPP_LIFETIMEBOUND { return reverse_iterator(begin()); }
532+
_LIBCPP_HIDE_FROM_ABI const_reverse_iterator rend() const noexcept _LIBCPP_LIFETIMEBOUND { return const_reverse_iterator(begin()); }
533533

534-
_LIBCPP_HIDE_FROM_ABI const_iterator cbegin() const noexcept { return begin(); }
535-
_LIBCPP_HIDE_FROM_ABI const_iterator cend() const noexcept { return end(); }
536-
_LIBCPP_HIDE_FROM_ABI const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); }
537-
_LIBCPP_HIDE_FROM_ABI const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); }
534+
_LIBCPP_HIDE_FROM_ABI const_iterator cbegin() const noexcept _LIBCPP_LIFETIMEBOUND { return begin(); }
535+
_LIBCPP_HIDE_FROM_ABI const_iterator cend() const noexcept _LIBCPP_LIFETIMEBOUND { return end(); }
536+
_LIBCPP_HIDE_FROM_ABI const_reverse_iterator crbegin() const noexcept _LIBCPP_LIFETIMEBOUND { return const_reverse_iterator(end()); }
537+
_LIBCPP_HIDE_FROM_ABI const_reverse_iterator crend() const noexcept _LIBCPP_LIFETIMEBOUND { return const_reverse_iterator(begin()); }
538538

539539
// [flat.map.capacity], capacity
540540
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI bool empty() const noexcept { return __containers_.keys.empty(); }
@@ -565,15 +565,15 @@ class flat_map {
565565
return try_emplace(std::forward<_Kp>(__x)).first->second;
566566
}
567567

568-
_LIBCPP_HIDE_FROM_ABI mapped_type& at(const key_type& __x) {
568+
_LIBCPP_HIDE_FROM_ABI mapped_type& at(const key_type& __x) _LIBCPP_LIFETIMEBOUND {
569569
auto __it = find(__x);
570570
if (__it == end()) {
571571
std::__throw_out_of_range("flat_map::at(const key_type&): Key does not exist");
572572
}
573573
return __it->second;
574574
}
575575

576-
_LIBCPP_HIDE_FROM_ABI const mapped_type& at(const key_type& __x) const {
576+
_LIBCPP_HIDE_FROM_ABI const mapped_type& at(const key_type& __x) const _LIBCPP_LIFETIMEBOUND {
577577
auto __it = find(__x);
578578
if (__it == end()) {
579579
std::__throw_out_of_range("flat_map::at(const key_type&) const: Key does not exist");
@@ -583,7 +583,7 @@ class flat_map {
583583

584584
template <class _Kp>
585585
requires __is_compare_transparent
586-
_LIBCPP_HIDE_FROM_ABI mapped_type& at(const _Kp& __x) {
586+
_LIBCPP_HIDE_FROM_ABI mapped_type& at(const _Kp& __x) _LIBCPP_LIFETIMEBOUND {
587587
auto __it = find(__x);
588588
if (__it == end()) {
589589
std::__throw_out_of_range("flat_map::at(const K&): Key does not exist");
@@ -593,7 +593,7 @@ class flat_map {
593593

594594
template <class _Kp>
595595
requires __is_compare_transparent
596-
_LIBCPP_HIDE_FROM_ABI const mapped_type& at(const _Kp& __x) const {
596+
_LIBCPP_HIDE_FROM_ABI const mapped_type& at(const _Kp& __x) const _LIBCPP_LIFETIMEBOUND {
597597
auto __it = find(__x);
598598
if (__it == end()) {
599599
std::__throw_out_of_range("flat_map::at(const K&) const: Key does not exist");
@@ -604,39 +604,39 @@ class flat_map {
604604
// [flat.map.modifiers], modifiers
605605
template <class... _Args>
606606
requires is_constructible_v<pair<key_type, mapped_type>, _Args...>
607-
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> emplace(_Args&&... __args) {
607+
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> emplace(_Args&&... __args) _LIBCPP_LIFETIMEBOUND {
608608
std::pair<key_type, mapped_type> __pair(std::forward<_Args>(__args)...);
609609
return __try_emplace(std::move(__pair.first), std::move(__pair.second));
610610
}
611611

612612
template <class... _Args>
613613
requires is_constructible_v<pair<key_type, mapped_type>, _Args...>
614-
_LIBCPP_HIDE_FROM_ABI iterator emplace_hint(const_iterator __hint, _Args&&... __args) {
614+
_LIBCPP_HIDE_FROM_ABI iterator emplace_hint(const_iterator __hint, _Args&&... __args) _LIBCPP_LIFETIMEBOUND {
615615
std::pair<key_type, mapped_type> __pair(std::forward<_Args>(__args)...);
616616
return __try_emplace_hint(__hint, std::move(__pair.first), std::move(__pair.second)).first;
617617
}
618618

619-
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert(const value_type& __x) { return emplace(__x); }
619+
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert(const value_type& __x) _LIBCPP_LIFETIMEBOUND { return emplace(__x); }
620620

621-
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert(value_type&& __x) { return emplace(std::move(__x)); }
621+
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert(value_type&& __x) _LIBCPP_LIFETIMEBOUND { return emplace(std::move(__x)); }
622622

623-
_LIBCPP_HIDE_FROM_ABI iterator insert(const_iterator __hint, const value_type& __x) {
623+
_LIBCPP_HIDE_FROM_ABI iterator insert(const_iterator __hint, const value_type& __x) _LIBCPP_LIFETIMEBOUND {
624624
return emplace_hint(__hint, __x);
625625
}
626626

627-
_LIBCPP_HIDE_FROM_ABI iterator insert(const_iterator __hint, value_type&& __x) {
627+
_LIBCPP_HIDE_FROM_ABI iterator insert(const_iterator __hint, value_type&& __x) _LIBCPP_LIFETIMEBOUND {
628628
return emplace_hint(__hint, std::move(__x));
629629
}
630630

631631
template <class _Pp>
632632
requires is_constructible_v<pair<key_type, mapped_type>, _Pp>
633-
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert(_Pp&& __x) {
633+
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert(_Pp&& __x) _LIBCPP_LIFETIMEBOUND {
634634
return emplace(std::forward<_Pp>(__x));
635635
}
636636

637637
template <class _Pp>
638638
requires is_constructible_v<pair<key_type, mapped_type>, _Pp>
639-
_LIBCPP_HIDE_FROM_ABI iterator insert(const_iterator __hint, _Pp&& __x) {
639+
_LIBCPP_HIDE_FROM_ABI iterator insert(const_iterator __hint, _Pp&& __x) _LIBCPP_LIFETIMEBOUND {
640640
return emplace_hint(__hint, std::forward<_Pp>(__x));
641641
}
642642

@@ -732,47 +732,47 @@ class flat_map {
732732

733733
template <class _Mapped>
734734
requires is_assignable_v<mapped_type&, _Mapped> && is_constructible_v<mapped_type, _Mapped>
735-
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert_or_assign(const key_type& __key, _Mapped&& __obj) {
735+
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert_or_assign(const key_type& __key, _Mapped&& __obj) _LIBCPP_LIFETIMEBOUND {
736736
return __insert_or_assign(__key, std::forward<_Mapped>(__obj));
737737
}
738738

739739
template <class _Mapped>
740740
requires is_assignable_v<mapped_type&, _Mapped> && is_constructible_v<mapped_type, _Mapped>
741-
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert_or_assign(key_type&& __key, _Mapped&& __obj) {
741+
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert_or_assign(key_type&& __key, _Mapped&& __obj) _LIBCPP_LIFETIMEBOUND {
742742
return __insert_or_assign(std::move(__key), std::forward<_Mapped>(__obj));
743743
}
744744

745745
template <class _Kp, class _Mapped>
746746
requires __is_compare_transparent && is_constructible_v<key_type, _Kp> && is_assignable_v<mapped_type&, _Mapped> &&
747747
is_constructible_v<mapped_type, _Mapped>
748-
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert_or_assign(_Kp&& __key, _Mapped&& __obj) {
748+
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert_or_assign(_Kp&& __key, _Mapped&& __obj) _LIBCPP_LIFETIMEBOUND {
749749
return __insert_or_assign(std::forward<_Kp>(__key), std::forward<_Mapped>(__obj));
750750
}
751751

752752
template <class _Mapped>
753753
requires is_assignable_v<mapped_type&, _Mapped> && is_constructible_v<mapped_type, _Mapped>
754-
_LIBCPP_HIDE_FROM_ABI iterator insert_or_assign(const_iterator __hint, const key_type& __key, _Mapped&& __obj) {
754+
_LIBCPP_HIDE_FROM_ABI iterator insert_or_assign(const_iterator __hint, const key_type& __key, _Mapped&& __obj) _LIBCPP_LIFETIMEBOUND {
755755
return __insert_or_assign(__hint, __key, std::forward<_Mapped>(__obj));
756756
}
757757

758758
template <class _Mapped>
759759
requires is_assignable_v<mapped_type&, _Mapped> && is_constructible_v<mapped_type, _Mapped>
760-
_LIBCPP_HIDE_FROM_ABI iterator insert_or_assign(const_iterator __hint, key_type&& __key, _Mapped&& __obj) {
760+
_LIBCPP_HIDE_FROM_ABI iterator insert_or_assign(const_iterator __hint, key_type&& __key, _Mapped&& __obj) _LIBCPP_LIFETIMEBOUND {
761761
return __insert_or_assign(__hint, std::move(__key), std::forward<_Mapped>(__obj));
762762
}
763763

764764
template <class _Kp, class _Mapped>
765765
requires __is_compare_transparent && is_constructible_v<key_type, _Kp> && is_assignable_v<mapped_type&, _Mapped> &&
766766
is_constructible_v<mapped_type, _Mapped>
767-
_LIBCPP_HIDE_FROM_ABI iterator insert_or_assign(const_iterator __hint, _Kp&& __key, _Mapped&& __obj) {
767+
_LIBCPP_HIDE_FROM_ABI iterator insert_or_assign(const_iterator __hint, _Kp&& __key, _Mapped&& __obj) _LIBCPP_LIFETIMEBOUND {
768768
return __insert_or_assign(__hint, std::forward<_Kp>(__key), std::forward<_Mapped>(__obj));
769769
}
770770

771-
_LIBCPP_HIDE_FROM_ABI iterator erase(iterator __position) {
771+
_LIBCPP_HIDE_FROM_ABI iterator erase(iterator __position) _LIBCPP_LIFETIMEBOUND {
772772
return __erase(__position.__key_iter_, __position.__mapped_iter_);
773773
}
774774

775-
_LIBCPP_HIDE_FROM_ABI iterator erase(const_iterator __position) {
775+
_LIBCPP_HIDE_FROM_ABI iterator erase(const_iterator __position) _LIBCPP_LIFETIMEBOUND {
776776
return __erase(__position.__key_iter_, __position.__mapped_iter_);
777777
}
778778

@@ -795,7 +795,7 @@ class flat_map {
795795
return __res;
796796
}
797797

798-
_LIBCPP_HIDE_FROM_ABI iterator erase(const_iterator __first, const_iterator __last) {
798+
_LIBCPP_HIDE_FROM_ABI iterator erase(const_iterator __first, const_iterator __last) _LIBCPP_LIFETIMEBOUND {
799799
auto __on_failure = std::__make_exception_guard([&]() noexcept { clear() /* noexcept */; });
800800
auto __key_it = __containers_.keys.erase(__first.__key_iter_, __last.__key_iter_);
801801
auto __mapped_it = __containers_.values.erase(__first.__mapped_iter_, __last.__mapped_iter_);
@@ -826,19 +826,19 @@ class flat_map {
826826
_LIBCPP_HIDE_FROM_ABI const mapped_container_type& values() const noexcept { return __containers_.values; }
827827

828828
// map operations
829-
_LIBCPP_HIDE_FROM_ABI iterator find(const key_type& __x) { return __find_impl(*this, __x); }
829+
_LIBCPP_HIDE_FROM_ABI iterator find(const key_type& __x) _LIBCPP_LIFETIMEBOUND { return __find_impl(*this, __x); }
830830

831-
_LIBCPP_HIDE_FROM_ABI const_iterator find(const key_type& __x) const { return __find_impl(*this, __x); }
831+
_LIBCPP_HIDE_FROM_ABI const_iterator find(const key_type& __x) const _LIBCPP_LIFETIMEBOUND { return __find_impl(*this, __x); }
832832

833833
template <class _Kp>
834834
requires __is_compare_transparent
835-
_LIBCPP_HIDE_FROM_ABI iterator find(const _Kp& __x) {
835+
_LIBCPP_HIDE_FROM_ABI iterator find(const _Kp& __x) _LIBCPP_LIFETIMEBOUND {
836836
return __find_impl(*this, __x);
837837
}
838838

839839
template <class _Kp>
840840
requires __is_compare_transparent
841-
_LIBCPP_HIDE_FROM_ABI const_iterator find(const _Kp& __x) const {
841+
_LIBCPP_HIDE_FROM_ABI const_iterator find(const _Kp& __x) const _LIBCPP_LIFETIMEBOUND {
842842
return __find_impl(*this, __x);
843843
}
844844

@@ -858,58 +858,58 @@ class flat_map {
858858
return find(__x) != end();
859859
}
860860

861-
_LIBCPP_HIDE_FROM_ABI iterator lower_bound(const key_type& __x) { return __lower_bound<iterator>(*this, __x); }
861+
_LIBCPP_HIDE_FROM_ABI iterator lower_bound(const key_type& __x) _LIBCPP_LIFETIMEBOUND { return __lower_bound<iterator>(*this, __x); }
862862

863-
_LIBCPP_HIDE_FROM_ABI const_iterator lower_bound(const key_type& __x) const {
863+
_LIBCPP_HIDE_FROM_ABI const_iterator lower_bound(const key_type& __x) const _LIBCPP_LIFETIMEBOUND {
864864
return __lower_bound<const_iterator>(*this, __x);
865865
}
866866

867867
template <class _Kp>
868868
requires __is_compare_transparent
869-
_LIBCPP_HIDE_FROM_ABI iterator lower_bound(const _Kp& __x) {
869+
_LIBCPP_HIDE_FROM_ABI iterator lower_bound(const _Kp& __x) _LIBCPP_LIFETIMEBOUND {
870870
return __lower_bound<iterator>(*this, __x);
871871
}
872872

873873
template <class _Kp>
874874
requires __is_compare_transparent
875-
_LIBCPP_HIDE_FROM_ABI const_iterator lower_bound(const _Kp& __x) const {
875+
_LIBCPP_HIDE_FROM_ABI const_iterator lower_bound(const _Kp& __x) const _LIBCPP_LIFETIMEBOUND {
876876
return __lower_bound<const_iterator>(*this, __x);
877877
}
878878

879-
_LIBCPP_HIDE_FROM_ABI iterator upper_bound(const key_type& __x) { return __upper_bound<iterator>(*this, __x); }
879+
_LIBCPP_HIDE_FROM_ABI iterator upper_bound(const key_type& __x) _LIBCPP_LIFETIMEBOUND { return __upper_bound<iterator>(*this, __x); }
880880

881-
_LIBCPP_HIDE_FROM_ABI const_iterator upper_bound(const key_type& __x) const {
881+
_LIBCPP_HIDE_FROM_ABI const_iterator upper_bound(const key_type& __x) const _LIBCPP_LIFETIMEBOUND {
882882
return __upper_bound<const_iterator>(*this, __x);
883883
}
884884

885885
template <class _Kp>
886886
requires __is_compare_transparent
887-
_LIBCPP_HIDE_FROM_ABI iterator upper_bound(const _Kp& __x) {
887+
_LIBCPP_HIDE_FROM_ABI iterator upper_bound(const _Kp& __x) _LIBCPP_LIFETIMEBOUND {
888888
return __upper_bound<iterator>(*this, __x);
889889
}
890890

891891
template <class _Kp>
892892
requires __is_compare_transparent
893-
_LIBCPP_HIDE_FROM_ABI const_iterator upper_bound(const _Kp& __x) const {
893+
_LIBCPP_HIDE_FROM_ABI const_iterator upper_bound(const _Kp& __x) const _LIBCPP_LIFETIMEBOUND {
894894
return __upper_bound<const_iterator>(*this, __x);
895895
}
896896

897-
_LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range(const key_type& __x) {
897+
_LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range(const key_type& __x) _LIBCPP_LIFETIMEBOUND {
898898
return __equal_range_impl(*this, __x);
899899
}
900900

901-
_LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range(const key_type& __x) const {
901+
_LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range(const key_type& __x) const _LIBCPP_LIFETIMEBOUND {
902902
return __equal_range_impl(*this, __x);
903903
}
904904

905905
template <class _Kp>
906906
requires __is_compare_transparent
907-
_LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range(const _Kp& __x) {
907+
_LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range(const _Kp& __x) _LIBCPP_LIFETIMEBOUND {
908908
return __equal_range_impl(*this, __x);
909909
}
910910
template <class _Kp>
911911
requires __is_compare_transparent
912-
_LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range(const _Kp& __x) const {
912+
_LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range(const _Kp& __x) const _LIBCPP_LIFETIMEBOUND {
913913
return __equal_range_impl(*this, __x);
914914
}
915915

libcxx/include/__format/format_parse_context.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ class _LIBCPP_TEMPLATE_VIS basic_format_parse_context {
4141
basic_format_parse_context(const basic_format_parse_context&) = delete;
4242
basic_format_parse_context& operator=(const basic_format_parse_context&) = delete;
4343

44-
_LIBCPP_HIDE_FROM_ABI constexpr const_iterator begin() const noexcept { return __begin_; }
45-
_LIBCPP_HIDE_FROM_ABI constexpr const_iterator end() const noexcept { return __end_; }
44+
_LIBCPP_HIDE_FROM_ABI constexpr const_iterator begin() const noexcept _LIBCPP_LIFETIMEBOUND { return __begin_; }
45+
_LIBCPP_HIDE_FROM_ABI constexpr const_iterator end() const noexcept _LIBCPP_LIFETIMEBOUND { return __end_; }
4646
_LIBCPP_HIDE_FROM_ABI constexpr void advance_to(const_iterator __it) { __begin_ = __it; }
4747

4848
_LIBCPP_HIDE_FROM_ABI constexpr size_t next_arg_id() {

libcxx/include/__format/formatter_floating_point.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,8 @@ class _LIBCPP_TEMPLATE_VIS __float_buffer {
183183
_LIBCPP_HIDE_FROM_ABI __float_buffer(const __float_buffer&) = delete;
184184
_LIBCPP_HIDE_FROM_ABI __float_buffer& operator=(const __float_buffer&) = delete;
185185

186-
_LIBCPP_HIDE_FROM_ABI char* begin() const { return __begin_; }
187-
_LIBCPP_HIDE_FROM_ABI char* end() const { return __begin_ + __size_; }
186+
_LIBCPP_HIDE_FROM_ABI char* begin() const _LIBCPP_LIFETIMEBOUND { return __begin_; }
187+
_LIBCPP_HIDE_FROM_ABI char* end() const _LIBCPP_LIFETIMEBOUND { return __begin_ + __size_; }
188188

189189
_LIBCPP_HIDE_FROM_ABI int __precision() const { return __precision_; }
190190
_LIBCPP_HIDE_FROM_ABI int __num_trailing_zeros() const { return __num_trailing_zeros_; }

0 commit comments

Comments
 (0)