Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 1 addition & 2 deletions libcxx/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -361,8 +361,7 @@ endif()
if (NOT LIBCXX_ENABLE_RTTI AND LIBCXX_ENABLE_EXCEPTIONS)
message(FATAL_ERROR "Libc++ cannot be built with exceptions enabled but RTTI"
" disabled, since that configuration is broken. See"
" https://github.com/llvm/llvm-project/issues/66117"
" for details.")
" https://llvm.org/PR66117 for details.")
endif()

if (LIBCXX_ENABLE_ABI_LINKER_SCRIPT)
Expand Down
5 changes: 2 additions & 3 deletions libcxx/docs/Modules.rst
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ Some of the current limitations
* Clang:
* Including headers after importing the ``std`` module may fail. This is
hard to solve and there is a work-around by first including all headers
`bug report <https://github.com/llvm/llvm-project/issues/61465>`__.
`bug report <https://llvm.org/PR61465>`__.

Blockers
~~~~~~~~
Expand All @@ -88,8 +88,7 @@ Blockers

* Clang

* Some concepts do not work properly
`bug report <https://github.com/llvm/llvm-project/issues/62943>`__.
* Some concepts do not work properly `bug report <https://llvm.org/PR61465>`__.


Using in external projects
Expand Down
6 changes: 3 additions & 3 deletions libcxx/docs/ReleaseNotes/22.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ What's New in Libc++ 22.0.0?
Implemented Papers
------------------

- P2321R2: ``zip`` (`Github <https://github.com/llvm/llvm-project/issues/105169>`__) (The paper is partially
implemented. ``zip_transform_view`` is implemented in this release)
- P3168R2: Give ``std::optional`` Range Support (`Github <https://github.com/llvm/llvm-project/issues/105430>`__)
- P2321R2: ``zip`` (`Github <https://llvm.org/PR105169>`__) (The paper is partially implemented. ``zip_transform_view``
is implemented in this release)
- P3168R2: Give ``std::optional`` Range Support (`Github <https://llvm.org/PR105430>`__)

