| Daniel Dunbar | a45cf5b | 2009-03-24 02:24:46 +0000 | [diff] [blame] | 1 | // RUN: clang-cc -emit-llvm < %s |
| Gabor Greif | f7b1f66 | 2007-07-13 22:15:44 +0000 | [diff] [blame] | 2 | |
| Gabor Greif | 03a0073 | 2007-07-13 23:40:27 +0000 | [diff] [blame] | 3 | int main(void) |
| Gabor Greif | f7b1f66 | 2007-07-13 22:15:44 +0000 | [diff] [blame] | 4 | { |
| 5 | double _Complex a = 5; | ||||
| 6 | double _Complex b = 42; | ||||
| 7 | |||||
| Gabor Greif | 03a0073 | 2007-07-13 23:40:27 +0000 | [diff] [blame] | 8 | return a * b != b * a; |
| Gabor Greif | f7b1f66 | 2007-07-13 22:15:44 +0000 | [diff] [blame] | 9 | } |
| Chris Lattner | e9a91ae | 2007-08-10 17:02:59 +0000 | [diff] [blame] | 10 | |
| 11 | _Complex double bar(int); | ||||
| 12 | void test(_Complex double*); | ||||
| Chris Lattner | afd455c | 2007-08-23 23:49:47 +0000 | [diff] [blame] | 13 | void takecomplex(_Complex double); |
| Chris Lattner | e9a91ae | 2007-08-10 17:02:59 +0000 | [diff] [blame] | 14 | |
| 15 | void test2(int c) { | ||||
| 16 | _Complex double X; | ||||
| 17 | X = bar(1); | ||||
| 18 | test(&X); | ||||
| Chris Lattner | afd455c | 2007-08-23 23:49:47 +0000 | [diff] [blame] | 19 | takecomplex(X); |
| Chris Lattner | e9a91ae | 2007-08-10 17:02:59 +0000 | [diff] [blame] | 20 | } |
| 21 | |||||
| Chris Lattner | afd455c | 2007-08-23 23:49:47 +0000 | [diff] [blame] | 22 | _Complex double g1, g2; |
| Chris Lattner | 02aac86 | 2007-08-26 22:41:57 +0000 | [diff] [blame] | 23 | _Complex float cf; |
| 24 | double D; | ||||
| Chris Lattner | afd455c | 2007-08-23 23:49:47 +0000 | [diff] [blame] | 25 | |
| 26 | void test3() { | ||||
| 27 | g1 = g1 + g2; | ||||
| 28 | g1 = g1 - g2; | ||||
| 29 | g1 = g1 * g2; | ||||
| 30 | g1 = +-~g1; | ||||
| Chris Lattner | 9f0ad96 | 2007-08-24 21:20:17 +0000 | [diff] [blame] | 31 | |
| 32 | double Gr = __real g1; | ||||
| Chris Lattner | 02aac86 | 2007-08-26 22:41:57 +0000 | [diff] [blame] | 33 | |
| Chris Lattner | 23bf38b | 2007-08-27 16:37:44 +0000 | [diff] [blame] | 34 | cf += D; |
| Eli Friedman | 8b7b1b1 | 2009-03-28 01:22:36 +0000 | [diff] [blame^] | 35 | // FIXME: Currently unsupported! |
| 36 | //D += cf; | ||||
| Chris Lattner | 02aac86 | 2007-08-26 22:41:57 +0000 | [diff] [blame] | 37 | cf /= g1; |
| Chris Lattner | 23bf38b | 2007-08-27 16:37:44 +0000 | [diff] [blame] | 38 | g1 = g1 + D; |
| 39 | g1 = D + g1; | ||||
| Chris Lattner | afd455c | 2007-08-23 23:49:47 +0000 | [diff] [blame] | 40 | } |
| Chris Lattner | 595db86 | 2007-10-30 22:53:42 +0000 | [diff] [blame] | 41 | |
| 42 | void t1() { | ||||
| 43 | (__real__ cf) = 4.0; | ||||
| 44 | } | ||||
| 45 | |||||
| 46 | void t2() { | ||||
| 47 | (__imag__ cf) = 4.0; | ||||
| 48 | } | ||||
| 49 | |||||
| Chris Lattner | f3bc75a | 2008-04-04 16:54:41 +0000 | [diff] [blame] | 50 | // PR1960 |
| 51 | void t3() { | ||||
| 52 | __complex__ long long v = 2; | ||||
| 53 | } | ||||
| 54 | |||||
| Anders Carlsson | 32ef8ce | 2008-11-25 22:21:48 +0000 | [diff] [blame] | 55 | // PR3131 |
| 56 | float _Complex t4(); | ||||
| 57 | |||||
| 58 | void t5() { | ||||
| 59 | float _Complex x = t4(); | ||||
| 60 | } | ||||
| 61 | |||||