emulators/rpcs3: unbreak on -CURRENT after src@95aa617e4bf0

In file included from rpcs3/Emu/Cell/Modules/cellNetCtl.cpp:1:
In file included from rpcs3/stdafx.h:7:
In file included from Utilities/File.h:4:
rpcs3/util/shared_ptr.hpp:10:17: error: constexpr variable 'same_ptr_implicit_v<thread_future, thread_future_t<true, netstart_hack &, int>>' must be initialized by a constant expression
        constexpr bool same_ptr_implicit_v = std::is_convertible_v<const volatile From*, const volatile To*> ? is_same_ptr<From, To>() : false;
                       ^                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/util/shared_ptr.hpp:396:34: note: in instantiation of variable template specialization 'stx::same_ptr_implicit_v<thread_future, thread_future_t<true, netstart_hack &, int>>' requested here
                template <typename U> requires same_ptr_implicit_v<T, U>
                                               ^
rpcs3/util/shared_ptr.hpp:396:34: note: while substituting template arguments into constraint expression here
                template <typename U> requires same_ptr_implicit_v<T, U>
                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
Utilities/Thread.h:567:18: note: while checking constraint satisfaction for template 'shared_ptr<thread_future_t<true, netstart_hack &, int>>' required here
                                thread::push(std::move(target));
                                             ^~~
Utilities/Thread.h:567:18: note: in instantiation of function template specialization 'stx::shared_ptr<thread_future>::shared_ptr<thread_future_t<true, netstart_hack &, int>>' requested here
rpcs3/Emu/Cell/Modules/cellNetCtl.cpp:264:43: note: in instantiation of function template specialization 'named_thread<netstart_hack>::operator()<true, int>' requested here
        g_fxo->get<named_thread<netstart_hack>>()(0);
                                                 ^
rpcs3/util/types.hpp:1049:16: note: non-constexpr function 'allocate' cannot be used in a constant expression
                                X* ptr = a.allocate(1);
                                           ^
rpcs3/util/shared_ptr.hpp:10:105: note: in call to 'is_same_ptr()'
        constexpr bool same_ptr_implicit_v = std::is_convertible_v<const volatile From*, const volatile To*> ? is_same_ptr<From, To>() : false;
                                                                                                               ^
/usr/include/c++/v1/memory:1783:66: note: declared here
    _LIBCPP_NODISCARD_AFTER_CXX17 _LIBCPP_INLINE_VISIBILITY _Tp* allocate(size_t __n)
                                                                 ^
In file included from rpcs3/Emu/Cell/Modules/cellNetCtl.cpp:1:
In file included from rpcs3/stdafx.h:7:
In file included from Utilities/File.h:4:
rpcs3/util/shared_ptr.hpp:396:34: error: substitution into constraint expression resulted in a non-constant expression
                template <typename U> requires same_ptr_implicit_v<T, U>
                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
Utilities/Thread.h:567:18: note: while checking constraint satisfaction for template 'shared_ptr<thread_future_t<true, netstart_hack &, int>>' required here
                                thread::push(std::move(target));
                                             ^~~
Utilities/Thread.h:567:18: note: in instantiation of function template specialization 'stx::shared_ptr<thread_future>::shared_ptr<thread_future_t<true, netstart_hack &, int>>' requested here
rpcs3/Emu/Cell/Modules/cellNetCtl.cpp:264:43: note: in instantiation of function template specialization 'named_thread<netstart_hack>::operator()<true, int>' requested here
        g_fxo->get<named_thread<netstart_hack>>()(0);
                                                 ^
rpcs3/util/shared_ptr.hpp:396:34: note: initializer of 'same_ptr_implicit_v<thread_future, thread_future_t<true, netstart_hack &, int>>' is not a constant expression
                template <typename U> requires same_ptr_implicit_v<T, U>
                                               ^
rpcs3/util/shared_ptr.hpp:10:17: note: declared here
        constexpr bool same_ptr_implicit_v = std::is_convertible_v<const volatile From*, const volatile To*> ? is_same_ptr<From, To>() : false;
                       ^