Improvements and New Features
-----------------------------
Expand Down
2 changes: 1 addition & 1 deletion libcxx/docs/Status/Cxx17Papers.csv
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"`P0013R1 <https://wg21.link/P0013R1>`__","Logical type traits rev 2","2015-10 (Kona)","|Complete|","3.8",""
"","","","","",""
"`P0024R2 <https://wg21.link/P0024R2>`__","The Parallelism TS Should be Standardized","2016-02 (Jacksonville)","|Partial|","",""
"`P0226R1 <https://wg21.link/P0226R1>`__","Mathematical Special Functions for C++17","2016-02 (Jacksonville)","|In Progress|","","Progress is tracked `here <https://github.com/llvm/llvm-project/issues/99939>`__"
"`P0226R1 <https://wg21.link/P0226R1>`__","Mathematical Special Functions for C++17","2016-02 (Jacksonville)","|In Progress|","","Progress is tracked `here <https://llvm.org/PR99939>`__"
"`P0220R1 <https://wg21.link/P0220R1>`__","Adopt Library Fundamentals V1 TS Components for C++17","2016-02 (Jacksonville)","|Complete|","16",""
"`P0218R1 <https://wg21.link/P0218R1>`__","Adopt the File System TS for C++17","2016-02 (Jacksonville)","|Complete|","7",""
"`P0033R1 <https://wg21.link/P0033R1>`__","Re-enabling shared_from_this","2016-02 (Jacksonville)","|Complete|","3.9",""
Expand Down
2 changes: 1 addition & 1 deletion libcxx/docs/Status/Cxx20Papers.csv
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"`P0777R1 <https://wg21.link/P0777R1>`__","Treating Unnecessary ``decay``\ ","2017-11 (Albuquerque)","|Complete|","7",""
"","","","","",""
"`P0122R7 <https://wg21.link/P0122R7>`__","<span>","2018-03 (Jacksonville)","|Complete|","7",""
"`P0355R7 <https://wg21.link/P0355R7>`__","Extending chrono to Calendars and Time Zones","2018-03 (Jacksonville)","|Partial|","","See the `Github issue <https://github.com/llvm/llvm-project/issues/99982>`__ for detailed status"
"`P0355R7 <https://wg21.link/P0355R7>`__","Extending chrono to Calendars and Time Zones","2018-03 (Jacksonville)","|Partial|","","See the `Github issue <https://llvm.org/PR99982>`__ for detailed status"
"`P0551R3 <https://wg21.link/P0551R3>`__","Thou Shalt Not Specialize ``std``\ Function Templates!","2018-03 (Jacksonville)","|Complete|","11",""
"`P0753R2 <https://wg21.link/P0753R2>`__","Manipulators for C++ Synchronized Buffered Ostream","2018-03 (Jacksonville)","","",""
"`P0754R2 <https://wg21.link/P0754R2>`__","<version>","2018-03 (Jacksonville)","|Complete|","7",""
Expand Down
2 changes: 1 addition & 1 deletion libcxx/include/__algorithm/simd_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ template <class _Tp, size_t _Np>
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t __find_first_set(__simd_vector<_Tp, _Np> __vec) noexcept {
using __mask_vec = __simd_vector<bool, _Np>;

// This has MSan disabled du to https://github.com/llvm/llvm-project/issues/85876
// This has MSan disabled du to https://llvm.org/PR85876
auto __impl = [&]<class _MaskT>(_MaskT) _LIBCPP_NO_SANITIZE("memory") noexcept {
# if defined(_LIBCPP_BIG_ENDIAN)
return std::min<size_t>(
Expand Down
4 changes: 2 additions & 2 deletions libcxx/include/__atomic/atomic.h
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,7 @@ struct atomic<_Tp> : __atomic_base<_Tp> {
// &Context.getTargetInfo().getLongDoubleFormat() ==
// &llvm::APFloat::x87DoubleExtended())
// For more info
// https://github.com/llvm/llvm-project/issues/68602
// https://llvm.org/PR68602
// https://reviews.llvm.org/D53965
return !__is_fp80_long_double();
# endif
Expand All @@ -367,7 +367,7 @@ struct atomic<_Tp> : __atomic_base<_Tp> {
while (!__self.compare_exchange_weak(__old, __new, __m, memory_order_relaxed)) {
# ifdef _LIBCPP_COMPILER_CLANG_BASED
if constexpr (__is_fp80_long_double()) {
// https://github.com/llvm/llvm-project/issues/47978
// https://llvm.org/PR47978
// clang bug: __old is not updated on failure for atomic<long double>::compare_exchange_weak
// Note __old = __self.load(memory_order_relaxed) will not work
std::__cxx_atomic_load_inplace(std::addressof(__self.__a_), std::addressof(__old), memory_order_relaxed);
Expand Down
4 changes: 2 additions & 2 deletions libcxx/include/__configuration/abi.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,8 @@
// We had some bugs where we use [[no_unique_address]] together with construct_at,
// which causes UB as the call on construct_at could write to overlapping subobjects
//
// https://github.com/llvm/llvm-project/issues/70506
// https://github.com/llvm/llvm-project/issues/70494
// https://llvm.org/PR70506
// https://llvm.org/PR70494
//
// To fix the bug we had to change the ABI of some classes to remove [[no_unique_address]] under certain conditions.
// The macro below is used for all classes whose ABI have changed as part of fixing these bugs.
Expand Down
4 changes: 2 additions & 2 deletions libcxx/include/__configuration/availability.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
//
// We also allow users to force-disable availability markup via the `_LIBCPP_DISABLE_AVAILABILITY`
// macro because that is the only way to work around a Clang bug related to availability
// attributes: https://github.com/llvm/llvm-project/issues/134151.
// attributes: https://llvm.org/PR134151.
// Once that bug has been fixed, we should remove the macro.
#if defined(_LIBCPP_BUILDING_LIBRARY) || defined(_LIBCXXABI_BUILDING_LIBRARY) || \
!defined(_LIBCPP_COMPILER_CLANG_BASED) || defined(_LIBCPP_DISABLE_AVAILABILITY)
Expand Down Expand Up @@ -307,7 +307,7 @@
// This controls the availability of the C++17 std::pmr library,
// which is implemented in large part in the built library.
//
// TODO: Enable std::pmr markup once https://github.com/llvm/llvm-project/issues/40340 has been fixed
// TODO: Enable std::pmr markup once https://llvm.org/PR40340 has been fixed
// Until then, it is possible for folks to try to use `std::pmr` when back-deploying to targets that don't support
// it and it'll be a load-time error, but we don't have a good alternative because the library won't compile if we
// use availability annotations until that bug has been fixed.
Expand Down
3 changes: 1 addition & 2 deletions libcxx/include/__iterator/bounded_iter.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,7 @@ struct __bounded_iter {
// These operations check that the iterator is dereferenceable. Since the class invariant is
// that the iterator is always within `[begin, end]`, we only need to check it's not pointing to
// `end`. This is easier for the optimizer because it aligns with the `iter != container.end()`
// checks that typical callers already use (see
// https://github.com/llvm/llvm-project/issues/78829).
// checks that typical callers already use (see https://llvm.org/PR78829).
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 reference operator*() const _NOEXCEPT {
_LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(
__current_ != __end_, "__bounded_iter::operator*: Attempt to dereference an iterator at the end");
Expand Down
2 changes: 1 addition & 1 deletion libcxx/include/__iterator/concepts.h
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ concept __signed_integer_like = signed_integral<_Tp>;

template <class _Ip>
concept weakly_incrementable =
// TODO: remove this once the clang bug is fixed (bugs.llvm.org/PR48173).
// TODO: remove this once the clang bug is fixed (https://llvm.org/PR48173).
!same_as<_Ip, bool> && // Currently, clang does not handle bool correctly.
movable<_Ip> && requires(_Ip __i) {
typename iter_difference_t<_Ip>;
Expand Down
2 changes: 1 addition & 1 deletion libcxx/include/__math/hypot.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ inline _LIBCPP_HIDE_FROM_ABI __promote_t<_A1, _A2> hypot(_A1 __x, _A2 __y) _NOEX
// Computes the three-dimensional hypotenuse: `std::hypot(x,y,z)`.
// The naive implementation might over-/underflow which is why this implementation is more involved:
// If the square of an argument might run into issues, we scale the arguments appropriately.
// See https://github.com/llvm/llvm-project/issues/92782 for a detailed discussion and summary.
// See https://llvm.org/PR92782 for a detailed discussion and summary.
template <class _Real>
_LIBCPP_HIDE_FROM_ABI _Real __hypot(_Real __x, _Real __y, _Real __z) {
// Factors needed to determine if over-/underflow might happen
Expand Down
2 changes: 1 addition & 1 deletion libcxx/include/__memory/compressed_pair.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
//
// Furthermore, that alignment must be the same as what was used in the old __compressed_pair layout, so we must
// handle reference types specially since alignof(T&) == alignof(T).
// See https://github.com/llvm/llvm-project/issues/118559.
// See https://llvm.org/PR118559.

#ifndef _LIBCPP_ABI_NO_COMPRESSED_PAIR_PADDING

Expand Down
2 changes: 1 addition & 1 deletion libcxx/include/__vector/vector_bool.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
#include <__bit_reference>
#include <__config>
#include <__functional/unary_function.h>
#include <__fwd/bit_reference.h> // TODO: This is a workaround for https://github.com/llvm/llvm-project/issues/131814
#include <__fwd/bit_reference.h> // TODO: This is a workaround for https://llvm.org/PR131814
#include <__fwd/functional.h>
#include <__fwd/vector.h>
#include <__iterator/distance.h>
Expand Down
10 changes: 5 additions & 5 deletions libcxx/include/module.modulemap.in
Original file line number Diff line number Diff line change
Expand Up @@ -842,7 +842,7 @@ module std [system] {
module stable_partition { header "__algorithm/stable_partition.h" }
module stable_sort {
header "__algorithm/stable_sort.h"
export std.memory.unique_temporary_buffer // TODO: Workaround for https://github.com/llvm/llvm-project/issues/120108
export std.memory.unique_temporary_buffer // TODO: Workaround for https://llvm.org/PR120108
}
module swap_ranges { header "__algorithm/swap_ranges.h" }
module three_way_comp_ref_type { header "__algorithm/three_way_comp_ref_type.h" }
Expand Down Expand Up @@ -1260,7 +1260,7 @@ module std [system] {
module directory_entry { header "__filesystem/directory_entry.h" }
module directory_iterator {
header "__filesystem/directory_iterator.h"
// This is a workaround for https://github.com/llvm/llvm-project/issues/120108.
// This is a workaround for https://llvm.org/PR120108.
export *
}
module directory_options { header "__filesystem/directory_options.h" }
Expand Down Expand Up @@ -1637,7 +1637,7 @@ module std [system] {
module allocation_guard { header "__memory/allocation_guard.h" }
module allocator {
header "__memory/allocator.h"
export * // TODO: Workaround for https://github.com/llvm/llvm-project/issues/120108
export * // TODO: Workaround for https://llvm.org/PR120108
}
module allocator_arg_t { header "__memory/allocator_arg_t.h" }
module allocator_destructor { header "__memory/allocator_destructor.h" }
Expand Down Expand Up @@ -1682,7 +1682,7 @@ module std [system] {
header "__memory/unique_temporary_buffer.h"
export std.memory.unique_ptr
export std_core.type_traits.is_constant_evaluated
export * // TODO: Workaround for https://github.com/llvm/llvm-project/issues/120108
export * // TODO: Workaround for https://llvm.org/PR120108
}
module uses_allocator { header "__memory/uses_allocator.h" }
module uses_allocator_construction { header "__memory/uses_allocator_construction.h" }
Expand Down Expand Up @@ -1721,7 +1721,7 @@ module std [system] {
module allocate {
header "__new/allocate.h"
export std.utility.element_count // used as part of the API
export * // TODO: Workaround for https://github.com/llvm/llvm-project/issues/120108
export * // TODO: Workaround for https://llvm.org/PR120108
}
module destroying_delete_t { header "__new/destroying_delete_t.h" }
module exceptions { header "__new/exceptions.h" }
Expand Down
2 changes: 1 addition & 1 deletion libcxx/include/string
Original file line number Diff line number Diff line change
Expand Up @@ -2258,7 +2258,7 @@ private:
(void)__new_mid;
# if _LIBCPP_INSTRUMENTED_WITH_ASAN
# if defined(__APPLE__)
// TODO: remove after addressing issue #96099 (https://github.com/llvm/llvm-project/issues/96099)
// TODO: remove after addressing issue #96099 (https://llvm.org/PR96099)
if (!__is_long())
return;
# endif
Expand Down
2 changes: 1 addition & 1 deletion libcxx/include/string_view
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,7 @@ public:
_LIBCPP_CONSTEXPR _LIBCPP_HIDE_FROM_ABI basic_string_view substr(size_type __pos = 0, size_type __n = npos) const {
// Use the `__assume_valid` form of the constructor to avoid an unnecessary check. Any substring of a view is a
// valid view. In particular, `size()` is known to be smaller than `numeric_limits<difference_type>::max()`, so the
// new size is also smaller. See also https://github.com/llvm/llvm-project/issues/91634.
// new size is also smaller. See also https://llvm.org/PR91634.
return __pos > size() ? (__throw_out_of_range("string_view::substr"), basic_string_view())
: basic_string_view(__assume_valid(), data() + __pos, std::min(__n, size() - __pos));
}
Expand Down
2 changes: 1 addition & 1 deletion libcxx/src/atomic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ static void __libcpp_contention_wait(__cxx_atomic_contention_t volatile* __conte
__cxx_atomic_contention_t const volatile* __platform_state,
__cxx_contention_t __old_value) {
__cxx_atomic_fetch_add(__contention_state, __cxx_contention_t(1), memory_order_relaxed);
// https://github.com/llvm/llvm-project/issues/109290
// https://llvm.org/PR109290
// There are no platform guarantees of a memory barrier in the platform wait implementation
__cxx_atomic_thread_fence(memory_order_seq_cst);
// We sleep as long as the monitored value hasn't changed.
Expand Down
2 changes: 1 addition & 1 deletion libcxx/src/experimental/tzdb.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -766,7 +766,7 @@ void __init_tzdb(tzdb& __tzdb, __tz::__rules_storage_type& __rules) {
// On Linux systems it seems /etc/timezone is deprecated and being phased out.
// This file is used when /etc/localtime does not exist, or when it exists but
// is not a symlink. For more information and links see
// https://github.com/llvm/llvm-project/issues/105634
// https://llvm.org/PR105634

string __name = chrono::__current_zone_environment();

Expand Down
2 changes: 1 addition & 1 deletion libcxx/test/extensions/posix/xopen_source.gen.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
# We may not want to guarantee this forever, but since this works today and
# it's something that users rely on, it makes sense to put a test on it.
#
# https://github.com/llvm/llvm-project/issues/117630
# https://llvm.org/PR117630

# RUN: %{python} %s %{libcxx-dir}/utils
# END.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
// If we decide to make reference comparators ill-formed, this test would become
// unnecessary.
//
// See https://github.com/llvm/llvm-project/issues/118559 for more details.
// See https://llvm.org/PR118559 for more details.

#include <set>
#include <map>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
// XFAIL: FROZEN-CXX03-HEADERS-FIXME

// Verify that __bounded_iter does not accept non-contiguous iterators as determined by __libcpp_is_contiguous_iterator.
// static_assert should be used, see https://github.com/llvm/llvm-project/issues/115002.
// static_assert should be used, see https://llvm.org/PR115002.
// __wrap_iter cannot be so handled because it may directly wrap user-defined fancy pointers in libc++'s vector.

#include <deque>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
// template<class T, class U> complex<__promote_t<T, U>> pow(const T&, const complex<U>&);

// Test that these additional overloads are free from catching std::complex<non-floating-point>,
// which is expected by several 3rd party libraries, see https://github.com/llvm/llvm-project/issues/109858.
// which is expected by several 3rd party libraries, see https://llvm.org/PR109858.
//
// Note that we reserve the right to break this in the future if we have a reason to, but for the time being,
// make sure we don't break this property unintentionally.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
// UNSUPPORTED: apple-clang-15

// This test ensures that we retain a way to disable availability markup on Apple platforms
// in order to work around Clang bug https://github.com/llvm/llvm-project/issues/134151.
// in order to work around Clang bug https://llvm.org/PR134151.
//
// Once that bug has been fixed or once we've made changes to libc++'s use of availability
// that render that workaround unnecessary, the macro and this test can be removed.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ constexpr bool test() {
test_copy_and_move<int*, const int*>();

// `memmove` does not support volatile pointers.
// (See also https://github.com/llvm/llvm-project/issues/28901).
// (See also https://llvm.org/PR28527).
if (!std::is_constant_evaluated()) {
test_both_directions<volatile int, int>();
test_both_directions<volatile int, volatile int>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@
// but not rvalue callable to algorithms. While it is technically ill-formed for users
// to provide us such predicates, this test is useful for libc++ to ensure that we check
// predicate requirements correctly (i.e. that we check them on lvalues and not on
// rvalues). See https://github.com/llvm/llvm-project/issues/69554 for additional
// context.
// rvalues). See https://llvm.org/PR69554 for additional context.

#include <algorithm>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,8 @@

// XFAIL: availability-synchronization_library-missing

// This is a regression test for https://github.com/llvm/llvm-project/issues/85107, which describes
// how we were using UL_COMPARE_AND_WAIT instead of UL_COMPARE_AND_WAIT64 in the implementation of
// atomic::wait, leading to potential infinite hangs.
// This is a regression test for https://llvm.org/PR85107, which describes how we were using UL_COMPARE_AND_WAIT instead
// of UL_COMPARE_AND_WAIT64 in the implementation of atomic::wait, leading to potential infinite hangs.

#include <atomic>
#include <cassert>
Expand All @@ -36,7 +35,7 @@ int main(int, char**) {
}
});

// https://github.com/llvm/llvm-project/issues/85107
// https://llvm.org/PR85107
// [libc++] atomic_wait uses UL_COMPARE_AND_WAIT when it should use UL_COMPARE_AND_WAIT64 on Darwin
constexpr std::__cxx_contention_t old_val = 0;
constexpr std::__cxx_contention_t new_val = old_val + (1ll << 32);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ void test() {
int main(int, char**) {
test<float>();
test<double>();
// TODO https://github.com/llvm/llvm-project/issues/47978
// TODO https://llvm.org/PR48634
// test<long double>();

return 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
// If we decide to make reference comparators ill-formed, this test would become
// unnecessary.
//
// See https://github.com/llvm/llvm-project/issues/118559 for more details.
// See https://https://llvm.org/PR118559 for more details.

#include <set>
#include <map>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

// <flat_set>

// https://github.com/llvm/llvm-project/issues/119016
// https://https://llvm.org/PR119016

#include <flat_set>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
// As an extension, libc++ flat containers support inserting a non forward range into
// a pre-C++23 container that doesn't provide insert_range(...), since many containers
// out there are in that situation.
// https://github.com/llvm/llvm-project/issues/136656
// https://https://llvm.org/PR136656

#include <algorithm>
#include <cassert>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

// <flat_set>

// https://github.com/llvm/llvm-project/issues/119016
// https://llvm.org/PR119016

#include <flat_set>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@

// As an extension, libc++ flat containers support inserting a non forward range into
// a pre-C++23 container that doesn't provide insert_range(...), since many containers
// out there are in that situation.
// https://github.com/llvm/llvm-project/issues/136656
// out there are in that situation. See https://llvm.org/PR136656

#include <algorithm>
#include <cassert>
Expand Down
Loading
Loading