1 //===----------------------------------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 // UNSUPPORTED: c++03, c++11, c++14, c++17 10 11 // Make sure that std::bit_cast works with std::complex. Test case extracted from 12 // https://github.com/llvm/llvm-project/issues/94620. 13 14 #include <bit> 15 #include <complex> 16 17 template <class T> test()18constexpr void test() { 19 using Complex = std::complex<T>; 20 unsigned char data[sizeof(Complex)] = {0}; 21 22 [[maybe_unused]] Complex c = std::bit_cast<Complex>(data); 23 } 24 test_all()25constexpr bool test_all() { 26 test<float>(); 27 test<double>(); 28 test<long double>(); 29 return true; 30 } 31 main(int,char **)32int main(int, char**) { 33 test_all(); 34 static_assert(test_all()); 35 return 0; 36 } 37