In file included from rpcs3/Emu/Cell/Modules/cellNetCtl.cpp:3:
In file included from rpcs3/Emu/Cell/PPUModule.h:3:
In file included from rpcs3/Emu/Cell/PPUFunction.h:3:
In file included from rpcs3/Emu/Cell/PPUThread.h:3:
In file included from rpcs3/Emu/CPU/CPUThread.h:3:
Utilities/Thread.h:567:18: error: no viable conversion from 'typename remove_reference<single_ptr<thread_future_t<true, netstart_hack &, int>> &>::type' (aka 'stx::single_ptr<thread_future_t<true, netstart_hack &, int>>') to 'shared_ptr<thread_future>'
                                thread::push(std::move(target));
                                             ^~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellNetCtl.cpp:264:43: note: in instantiation of function template specialization 'named_thread<netstart_hack>::operator()<true, int>' requested here
        g_fxo->get<named_thread<netstart_hack>>()(0);
                                                 ^
rpcs3/util/shared_ptr.hpp:356:3: note: candidate constructor not viable: no known conversion from 'typename remove_reference<single_ptr<thread_future_t<true, netstart_hack &, int>> &>::type' (aka 'stx::single_ptr<thread_future_t<true, netstart_hack &, int>>') to 'const stx::shared_ptr<thread_future> &' for 1st argument
                shared_ptr(const shared_ptr& r) noexcept
                ^
rpcs3/util/shared_ptr.hpp:364:34: note: candidate constructor not viable: no known conversion from 'typename remove_reference<single_ptr<thread_future_t<true, netstart_hack &, int>> &>::type' (aka 'stx::single_ptr<thread_future_t<true, netstart_hack &, int>>') to 'std::nullptr_t' (aka 'nullptr_t') for 1st argument
                [[deprecated("Use null_ptr")]] shared_ptr(std::nullptr_t) = delete;
                                               ^
rpcs3/util/shared_ptr.hpp:383:3: note: candidate constructor not viable: no known conversion from 'typename remove_reference<single_ptr<thread_future_t<true, netstart_hack &, int>> &>::type' (aka 'stx::single_ptr<thread_future_t<true, netstart_hack &, int>>') to 'stx::shared_ptr<thread_future> &&' for 1st argument
                shared_ptr(shared_ptr&& r) noexcept
                ^
rpcs3/util/shared_ptr.hpp:376:3: note: candidate template ignored: could not match 'shared_ptr' against 'single_ptr'
                shared_ptr(const shared_ptr<U>& r) noexcept
                ^
rpcs3/util/shared_ptr.hpp:390:3: note: candidate template ignored: could not match 'shared_ptr' against 'single_ptr'
                shared_ptr(shared_ptr<U>&& r) noexcept
                ^
rpcs3/util/shared_ptr.hpp:397:3: note: candidate template ignored: failed template argument deduction
                shared_ptr(single_ptr<U>&& r) noexcept
                ^
rpcs3/util/shared_ptr.hpp:367:12: note: explicit constructor is not a candidate
                explicit shared_ptr(T* _this) noexcept
                         ^
rpcs3/util/shared_ptr.hpp:200:3: note: candidate function
                operator element_type*() const noexcept
                ^
rpcs3/util/shared_ptr.hpp:212:12: note: explicit conversion function is not a candidate
                explicit operator single_ptr<U>() && noexcept
                         ^
Utilities/Thread.h:187:37: note: passing argument to parameter here
        void push(shared_ptr<thread_future>);
                                           ^

Reported by:	pkg-fallout
This commit is contained in:
Jan Beich 2021-06-07 05:06:25 +00:00
parent aa5d490c80
commit e8aa9591b3

View File

@ -89,7 +89,7 @@ CXX= clang++${LLVM_DEFAULT}
CPP= clang-cpp${LLVM_DEFAULT}
# XXX Drop after FreeBSD 12.2 EOL
.if make(makesum) || (!exists(/usr/include/c++/v1/concepts) && exists(/usr/lib/libc++.so))
.if make(makesum) || (!exists(/usr/include/c++/v1/__bits) && exists(/usr/lib/libc++.so))
MASTER_SITES+= https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}/:libcxx
DISTFILES+= libcxx-${LLVM_VER}.src.tar.xz:libcxx
CXXFLAGS+= -nostdinc++ -D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS -isystem${WRKDIR}/libcxx-${LLVM_VER}.src/include