You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
sorry for my silly way to reproduce: modify the test file to following script and run test-suite build
modify llvm-project/libcxx/test/std/experimental/simd/simd.traits/is_abi_tag.pass.cpp to the following code
#include <experimental/simd>
#include<iostream>
namespace ex = std::experimental::parallelism_v2;
int main() {
bool v = ex::is_abi_tag_v<ex::simd<long double >>;
std::cout<<v<<'\n';
bool v2 = ex::is_abi_tag_v<ex::simd_mask<long double >>;// note this line will throw error
}
run following command
cd ~/llvm-project && mkdir -p llvm-project/build
cd ~/llvm-project/build && cmake ../runtimes -G Ninja -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" -DCMAKE_C_COMPILER="$(which clang)" -DCMAKE_CXX_COMPILER="$(which clang++)"
cd ~/llvm-project/build && ninja cxx-test-depends
cd to llvm-project/build && bin/llvm-lit -av libcxx/test/std/experimental/simd/simd.traits/is_abi_tag.pass.cpp &> err.log
check the llvm-project/build/err.log
error log
error log
In file included from /root/llvm-project/libcxx/test/std/experimental/simd/simd.traits/is_abi_tag.pass.cpp:19:
In file included from /root/llvm-project/build/include/c++/v1/experimental/simd:693:
In file included from /root/llvm-project/build/include/c++/v1/__simd/abi/builtin.h:19:
/root/llvm-project/build/include/c++/v1/__simd/abi/simd_storage.h:64:41: error: invalid application of 'sizeof' to an incomplete type 'void'
_Tp __data __attribute__((vector_size(sizeof(_Tp) * _Np)));
^~~~~~~~~~~
/root/llvm-project/build/include/c++/v1/__simd/abi/simd_storage.h:75:57: note: in instantiation of template class 'std::experimental::__simd_storage<void, std::experimental::simd_abi::__vec_ext<1>>' requested here
struct __mask_storage <_Tp, simd_abi::__vec_ext<_Np>> : __simd_storage<decltype(__choose_mask_type<_Tp>()), simd_abi::__vec_ext<_Np>> {};
^
/root/llvm-project/build/include/c++/v1/experimental/simd:1942:12: note: in instantiation of template class 'std::experimental::__mask_storage<long double, std::experimental::simd_abi::__vec_ext<1>>' requested here
_Storage __s_;
^
/root/llvm-project/build/include/c++/v1/experimental/simd:979:48: note: in instantiation of template class 'std::experimental::simd_mask<long double, std::experimental::simd_abi::__vec_ext<1>>' requested here
struct __is_abi_tag_impl<_Tp, std::enable_if_t<_Tp::__is_abi_tag>> : std::bool_constant<_Tp::__is_abi_tag> {};
^
/root/llvm-project/build/include/c++/v1/experimental/simd:982:21: note: during template argument deduction for class template partial specialization '__is_abi_tag_impl<_Tp, std::enable_if_t<_Tp::__is_abi_tag>>' [with _Tp = std::experimental::simd_mask<long double, std::experimental::simd_abi::__vec_ext<1>>]
struct is_abi_tag : __is_abi_tag_impl<_Tp> {};
^
/root/llvm-project/build/include/c++/v1/experimental/simd:982:21: note: in instantiation of template class 'std::experimental::__is_abi_tag_impl<std::experimental::simd_mask<long double, std::experimental::simd_abi::__vec_ext<1>>>' requested here
/root/llvm-project/build/include/c++/v1/experimental/simd:985:38: note: in instantiation of template class 'std::experimental::is_abi_tag<std::experimental::simd_mask<long double, std::experimental::simd_abi::__vec_ext<1>>>' requested here
inline constexpr bool is_abi_tag_v = is_abi_tag<_Tp>::value;
^
/root/llvm-project/libcxx/test/std/experimental/simd/simd.traits/is_abi_tag.pass.cpp:119:15: note: in instantiation of variable template specialization 'std::experimental::is_abi_tag_v<std::experimental::simd_mask<long double, std::experimental::simd_abi::__vec_ext<1>>>' requested here
bool v = ex::is_abi_tag_v<ex::simd_mask<long double >>;
^
In file included from /root/llvm-project/libcxx/test/std/experimental/simd/simd.traits/is_abi_tag.pass.cpp:19:
In file included from /root/llvm-project/build/include/c++/v1/experimental/simd:693:
In file included from /root/llvm-project/build/include/c++/v1/__simd/abi/builtin.h:19:
/root/llvm-project/build/include/c++/v1/__simd/abi/simd_storage.h:71:32: error: argument may not have 'void' type
void __set(size_t __idx, _Tp __v) noexcept { __data[__idx] = __v; }
^
2 errors generated.
error: command failed with exit status: 1
--
********************
********************
Failed Tests (1):
libc++ :: std/experimental/simd/simd.traits/is_abi_tag.pass.cpp
Testing Time: 0.82s
Failed: 1
I'm not sure if it is fixed by commit d2b8a36. Please try it again.
And I think you can submit the implemented test cases to PR #46 as soon as possible, whether they can pass or not. Then I can use them to debug such problems.
I'm not sure if it is fixed by commit d2b8a36. Please try it again.
And I think you can submit the implemented test cases to PR #46 as soon as possible, whether they can pass or not. Then I can use them to debug such problems.
I got your point, sure, I will squash to one commit.
Also, you can directly bind my repo to test(git add upstream related things).
reproduce method
sorry for my silly way to reproduce: modify the test file to following script and run test-suite build
error log
error log
edit 1:
clang 14.0.0 and c++2b
compile config:
The text was updated successfully, but these errors were encountered: