[libcxx-commits] [libcxx] Avoid using __local as it collides with clc++ keyword (PR #154020)
via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Aug 17 07:14:41 PDT 2025
https://github.com/piotrrak created https://github.com/llvm/llvm-project/pull/154020
None
>From 540c2545792ef7fe81a1c69011617e1a727730d7 Mon Sep 17 00:00:00 2001
From: Piotr Rak <piotr.rak at gmail.com>
Date: Fri, 15 Aug 2025 21:56:50 +0200
Subject: [PATCH] Avoid using __local as it collides with clc++ keyword
---
libcxx/include/__algorithm/copy.h | 2 +-
libcxx/include/__algorithm/copy_backward.h | 8 ++--
libcxx/include/__algorithm/find_segment_if.h | 6 +--
.../include/__algorithm/for_each_n_segment.h | 2 +-
libcxx/include/__algorithm/for_each_segment.h | 6 +--
libcxx/include/__algorithm/move.h | 2 +-
libcxx/include/__algorithm/move_backward.h | 8 ++--
libcxx/include/__cxx03/__algorithm/copy.h | 2 +-
.../__cxx03/__algorithm/copy_backward.h | 8 ++--
.../__cxx03/__algorithm/find_segment_if.h | 6 +--
.../__cxx03/__algorithm/for_each_segment.h | 6 +--
libcxx/include/__cxx03/__algorithm/move.h | 2 +-
.../__cxx03/__algorithm/move_backward.h | 8 ++--
.../__cxx03/__iterator/segmented_iterator.h | 4 +-
libcxx/include/__cxx03/deque | 8 ++--
.../include/__iterator/segmented_iterator.h | 4 +-
libcxx/include/__ranges/join_view.h | 2 +-
libcxx/include/deque | 8 ++--
.../experimental/include/tzdb/types_private.h | 6 +--
libcxx/src/experimental/time_zone.cpp | 20 +++++-----
libcxx/src/experimental/tzdb.cpp | 8 ++--
.../time.zone/time.zone.db/rules.pass.cpp | 20 +++++-----
.../time.zone/time.zone.db/zones.pass.cpp | 40 +++++++++----------
23 files changed, 93 insertions(+), 93 deletions(-)
diff --git a/libcxx/include/__algorithm/copy.h b/libcxx/include/__algorithm/copy.h
index 63877281bf9b2..a3a14cc6cad16 100644
--- a/libcxx/include/__algorithm/copy.h
+++ b/libcxx/include/__algorithm/copy.h
@@ -202,7 +202,7 @@ struct __copy_impl {
if (__first == __last)
return std::make_pair(std::move(__first), std::move(__result));
- auto __local_first = _Traits::__local(__result);
+ auto __local_first = _Traits::__local_it(__result);
auto __segment_iterator = _Traits::__segment(__result);
while (true) {
auto __local_last = _Traits::__end(__segment_iterator);
diff --git a/libcxx/include/__algorithm/copy_backward.h b/libcxx/include/__algorithm/copy_backward.h
index 807c64b55a8f6..da9b91c9de602 100644
--- a/libcxx/include/__algorithm/copy_backward.h
+++ b/libcxx/include/__algorithm/copy_backward.h
@@ -178,12 +178,12 @@ struct __copy_backward_impl {
auto __slast = _Traits::__segment(__last);
if (__sfirst == __slast) {
auto __iters =
- std::__copy_backward<_AlgPolicy>(_Traits::__local(__first), _Traits::__local(__last), std::move(__result));
+ std::__copy_backward<_AlgPolicy>(_Traits::__local_it(__first), _Traits::__local_it(__last), std::move(__result));
return std::make_pair(__last, __iters.second);
}
__result =
- std::__copy_backward<_AlgPolicy>(_Traits::__begin(__slast), _Traits::__local(__last), std::move(__result))
+ std::__copy_backward<_AlgPolicy>(_Traits::__begin(__slast), _Traits::__local_it(__last), std::move(__result))
.second;
--__slast;
while (__sfirst != __slast) {
@@ -192,7 +192,7 @@ struct __copy_backward_impl {
.second;
--__slast;
}
- __result = std::__copy_backward<_AlgPolicy>(_Traits::__local(__first), _Traits::__end(__slast), std::move(__result))
+ __result = std::__copy_backward<_AlgPolicy>(_Traits::__local_it(__first), _Traits::__end(__slast), std::move(__result))
.second;
return std::make_pair(__last, std::move(__result));
}
@@ -212,7 +212,7 @@ struct __copy_backward_impl {
if (__first == __last)
return std::make_pair(__first, __result);
- auto __local_last = _Traits::__local(__result);
+ auto __local_last = _Traits::__local_it(__result);
while (true) {
using _DiffT = typename common_type<__iter_diff_t<_InIter>, __iter_diff_t<_OutIter> >::type;
diff --git a/libcxx/include/__algorithm/find_segment_if.h b/libcxx/include/__algorithm/find_segment_if.h
index 9d6064f3e283a..4ead37f71f53e 100644
--- a/libcxx/include/__algorithm/find_segment_if.h
+++ b/libcxx/include/__algorithm/find_segment_if.h
@@ -34,11 +34,11 @@ __find_segment_if(_SegmentedIterator __first, _SegmentedIterator __last, _Pred _
// We are in a single segment, so we might not be at the beginning or end
if (__sfirst == __slast)
- return _Traits::__compose(__sfirst, __pred(_Traits::__local(__first), _Traits::__local(__last), __proj));
+ return _Traits::__compose(__sfirst, __pred(_Traits::__local_it(__first), _Traits::__local_it(__last), __proj));
{ // We have more than one segment. Iterate over the first segment, since we might not start at the beginning
auto __llast = _Traits::__end(__sfirst);
- auto __liter = __pred(_Traits::__local(__first), __llast, __proj);
+ auto __liter = __pred(_Traits::__local_it(__first), __llast, __proj);
if (__liter != __llast)
return _Traits::__compose(__sfirst, __liter);
}
@@ -54,7 +54,7 @@ __find_segment_if(_SegmentedIterator __first, _SegmentedIterator __last, _Pred _
}
// Iterate over the last segment
- return _Traits::__compose(__sfirst, __pred(_Traits::__begin(__sfirst), _Traits::__local(__last), __proj));
+ return _Traits::__compose(__sfirst, __pred(_Traits::__begin(__sfirst), _Traits::__local_it(__last), __proj));
}
_LIBCPP_END_NAMESPACE_STD
diff --git a/libcxx/include/__algorithm/for_each_n_segment.h b/libcxx/include/__algorithm/for_each_n_segment.h
index a433df5d098ae..0d5891cbf3dd3 100644
--- a/libcxx/include/__algorithm/for_each_n_segment.h
+++ b/libcxx/include/__algorithm/for_each_n_segment.h
@@ -39,7 +39,7 @@ __for_each_n_segment(_SegmentedIterator __first, _Size __orig_n, _Functor __func
using __difference_t = typename std::iterator_traits<__local_iter_t>::difference_type;
__difference_t __n = __orig_n;
auto __seg = _Traits::__segment(__first);
- auto __local_first = _Traits::__local(__first);
+ auto __local_first = _Traits::__local_it(__first);
__local_iter_t __local_last;
while (__n > 0) {
diff --git a/libcxx/include/__algorithm/for_each_segment.h b/libcxx/include/__algorithm/for_each_segment.h
index 93aa8259b2f7f..c099858ba1023 100644
--- a/libcxx/include/__algorithm/for_each_segment.h
+++ b/libcxx/include/__algorithm/for_each_segment.h
@@ -32,12 +32,12 @@ __for_each_segment(_SegmentedIterator __first, _SegmentedIterator __last, _Funct
// We are in a single segment, so we might not be at the beginning or end
if (__sfirst == __slast) {
- __func(_Traits::__local(__first), _Traits::__local(__last));
+ __func(_Traits::__local_it(__first), _Traits::__local_it(__last));
return;
}
// We have more than one segment. Iterate over the first segment, since we might not start at the beginning
- __func(_Traits::__local(__first), _Traits::__end(__sfirst));
+ __func(_Traits::__local_it(__first), _Traits::__end(__sfirst));
++__sfirst;
// iterate over the segments which are guaranteed to be completely in the range
while (__sfirst != __slast) {
@@ -45,7 +45,7 @@ __for_each_segment(_SegmentedIterator __first, _SegmentedIterator __last, _Funct
++__sfirst;
}
// iterate over the last segment
- __func(_Traits::__begin(__sfirst), _Traits::__local(__last));
+ __func(_Traits::__begin(__sfirst), _Traits::__local_it(__last));
}
_LIBCPP_END_NAMESPACE_STD
diff --git a/libcxx/include/__algorithm/move.h b/libcxx/include/__algorithm/move.h
index 73b780d9b17f3..b95a3c9c00c73 100644
--- a/libcxx/include/__algorithm/move.h
+++ b/libcxx/include/__algorithm/move.h
@@ -85,7 +85,7 @@ struct __move_impl {
if (__first == __last)
return std::make_pair(std::move(__first), std::move(__result));
- auto __local_first = _Traits::__local(__result);
+ auto __local_first = _Traits::__local_it(__result);
auto __segment_iterator = _Traits::__segment(__result);
while (true) {
auto __local_last = _Traits::__end(__segment_iterator);
diff --git a/libcxx/include/__algorithm/move_backward.h b/libcxx/include/__algorithm/move_backward.h
index e3e61c7bc1e29..6d8b31a1ca317 100644
--- a/libcxx/include/__algorithm/move_backward.h
+++ b/libcxx/include/__algorithm/move_backward.h
@@ -59,12 +59,12 @@ struct __move_backward_impl {
auto __slast = _Traits::__segment(__last);
if (__sfirst == __slast) {
auto __iters =
- std::__move_backward<_AlgPolicy>(_Traits::__local(__first), _Traits::__local(__last), std::move(__result));
+ std::__move_backward<_AlgPolicy>(_Traits::__local_it(__first), _Traits::__local_it(__last), std::move(__result));
return std::make_pair(__last, __iters.second);
}
__result =
- std::__move_backward<_AlgPolicy>(_Traits::__begin(__slast), _Traits::__local(__last), std::move(__result))
+ std::__move_backward<_AlgPolicy>(_Traits::__begin(__slast), _Traits::__local_it(__last), std::move(__result))
.second;
--__slast;
while (__sfirst != __slast) {
@@ -73,7 +73,7 @@ struct __move_backward_impl {
.second;
--__slast;
}
- __result = std::__move_backward<_AlgPolicy>(_Traits::__local(__first), _Traits::__end(__slast), std::move(__result))
+ __result = std::__move_backward<_AlgPolicy>(_Traits::__local_it(__first), _Traits::__end(__slast), std::move(__result))
.second;
return std::make_pair(__last, std::move(__result));
}
@@ -94,7 +94,7 @@ struct __move_backward_impl {
auto __orig_last = __last;
- auto __local_last = _Traits::__local(__result);
+ auto __local_last = _Traits::__local_it(__result);
auto __segment_iterator = _Traits::__segment(__result);
while (true) {
auto __local_first = _Traits::__begin(__segment_iterator);
diff --git a/libcxx/include/__cxx03/__algorithm/copy.h b/libcxx/include/__cxx03/__algorithm/copy.h
index ab164a8f9af51..171ec0fe2691f 100644
--- a/libcxx/include/__cxx03/__algorithm/copy.h
+++ b/libcxx/include/__cxx03/__algorithm/copy.h
@@ -76,7 +76,7 @@ struct __copy_impl {
if (__first == __last)
return std::make_pair(std::move(__first), std::move(__result));
- auto __local_first = _Traits::__local(__result);
+ auto __local_first = _Traits::__local_it(__result);
auto __segment_iterator = _Traits::__segment(__result);
while (true) {
auto __local_last = _Traits::__end(__segment_iterator);
diff --git a/libcxx/include/__cxx03/__algorithm/copy_backward.h b/libcxx/include/__cxx03/__algorithm/copy_backward.h
index 0a84b6ed27a98..1c0075319f7b6 100644
--- a/libcxx/include/__cxx03/__algorithm/copy_backward.h
+++ b/libcxx/include/__cxx03/__algorithm/copy_backward.h
@@ -52,12 +52,12 @@ struct __copy_backward_impl {
auto __slast = _Traits::__segment(__last);
if (__sfirst == __slast) {
auto __iters =
- std::__copy_backward<_AlgPolicy>(_Traits::__local(__first), _Traits::__local(__last), std::move(__result));
+ std::__copy_backward<_AlgPolicy>(_Traits::__local_it(__first), _Traits::__local_it(__last), std::move(__result));
return std::make_pair(__last, __iters.second);
}
__result =
- std::__copy_backward<_AlgPolicy>(_Traits::__begin(__slast), _Traits::__local(__last), std::move(__result))
+ std::__copy_backward<_AlgPolicy>(_Traits::__begin(__slast), _Traits::__local_it(__last), std::move(__result))
.second;
--__slast;
while (__sfirst != __slast) {
@@ -66,7 +66,7 @@ struct __copy_backward_impl {
.second;
--__slast;
}
- __result = std::__copy_backward<_AlgPolicy>(_Traits::__local(__first), _Traits::__end(__slast), std::move(__result))
+ __result = std::__copy_backward<_AlgPolicy>(_Traits::__local_it(__first), _Traits::__end(__slast), std::move(__result))
.second;
return std::make_pair(__last, std::move(__result));
}
@@ -85,7 +85,7 @@ struct __copy_backward_impl {
if (__first == __last)
return std::make_pair(__first, __result);
- auto __local_last = _Traits::__local(__result);
+ auto __local_last = _Traits::__local_it(__result);
while (true) {
using _DiffT = typename common_type<__iter_diff_t<_InIter>, __iter_diff_t<_OutIter> >::type;
diff --git a/libcxx/include/__cxx03/__algorithm/find_segment_if.h b/libcxx/include/__cxx03/__algorithm/find_segment_if.h
index 9fdf8ae53d517..c3b28267a1f42 100644
--- a/libcxx/include/__cxx03/__algorithm/find_segment_if.h
+++ b/libcxx/include/__cxx03/__algorithm/find_segment_if.h
@@ -34,11 +34,11 @@ __find_segment_if(_SegmentedIterator __first, _SegmentedIterator __last, _Pred _
// We are in a single segment, so we might not be at the beginning or end
if (__sfirst == __slast)
- return _Traits::__compose(__sfirst, __pred(_Traits::__local(__first), _Traits::__local(__last), __proj));
+ return _Traits::__compose(__sfirst, __pred(_Traits::__local_it(__first), _Traits::__local_it(__last), __proj));
{ // We have more than one segment. Iterate over the first segment, since we might not start at the beginning
auto __llast = _Traits::__end(__sfirst);
- auto __liter = __pred(_Traits::__local(__first), __llast, __proj);
+ auto __liter = __pred(_Traits::__local_it(__first), __llast, __proj);
if (__liter != __llast)
return _Traits::__compose(__sfirst, __liter);
}
@@ -54,7 +54,7 @@ __find_segment_if(_SegmentedIterator __first, _SegmentedIterator __last, _Pred _
}
// Iterate over the last segment
- return _Traits::__compose(__sfirst, __pred(_Traits::__begin(__sfirst), _Traits::__local(__last), __proj));
+ return _Traits::__compose(__sfirst, __pred(_Traits::__begin(__sfirst), _Traits::__local_it(__last), __proj));
}
_LIBCPP_END_NAMESPACE_STD
diff --git a/libcxx/include/__cxx03/__algorithm/for_each_segment.h b/libcxx/include/__cxx03/__algorithm/for_each_segment.h
index b1d54ad427659..3141a1a5bdab2 100644
--- a/libcxx/include/__cxx03/__algorithm/for_each_segment.h
+++ b/libcxx/include/__cxx03/__algorithm/for_each_segment.h
@@ -31,12 +31,12 @@ _LIBCPP_HIDE_FROM_ABI void __for_each_segment(_SegmentedIterator __first, _Segme
// We are in a single segment, so we might not be at the beginning or end
if (__sfirst == __slast) {
- __func(_Traits::__local(__first), _Traits::__local(__last));
+ __func(_Traits::__local_it(__first), _Traits::__local_it(__last));
return;
}
// We have more than one segment. Iterate over the first segment, since we might not start at the beginning
- __func(_Traits::__local(__first), _Traits::__end(__sfirst));
+ __func(_Traits::__local_it(__first), _Traits::__end(__sfirst));
++__sfirst;
// iterate over the segments which are guaranteed to be completely in the range
while (__sfirst != __slast) {
@@ -44,7 +44,7 @@ _LIBCPP_HIDE_FROM_ABI void __for_each_segment(_SegmentedIterator __first, _Segme
++__sfirst;
}
// iterate over the last segment
- __func(_Traits::__begin(__sfirst), _Traits::__local(__last));
+ __func(_Traits::__begin(__sfirst), _Traits::__local_it(__last));
}
_LIBCPP_END_NAMESPACE_STD
diff --git a/libcxx/include/__cxx03/__algorithm/move.h b/libcxx/include/__cxx03/__algorithm/move.h
index 0c744bc0e91a4..df1ae18964fca 100644
--- a/libcxx/include/__cxx03/__algorithm/move.h
+++ b/libcxx/include/__cxx03/__algorithm/move.h
@@ -76,7 +76,7 @@ struct __move_impl {
if (__first == __last)
return std::make_pair(std::move(__first), std::move(__result));
- auto __local_first = _Traits::__local(__result);
+ auto __local_first = _Traits::__local_it(__result);
auto __segment_iterator = _Traits::__segment(__result);
while (true) {
auto __local_last = _Traits::__end(__segment_iterator);
diff --git a/libcxx/include/__cxx03/__algorithm/move_backward.h b/libcxx/include/__cxx03/__algorithm/move_backward.h
index 61e29c5c396f1..2442832066bd1 100644
--- a/libcxx/include/__cxx03/__algorithm/move_backward.h
+++ b/libcxx/include/__cxx03/__algorithm/move_backward.h
@@ -53,12 +53,12 @@ struct __move_backward_impl {
auto __slast = _Traits::__segment(__last);
if (__sfirst == __slast) {
auto __iters =
- std::__move_backward<_AlgPolicy>(_Traits::__local(__first), _Traits::__local(__last), std::move(__result));
+ std::__move_backward<_AlgPolicy>(_Traits::__local_it(__first), _Traits::__local_it(__last), std::move(__result));
return std::make_pair(__last, __iters.second);
}
__result =
- std::__move_backward<_AlgPolicy>(_Traits::__begin(__slast), _Traits::__local(__last), std::move(__result))
+ std::__move_backward<_AlgPolicy>(_Traits::__begin(__slast), _Traits::__local_it(__last), std::move(__result))
.second;
--__slast;
while (__sfirst != __slast) {
@@ -67,7 +67,7 @@ struct __move_backward_impl {
.second;
--__slast;
}
- __result = std::__move_backward<_AlgPolicy>(_Traits::__local(__first), _Traits::__end(__slast), std::move(__result))
+ __result = std::__move_backward<_AlgPolicy>(_Traits::__local_it(__first), _Traits::__end(__slast), std::move(__result))
.second;
return std::make_pair(__last, std::move(__result));
}
@@ -87,7 +87,7 @@ struct __move_backward_impl {
auto __orig_last = __last;
- auto __local_last = _Traits::__local(__result);
+ auto __local_last = _Traits::__local_it(__result);
auto __segment_iterator = _Traits::__segment(__result);
while (true) {
auto __local_first = _Traits::__begin(__segment_iterator);
diff --git a/libcxx/include/__cxx03/__iterator/segmented_iterator.h b/libcxx/include/__cxx03/__iterator/segmented_iterator.h
index 7e353d620dc83..9ad207bf34086 100644
--- a/libcxx/include/__cxx03/__iterator/segmented_iterator.h
+++ b/libcxx/include/__cxx03/__iterator/segmented_iterator.h
@@ -28,7 +28,7 @@
// - static __segment_iterator Traits::__segment(It __it)
// Returns an iterator to the segment that the provided iterator is in.
//
-// - static __local_iterator Traits::__local(It __it)
+// - static __local_iterator Traits::__local_it(It __it)
// Returns the local iterator pointing to the element that the provided iterator points to.
//
// - static __local_iterator Traits::__begin(__segment_iterator __it)
@@ -58,7 +58,7 @@ struct __segmented_iterator_traits;
using __local_iterator = ...;
static __segment_iterator __segment(_Iterator);
- static __local_iterator __local(_Iterator);
+ static __local_iterator __local_it(_Iterator);
static __local_iterator __begin(__segment_iterator);
static __local_iterator __end(__segment_iterator);
static _Iterator __compose(__segment_iterator, __local_iterator);
diff --git a/libcxx/include/__cxx03/deque b/libcxx/include/__cxx03/deque
index fcf9d606f408f..30d45caba2c44 100644
--- a/libcxx/include/__cxx03/deque
+++ b/libcxx/include/__cxx03/deque
@@ -401,19 +401,19 @@ public:
using __local_iterator = _Pointer;
static _LIBCPP_HIDE_FROM_ABI __segment_iterator __segment(_Iterator __iter) { return __iter.__m_iter_; }
- static _LIBCPP_HIDE_FROM_ABI __local_iterator __local(_Iterator __iter) { return __iter.__ptr_; }
+ static _LIBCPP_HIDE_FROM_ABI __local_iterator __local_it(_Iterator __iter) { return __iter.__ptr_; }
static _LIBCPP_HIDE_FROM_ABI __local_iterator __begin(__segment_iterator __iter) { return *__iter; }
static _LIBCPP_HIDE_FROM_ABI __local_iterator __end(__segment_iterator __iter) {
return *__iter + _Iterator::__block_size;
}
- static _LIBCPP_HIDE_FROM_ABI _Iterator __compose(__segment_iterator __segment, __local_iterator __local) {
- if (__segment && __local == __end(__segment)) {
+ static _LIBCPP_HIDE_FROM_ABI _Iterator __compose(__segment_iterator __segment, __local_iterator __local_it) {
+ if (__segment && __local_it == __end(__segment)) {
++__segment;
return _Iterator(__segment, *__segment);
}
- return _Iterator(__segment, __local);
+ return _Iterator(__segment, __local_it);
}
};
diff --git a/libcxx/include/__iterator/segmented_iterator.h b/libcxx/include/__iterator/segmented_iterator.h
index 5df9737137101..45c554b0a89f3 100644
--- a/libcxx/include/__iterator/segmented_iterator.h
+++ b/libcxx/include/__iterator/segmented_iterator.h
@@ -28,7 +28,7 @@
// - static __segment_iterator Traits::__segment(It __it)
// Returns an iterator to the segment that the provided iterator is in.
//
-// - static __local_iterator Traits::__local(It __it)
+// - static __local_iterator Traits::__local_it(It __it)
// Returns the local iterator pointing to the element that the provided iterator points to.
//
// - static __local_iterator Traits::__begin(__segment_iterator __it)
@@ -59,7 +59,7 @@ struct __segmented_iterator_traits;
using __local_iterator = ...;
static __segment_iterator __segment(_Iterator);
- static __local_iterator __local(_Iterator);
+ static __local_iterator __local_it(_Iterator);
static __local_iterator __begin(__segment_iterator);
static __local_iterator __end(__segment_iterator);
static _Iterator __compose(__segment_iterator, __local_iterator);
diff --git a/libcxx/include/__ranges/join_view.h b/libcxx/include/__ranges/join_view.h
index 327b349f476a7..b374e552480ea 100644
--- a/libcxx/include/__ranges/join_view.h
+++ b/libcxx/include/__ranges/join_view.h
@@ -392,7 +392,7 @@ struct __segmented_iterator_traits<_JoinViewIterator> {
return __segment_iterator(__iter.__outer_, __iter.__parent_);
}
- static constexpr _LIBCPP_HIDE_FROM_ABI __local_iterator __local(_JoinViewIterator __iter) {
+ static constexpr _LIBCPP_HIDE_FROM_ABI __local_iterator __local_it(_JoinViewIterator __iter) {
if (ranges::empty(__iter.__parent_->__base_))
return {};
if (!__iter.__inner_.has_value())
diff --git a/libcxx/include/deque b/libcxx/include/deque
index 395a1076fd3c4..d23874ef48a87 100644
--- a/libcxx/include/deque
+++ b/libcxx/include/deque
@@ -465,19 +465,19 @@ public:
using __local_iterator _LIBCPP_NODEBUG = _Pointer;
static _LIBCPP_HIDE_FROM_ABI __segment_iterator __segment(_Iterator __iter) { return __iter.__m_iter_; }
- static _LIBCPP_HIDE_FROM_ABI __local_iterator __local(_Iterator __iter) { return __iter.__ptr_; }
+ static _LIBCPP_HIDE_FROM_ABI __local_iterator __local_it(_Iterator __iter) { return __iter.__ptr_; }
static _LIBCPP_HIDE_FROM_ABI __local_iterator __begin(__segment_iterator __iter) { return *__iter; }
static _LIBCPP_HIDE_FROM_ABI __local_iterator __end(__segment_iterator __iter) {
return *__iter + _Iterator::__block_size;
}
- static _LIBCPP_HIDE_FROM_ABI _Iterator __compose(__segment_iterator __segment, __local_iterator __local) {
- if (__segment && __local == __end(__segment)) {
+ static _LIBCPP_HIDE_FROM_ABI _Iterator __compose(__segment_iterator __segment, __local_iterator __local_it) {
+ if (__segment && __local_it == __end(__segment)) {
++__segment;
return _Iterator(__segment, *__segment);
}
- return _Iterator(__segment, __local);
+ return _Iterator(__segment, __local_it);
}
};
diff --git a/libcxx/src/experimental/include/tzdb/types_private.h b/libcxx/src/experimental/include/tzdb/types_private.h
index c86982948b61f..5dd3d87a92487 100644
--- a/libcxx/src/experimental/include/tzdb/types_private.h
+++ b/libcxx/src/experimental/include/tzdb/types_private.h
@@ -58,11 +58,11 @@ struct __constrained_weekday {
// Sun<=25 last Sunday on or before the 25th
using __on = variant<day, weekday_last, __constrained_weekday>;
-enum class __clock { __local, __standard, __universal };
+enum class __clock { __local_tm, __standard_tm, __universal_tm };
struct __at {
seconds __time{0};
- __tz::__clock __clock{__tz::__clock::__local};
+ __tz::__clock __clock{__tz::__clock::__local_tm};
};
struct __save {
@@ -107,7 +107,7 @@ struct __continuation {
year __year = chrono::year::min();
month __in{January};
__tz::__on __on{chrono::day{1}};
- __tz::__at __at{chrono::seconds{0}, __tz::__clock::__local};
+ __tz::__at __at{chrono::seconds{0}, __tz::__clock::__local_tm};
};
} // namespace chrono::__tz
diff --git a/libcxx/src/experimental/time_zone.cpp b/libcxx/src/experimental/time_zone.cpp
index a735800b60317..7171659725277 100644
--- a/libcxx/src/experimental/time_zone.cpp
+++ b/libcxx/src/experimental/time_zone.cpp
@@ -194,7 +194,7 @@ __format(const __tz::__continuation& __continuation, const string& __letters, se
[[nodiscard]] static seconds __at_to_sys_seconds(const __tz::__continuation& __continuation) {
switch (__continuation.__at.__clock) {
- case __tz::__clock::__local:
+ case __tz::__clock::__local_tm:
return __continuation.__at.__time - __continuation.__stdoff -
std::visit(
[](const auto& __value) {
@@ -214,10 +214,10 @@ __format(const __tz::__continuation& __continuation, const string& __letters, se
},
__continuation.__rules);
- case __tz::__clock::__universal:
+ case __tz::__clock::__universal_tm:
return __continuation.__at.__time;
- case __tz::__clock::__standard:
+ case __tz::__clock::__standard_tm:
return __continuation.__at.__time - __continuation.__stdoff;
}
std::__libcpp_unreachable();
@@ -266,7 +266,7 @@ class __named_rule_until {
// However SAVE can be negative, which would add a value to maximum
// leading to undefined behaviour. In practice this often results in
// an overflow to a very small value.
- __until_ != sys_seconds::max() && __continuation.__at.__clock == __tz::__clock::__local} {}
+ __until_ != sys_seconds::max() && __continuation.__at.__clock == __tz::__clock::__local_tm} {}
// Gives the unadjusted until value, this is useful when the SAVE is not known
// at all.
@@ -284,7 +284,7 @@ class __named_rule_until {
[[nodiscard]] static seconds __at_to_seconds(seconds __stdoff, const __tz::__rule& __rule) {
switch (__rule.__at.__clock) {
- case __tz::__clock::__local:
+ case __tz::__clock::__local_tm:
// Local time and standard time behave the same. This is not
// correct. Local time needs to adjust for the current saved time.
// To know the saved time the rules need to be known and sorted.
@@ -292,10 +292,10 @@ class __named_rule_until {
// saving of the local time later.
return __rule.__at.__time - __stdoff;
- case __tz::__clock::__universal:
+ case __tz::__clock::__universal_tm:
return __rule.__at.__time;
- case __tz::__clock::__standard:
+ case __tz::__clock::__standard_tm:
return __rule.__at.__time - __stdoff;
}
std::__libcpp_unreachable();
@@ -396,13 +396,13 @@ __get_rules(const __tz::__rules_storage_type& __rules_db, const string& __rule_n
[[nodiscard]] static seconds __at_to_seconds(seconds __stdoff, seconds __save, const __tz::__rule& __rule) {
switch (__rule.__at.__clock) {
- case __tz::__clock::__local:
+ case __tz::__clock::__local_tm:
return __rule.__at.__time - __stdoff - __save;
- case __tz::__clock::__universal:
+ case __tz::__clock::__universal_tm:
return __rule.__at.__time;
- case __tz::__clock::__standard:
+ case __tz::__clock::__standard_tm:
return __rule.__at.__time - __stdoff;
}
std::__libcpp_unreachable();
diff --git a/libcxx/src/experimental/tzdb.cpp b/libcxx/src/experimental/tzdb.cpp
index ac5c62bb81902..17861764f9298 100644
--- a/libcxx/src/experimental/tzdb.cpp
+++ b/libcxx/src/experimental/tzdb.cpp
@@ -408,18 +408,18 @@ static void __matches(istream& __input, string_view __expected) {
[[nodiscard]] static __tz::__clock __parse_clock(istream& __input) {
switch (__input.get()) { // case sensitive
case 'w':
- return __tz::__clock::__local;
+ return __tz::__clock::__local_tm;
case 's':
- return __tz::__clock::__standard;
+ return __tz::__clock::__standard_tm;
case 'u':
case 'g':
case 'z':
- return __tz::__clock::__universal;
+ return __tz::__clock::__universal_tm;
}
__input.unget();
- return __tz::__clock::__local;
+ return __tz::__clock::__local_tm;
}
[[nodiscard]] static bool __parse_dst(istream& __input, seconds __offset) {
diff --git a/libcxx/test/libcxx/time/time.zone/time.zone.db/rules.pass.cpp b/libcxx/test/libcxx/time/time.zone/time.zone.db/rules.pass.cpp
index 237a206b3a95b..fc8ffe4234389 100644
--- a/libcxx/test/libcxx/time/time.zone/time.zone.db/rules.pass.cpp
+++ b/libcxx/test/libcxx/time/time.zone/time.zone.db/rules.pass.cpp
@@ -479,35 +479,35 @@ R a 0 1 - Ja Su>=31 - 2s -
assert(result.rules[0].second.size() == 10);
assert(result.rules[0].second[0].__at.__time == std::chrono::hours(2));
- assert(result.rules[0].second[0].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(result.rules[0].second[0].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(result.rules[0].second[1].__at.__time == std::chrono::hours(2));
- assert(result.rules[0].second[1].__at.__clock == std::chrono::__tz::__clock::__standard);
+ assert(result.rules[0].second[1].__at.__clock == std::chrono::__tz::__clock::__standard_tm);
assert(result.rules[0].second[2].__at.__time ==
std::chrono::hours(1) + std::chrono::minutes(28) + std::chrono::seconds(14));
- assert(result.rules[0].second[2].__at.__clock == std::chrono::__tz::__clock::__universal);
+ assert(result.rules[0].second[2].__at.__clock == std::chrono::__tz::__clock::__universal_tm);
assert(result.rules[0].second[3].__at.__time == std::chrono::minutes(19) + std::chrono::seconds(32));
- assert(result.rules[0].second[3].__at.__clock == std::chrono::__tz::__clock::__universal);
+ assert(result.rules[0].second[3].__at.__clock == std::chrono::__tz::__clock::__universal_tm);
assert(result.rules[0].second[4].__at.__time == std::chrono::hours(12));
- assert(result.rules[0].second[4].__at.__clock == std::chrono::__tz::__clock::__universal);
+ assert(result.rules[0].second[4].__at.__clock == std::chrono::__tz::__clock::__universal_tm);
assert(result.rules[0].second[5].__at.__time == std::chrono::hours(15));
- assert(result.rules[0].second[5].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(result.rules[0].second[5].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(result.rules[0].second[6].__at.__time == std::chrono::hours(24));
- assert(result.rules[0].second[6].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(result.rules[0].second[6].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(result.rules[0].second[7].__at.__time == std::chrono::hours(260));
- assert(result.rules[0].second[7].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(result.rules[0].second[7].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(result.rules[0].second[8].__at.__time == -(std::chrono::hours(2) + std::chrono::minutes(30)));
- assert(result.rules[0].second[8].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(result.rules[0].second[8].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(result.rules[0].second[9].__at.__time == std::chrono::hours(0)); // The man page expresses it in hours
- assert(result.rules[0].second[9].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(result.rules[0].second[9].__at.__clock == std::chrono::__tz::__clock::__local_tm);
}
static void test_save() {
diff --git a/libcxx/test/libcxx/time/time.zone/time.zone.db/zones.pass.cpp b/libcxx/test/libcxx/time/time.zone/time.zone.db/zones.pass.cpp
index ded89ed808e17..19115ff9b6b0f 100644
--- a/libcxx/test/libcxx/time/time.zone/time.zone.db/zones.pass.cpp
+++ b/libcxx/test/libcxx/time/time.zone/time.zone.db/zones.pass.cpp
@@ -212,32 +212,32 @@ Z nj 0 r f 42 Jul 1 -
assert(continuations(result.zones[0])[0].__in == std::chrono::January);
assert(std::get<std::chrono::day>(continuations(result.zones[0])[0].__on) == std::chrono::day(1));
assert(continuations(result.zones[0])[0].__at.__time == std::chrono::seconds(0));
- assert(continuations(result.zones[0])[0].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[0])[0].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[1])[0].__year == std::chrono::year(1000));
assert(continuations(result.zones[1])[0].__in == std::chrono::January);
assert(std::get<std::chrono::day>(continuations(result.zones[1])[0].__on) == std::chrono::day(1));
assert(continuations(result.zones[1])[0].__at.__time == std::chrono::seconds(0));
- assert(continuations(result.zones[1])[0].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[1])[0].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[2])[0].__year == std::chrono::year(-1000));
assert(continuations(result.zones[2])[0].__in == std::chrono::November);
assert(std::get<std::chrono::day>(continuations(result.zones[2])[0].__on) == std::chrono::day(1));
assert(continuations(result.zones[2])[0].__at.__time == std::chrono::seconds(0));
- assert(continuations(result.zones[2])[0].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[2])[0].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[3])[0].__year == std::chrono::year::max());
assert(continuations(result.zones[3])[0].__in == std::chrono::September);
assert(std::get<std::chrono::day>(continuations(result.zones[3])[0].__on) == std::chrono::day(31));
assert(continuations(result.zones[3])[0].__at.__time == std::chrono::seconds(0));
- assert(continuations(result.zones[3])[0].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[3])[0].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[4])[0].__year == std::chrono::year(0));
assert(continuations(result.zones[4])[0].__in == std::chrono::January);
assert(std::get<std::chrono::weekday_last>(continuations(result.zones[4])[0].__on) ==
std::chrono::weekday_last{std::chrono::Wednesday});
assert(continuations(result.zones[4])[0].__at.__time == std::chrono::seconds(0));
- assert(continuations(result.zones[4])[0].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[4])[0].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[5])[0].__year == std::chrono::year(-42));
assert(continuations(result.zones[5])[0].__in == std::chrono::June);
@@ -246,7 +246,7 @@ Z nj 0 r f 42 Jul 1 -
assert(r.__comparison == std::chrono::__tz::__constrained_weekday::__le);
assert(r.__day == std::chrono::day(1));
assert(continuations(result.zones[5])[0].__at.__time == std::chrono::seconds(0));
- assert(continuations(result.zones[5])[0].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[5])[0].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[6])[0].__year == std::chrono::year(42));
assert(continuations(result.zones[6])[0].__in == std::chrono::July);
@@ -255,26 +255,26 @@ Z nj 0 r f 42 Jul 1 -
assert(r.__comparison == std::chrono::__tz::__constrained_weekday::__ge);
assert(r.__day == std::chrono::day(12));
assert(continuations(result.zones[6])[0].__at.__time == std::chrono::seconds(0));
- assert(continuations(result.zones[6])[0].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[6])[0].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[7])[0].__year == std::chrono::year(42));
assert(continuations(result.zones[7])[0].__in == std::chrono::July);
assert(std::get<std::chrono::day>(continuations(result.zones[7])[0].__on) == std::chrono::day(1));
assert(continuations(result.zones[7])[0].__at.__time == std::chrono::hours(2));
- assert(continuations(result.zones[7])[0].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[7])[0].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[8])[0].__year == std::chrono::year(42));
assert(continuations(result.zones[8])[0].__in == std::chrono::July);
assert(std::get<std::chrono::day>(continuations(result.zones[8])[0].__on) == std::chrono::day(1));
assert(continuations(result.zones[8])[0].__at.__time ==
std::chrono::hours(1) + std::chrono::minutes(28) + std::chrono::seconds(14));
- assert(continuations(result.zones[8])[0].__at.__clock == std::chrono::__tz::__clock::__universal);
+ assert(continuations(result.zones[8])[0].__at.__clock == std::chrono::__tz::__clock::__universal_tm);
assert(continuations(result.zones[9])[0].__year == std::chrono::year(42));
assert(continuations(result.zones[9])[0].__in == std::chrono::July);
assert(std::get<std::chrono::day>(continuations(result.zones[9])[0].__on) == std::chrono::day(1));
assert(continuations(result.zones[9])[0].__at.__time == std::chrono::hours(0)); // The man page expresses it in hours
- assert(continuations(result.zones[9])[0].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[9])[0].__at.__clock == std::chrono::__tz::__clock::__local_tm);
}
static void test_continuation() {
@@ -301,32 +301,32 @@ Z na 0 r f
assert(continuations(result.zones[0])[0].__in == std::chrono::January);
assert(std::get<std::chrono::day>(continuations(result.zones[0])[0].__on) == std::chrono::day(1));
assert(continuations(result.zones[0])[0].__at.__time == std::chrono::seconds(0));
- assert(continuations(result.zones[0])[0].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[0])[0].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[0])[1].__year == std::chrono::year(1000));
assert(continuations(result.zones[0])[1].__in == std::chrono::January);
assert(std::get<std::chrono::day>(continuations(result.zones[0])[1].__on) == std::chrono::day(1));
assert(continuations(result.zones[0])[1].__at.__time == std::chrono::seconds(0));
- assert(continuations(result.zones[0])[1].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[0])[1].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[0])[2].__year == std::chrono::year(-1000));
assert(continuations(result.zones[0])[2].__in == std::chrono::November);
assert(std::get<std::chrono::day>(continuations(result.zones[0])[2].__on) == std::chrono::day(1));
assert(continuations(result.zones[0])[2].__at.__time == std::chrono::seconds(0));
- assert(continuations(result.zones[0])[2].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[0])[2].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[0])[3].__year == std::chrono::year::max());
assert(continuations(result.zones[0])[3].__in == std::chrono::September);
assert(std::get<std::chrono::day>(continuations(result.zones[0])[3].__on) == std::chrono::day(31));
assert(continuations(result.zones[0])[3].__at.__time == std::chrono::seconds(0));
- assert(continuations(result.zones[0])[3].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[0])[3].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[0])[4].__year == std::chrono::year(0));
assert(continuations(result.zones[0])[4].__in == std::chrono::January);
assert(std::get<std::chrono::weekday_last>(continuations(result.zones[0])[4].__on) ==
std::chrono::weekday_last{std::chrono::Wednesday});
assert(continuations(result.zones[0])[4].__at.__time == std::chrono::seconds(0));
- assert(continuations(result.zones[0])[4].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[0])[4].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[0])[5].__year == std::chrono::year(-42));
assert(continuations(result.zones[0])[5].__in == std::chrono::June);
@@ -335,7 +335,7 @@ Z na 0 r f
assert(r.__comparison == std::chrono::__tz::__constrained_weekday::__le);
assert(r.__day == std::chrono::day(1));
assert(continuations(result.zones[0])[5].__at.__time == std::chrono::seconds(0));
- assert(continuations(result.zones[0])[5].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[0])[5].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[0])[6].__year == std::chrono::year(42));
assert(continuations(result.zones[0])[6].__in == std::chrono::July);
@@ -344,26 +344,26 @@ Z na 0 r f
assert(r.__comparison == std::chrono::__tz::__constrained_weekday::__ge);
assert(r.__day == std::chrono::day(12));
assert(continuations(result.zones[0])[6].__at.__time == std::chrono::seconds(0));
- assert(continuations(result.zones[0])[6].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[0])[6].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[0])[7].__year == std::chrono::year(42));
assert(continuations(result.zones[0])[7].__in == std::chrono::July);
assert(std::get<std::chrono::day>(continuations(result.zones[0])[7].__on) == std::chrono::day(1));
assert(continuations(result.zones[0])[7].__at.__time == std::chrono::hours(2));
- assert(continuations(result.zones[0])[7].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[0])[7].__at.__clock == std::chrono::__tz::__clock::__local_tm);
assert(continuations(result.zones[0])[8].__year == std::chrono::year(42));
assert(continuations(result.zones[0])[8].__in == std::chrono::July);
assert(std::get<std::chrono::day>(continuations(result.zones[0])[8].__on) == std::chrono::day(1));
assert(continuations(result.zones[0])[8].__at.__time ==
std::chrono::hours(1) + std::chrono::minutes(28) + std::chrono::seconds(14));
- assert(continuations(result.zones[0])[8].__at.__clock == std::chrono::__tz::__clock::__universal);
+ assert(continuations(result.zones[0])[8].__at.__clock == std::chrono::__tz::__clock::__universal_tm);
assert(continuations(result.zones[0])[9].__year == std::chrono::year(42));
assert(continuations(result.zones[0])[9].__in == std::chrono::July);
assert(std::get<std::chrono::day>(continuations(result.zones[0])[9].__on) == std::chrono::day(1));
assert(continuations(result.zones[0])[9].__at.__time == std::chrono::hours(0)); // The man page expresses it in hours
- assert(continuations(result.zones[0])[9].__at.__clock == std::chrono::__tz::__clock::__local);
+ assert(continuations(result.zones[0])[9].__at.__clock == std::chrono::__tz::__clock::__local_tm);
}
int main(int, const char**) {
More information about the libcxx-commits
mailing list