xref: /aosp_15_r20/external/libcxx/test/std/numerics/complex.number/layout.pass.cpp (revision 58b9f456b02922dfdb1fad8a988d5fd8765ecb80)
1*58b9f456SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
2*58b9f456SAndroid Build Coastguard Worker //
3*58b9f456SAndroid Build Coastguard Worker //                     The LLVM Compiler Infrastructure
4*58b9f456SAndroid Build Coastguard Worker //
5*58b9f456SAndroid Build Coastguard Worker // This file is dual licensed under the MIT and the University of Illinois Open
6*58b9f456SAndroid Build Coastguard Worker // Source Licenses. See LICENSE.TXT for details.
7*58b9f456SAndroid Build Coastguard Worker //
8*58b9f456SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
9*58b9f456SAndroid Build Coastguard Worker 
10*58b9f456SAndroid Build Coastguard Worker // <complex>
11*58b9f456SAndroid Build Coastguard Worker 
12*58b9f456SAndroid Build Coastguard Worker #include <complex>
13*58b9f456SAndroid Build Coastguard Worker #include <cassert>
14*58b9f456SAndroid Build Coastguard Worker 
15*58b9f456SAndroid Build Coastguard Worker template <class T>
16*58b9f456SAndroid Build Coastguard Worker void
test()17*58b9f456SAndroid Build Coastguard Worker test()
18*58b9f456SAndroid Build Coastguard Worker {
19*58b9f456SAndroid Build Coastguard Worker     std::complex<T> z;
20*58b9f456SAndroid Build Coastguard Worker     T* a = (T*)&z;
21*58b9f456SAndroid Build Coastguard Worker     assert(0 == z.real());
22*58b9f456SAndroid Build Coastguard Worker     assert(0 == z.imag());
23*58b9f456SAndroid Build Coastguard Worker     assert(a[0] == z.real());
24*58b9f456SAndroid Build Coastguard Worker     assert(a[1] == z.imag());
25*58b9f456SAndroid Build Coastguard Worker     a[0] = 5;
26*58b9f456SAndroid Build Coastguard Worker     a[1] = 6;
27*58b9f456SAndroid Build Coastguard Worker     assert(a[0] == z.real());
28*58b9f456SAndroid Build Coastguard Worker     assert(a[1] == z.imag());
29*58b9f456SAndroid Build Coastguard Worker }
30*58b9f456SAndroid Build Coastguard Worker 
main()31*58b9f456SAndroid Build Coastguard Worker int main()
32*58b9f456SAndroid Build Coastguard Worker {
33*58b9f456SAndroid Build Coastguard Worker     test<float>();
34*58b9f456SAndroid Build Coastguard Worker     test<double>();
35*58b9f456SAndroid Build Coastguard Worker     test<long double>();
36*58b9f456SAndroid Build Coastguard Worker }
37