1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | // RUN: %clang_cc1 -emit-llvm-only %s int main(void) { double _Complex a = 5; double _Complex b = 42; return a * b != b * a; } _Complex double bar(int); void test(_Complex double*); void takecomplex(_Complex double); void test2(int c) { _Complex double X; X = bar(1); test(&X); takecomplex(X); } _Complex double g1, g2; _Complex float cf; double D; void test3() { g1 = g1 + g2; g1 = g1 - g2; g1 = g1 * g2; g1 = +-~g1; double Gr = __real g1; cf += D; D += cf; cf /= g1; g1 = g1 + D; g1 = D + g1; } __complex__ int ci1, ci2; __complex__ short cs; int i; void test3int() { ci1 = ci1 + ci2; ci1 = ci1 - ci2; ci1 = ci1 * ci2; ci1 = +-~ci1; i = __real ci1; cs += i; D += cf; cs /= ci1; ci1 = ci1 + i; ci1 = i + ci1; } void t1() { (__real__ cf) = 4.0; } void t2() { (__imag__ cf) = 4.0; } // PR1960 void t3() { __complex__ long long v = 2; } // PR3131 float _Complex t4(); void t5() { float _Complex x = t4(); } void t6() { g1++; g1--; ++g1; --g1; ci1++; ci1--; ++ci1; --ci1; } // <rdar://problem/7958272> double t7(double _Complex c) { return __builtin_fabs(__real__(c)); } void t8() { __complex__ int *x = &(__complex__ int){1}; } const _Complex double test9const = 0; _Complex double test9func() { return test9const; } // D6217 void t91() { // Check for proper type promotion of conditional expression char c[(int)(sizeof(typeof((0 ? 2.0f : (_Complex double) 2.0f))) - sizeof(_Complex double))]; // Check for proper codegen (0 ? 2.0f : (_Complex double) 2.0f); } void t92() { // Check for proper type promotion of conditional expression char c[(int)(sizeof(typeof((0 ? (_Complex double) 2.0f : 2.0f))) - sizeof(_Complex double))]; // Check for proper codegen (0 ? (_Complex double) 2.0f : 2.0f); } |