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 Workertest() 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 Workerint 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