blob: 93e25cf459c1da5a6ac552227e549c9361d1e175 [file] [log] [blame]
Chris Lattnerde0908b2008-04-04 16:54:41 +00001// RUN: clang -emit-llvm < %s
Chris Lattner4b009652007-07-25 00:24:17 +00002
3int main(void)
4{
5 double _Complex a = 5;
6 double _Complex b = 42;
7
8 return a * b != b * a;
9}
Chris Lattnerd2388882007-08-10 17:02:59 +000010
11_Complex double bar(int);
12void test(_Complex double*);
Chris Lattner1b4429a2007-08-23 23:49:47 +000013void takecomplex(_Complex double);
Chris Lattnerd2388882007-08-10 17:02:59 +000014
15void test2(int c) {
16 _Complex double X;
17 X = bar(1);
18 test(&X);
Chris Lattner1b4429a2007-08-23 23:49:47 +000019 takecomplex(X);
Chris Lattnerd2388882007-08-10 17:02:59 +000020}
21
Chris Lattner1b4429a2007-08-23 23:49:47 +000022_Complex double g1, g2;
Chris Lattner0e974f92007-08-26 22:41:57 +000023_Complex float cf;
24double D;
Chris Lattner1b4429a2007-08-23 23:49:47 +000025
26void test3() {
27 g1 = g1 + g2;
28 g1 = g1 - g2;
29 g1 = g1 * g2;
30 g1 = +-~g1;
Chris Lattner01211af2007-08-24 21:20:17 +000031
32 double Gr = __real g1;
Chris Lattner0e974f92007-08-26 22:41:57 +000033
Chris Lattnerf77c56e2007-08-27 16:37:44 +000034 cf += D;
Chris Lattner0e974f92007-08-26 22:41:57 +000035 D += cf;
36 cf /= g1;
Chris Lattnerf77c56e2007-08-27 16:37:44 +000037 g1 = g1 + D;
38 g1 = D + g1;
Chris Lattner1b4429a2007-08-23 23:49:47 +000039}
Chris Lattner5bf72022007-10-30 22:53:42 +000040
41void t1() {
42 (__real__ cf) = 4.0;
43}
44
45void t2() {
46 (__imag__ cf) = 4.0;
47}
48
Chris Lattnerde0908b2008-04-04 16:54:41 +000049// PR1960
50void t3() {
51 __complex__ long long v = 2;
52}
53