enum Enum { eval = 1 };
const int cval = 2;
const Enum ceval = eval;
struct Struct {
static const int sval = 3;
static const Enum seval = eval;
};
template <int itval, Enum etval> struct C {
enum E {
v1 = 1,
v2 = eval,
v3 = cval,
v4 = ceval,
v5 = Struct::sval,
v6 = Struct::seval,
v7 = itval,
v8 = etval,
v9 = (int)1.5,
v10 = sizeof(Struct),
v11 = true? 1 + cval * Struct::sval ^ itval / (int)1.5 - sizeof(Struct) : 0
};
unsigned
b1 : 1,
b2 : eval,
b3 : cval,
b4 : ceval,
b5 : Struct::sval,
b6 : Struct::seval,
b7 : itval,
b8 : etval,
b9 : (int)1.5,
b10 : sizeof(Struct),
b11 : true? 1 + cval * Struct::sval ^ itval / (int)1.5 - sizeof(Struct) : 0
;
static const int
i1 = 1,
i2 = eval,
i3 = cval,
i4 = ceval,
i5 = Struct::sval,
i6 = Struct::seval,
i7 = itval,
i8 = etval,
i9 = (int)1.5,
i10 = sizeof(Struct),
i11 = true? 1 + cval * Struct::sval ^ itval / (int)1.5 - sizeof(Struct) : 0
;
void f(int cond) {
switch(cond) {
case 0 + 1:
case 100 + eval:
case 200 + cval:
case 300 + ceval:
case 400 + Struct::sval:
case 500 + Struct::seval:
case 600 + itval:
case 700 + etval:
case 800 + (int)1.5:
case 900 + sizeof(Struct):
case 1000 + (true? 1 + cval * Struct::sval ^
itval / (int)1.5 - sizeof(Struct) : 0):
;
}
}
typedef C<itval, etval> T0;
};
template struct C<1, eval>;
template struct C<cval, ceval>;
template struct C<Struct::sval, Struct::seval>;
enum {
a = sizeof(int) == 8,
b = a? 8 : 4
};
void diags(int n) {
switch (n) {
case (1/0, 1): case (int)(1/0, 2.0): case __imag(1/0): case (int)__imag((double)(1/0)): ;
}
}
namespace IntOrEnum {
const int k = 0;
const int &p = k; template<int n> struct S {};
S<p> s; }
extern const int recurse1;
const int recurse2 = recurse1; const int recurse1 = 1;
int array1[recurse1]; int array2[recurse2];
namespace FloatConvert {
typedef int a[(int)42.3];
typedef int a[(int)42.997];
typedef int b[(long long)4e20]; }
namespace test3 {
struct X; struct Y { bool b; X x; }; int f() { return Y().b; }
}
namespace test4 {
template <int> struct A {};
int const i = { 42 };
typedef A<i> Ai; }
namespace rdar16064952 {
template < typename T > void fn1() {
T b;
unsigned w = ({int a = b.val[sizeof(0)]; 0; }); }
}
char PR17381_ice = 1000000 * 1000000;
namespace PR31701 {
struct C {
template<int i> static int n; };
template <int M> class D;
template <int M>
template<int i> void D<M>::set() { const C c = C::n<i>;
}
}