struct A {};
struct B : public A {}; struct C1 : public virtual B {}; struct C2 : public virtual B {};
struct D : public C1, public C2 {}; struct E : private A {}; struct F : public C1 {}; struct G1 : public B {};
struct G2 : public B {};
struct H : public G1, public G2 {};
enum Enum { En1, En2 };
enum Onom { On1, On2 };
struct Co1 { operator int(); };
struct Co2 { Co2(int); };
struct Co3 { };
struct Co4 { Co4(Co3); operator Co3(); };
void t_529_2()
{
int i = 1;
(void)static_cast<float>(i);
double d = 1.0;
(void)static_cast<float>(d);
(void)static_cast<int>(d);
(void)static_cast<char>(i);
(void)static_cast<unsigned long>(i);
(void)static_cast<int>(En1);
(void)static_cast<double>(En1);
(void)static_cast<int&>(i);
(void)static_cast<const int&>(i);
int ar[1];
(void)static_cast<const int*>(ar);
(void)static_cast<void (*)()>(t_529_2);
(void)static_cast<void*>(0);
(void)static_cast<void*>((int*)0);
(void)static_cast<volatile const void*>((const int*)0);
(void)static_cast<A*>((B*)0);
(void)static_cast<A&>(*((B*)0));
(void)static_cast<const B*>((C1*)0);
(void)static_cast<B&>(*((C1*)0));
(void)static_cast<A*>((D*)0);
(void)static_cast<const A&>(*((D*)0));
(void)static_cast<int B::*>((int A::*)0);
(void)static_cast<void (B::*)()>((void (A::*)())0);
(void)static_cast<int>(Co1());
(void)static_cast<Co2>(1);
(void)static_cast<Co3>(static_cast<Co4>(Co3()));
(void)static_cast<void*>((const int*)0); (void)static_cast<A*>((E*)0); (void)static_cast<A*>((H*)0); (void)static_cast<int>((int*)0); (void)static_cast<A**>((B**)0); (void)static_cast<char&>(i); }
void t_529_4()
{
static_cast<void>(1);
static_cast<void>(t_529_4);
}
void t_529_5_8()
{
(void)static_cast<B*>((A*)0);
(void)static_cast<B&>(*((A*)0));
(void)static_cast<const G1*>((A*)0);
(void)static_cast<const G1&>(*((A*)0));
(void)static_cast<C1*>((A*)0); (void)static_cast<C1&>(*((A*)0)); (void)static_cast<D*>((A*)0); (void)static_cast<D&>(*((A*)0)); (void)static_cast<B*>((const A*)0); (void)static_cast<B&>(*((const A*)0)); (void)static_cast<E*>((A*)0); (void)static_cast<E&>(*((A*)0)); (void)static_cast<H*>((A*)0); (void)static_cast<H&>(*((A*)0)); (void)static_cast<E*>((B*)0); (void)static_cast<E&>(*((B*)0));
}
void t_529_7()
{
(void)static_cast<Enum>(1);
(void)static_cast<Enum>(1.0);
(void)static_cast<Onom>(En1);
(void)static_cast<Enum>((int*)0); }
void t_529_10()
{
(void)static_cast<int*>((void*)0);
(void)static_cast<const A*>((void*)0);
(void)static_cast<int*>((const void*)0); (void)static_cast<void (*)()>((void*)0); }
void t_529_9()
{
(void)static_cast<int A::*>((int B::*)0);
(void)static_cast<int A::*>((int H::*)0); (void)static_cast<int A::*>((int F::*)0); }
namespace pr5261 {
struct base {};
template<typename E> struct derived : public base {};
template<typename E> struct outer {
base *pb;
~outer() { (void)static_cast<derived<E>*>(pb); }
};
outer<int> EntryList;
}
struct X0;
struct X1 {
X1();
X1(X1&);
X1(const X0&);
operator X0() const;
};
struct X0 { };
void test_ctor_init() {
(void)static_cast<X1>(X1());
}
struct X2 {
};
struct X3 : X2 {
};
struct X4 {
typedef const X3 X3_typedef;
void f() const {
(void)static_cast<X3_typedef*>(x2);
}
const X2 *x2;
};
void PR5897() { (void)static_cast<const int(*)[1]>((const void*)0); }
namespace PR6072 {
struct A { };
struct B : A { void f(int); void f(); }; struct C : B { };
struct D { };
void f() {
(void)static_cast<void (A::*)()>(&B::f);
(void)static_cast<void (B::*)()>(&B::f);
(void)static_cast<void (C::*)()>(&B::f);
(void)static_cast<void (D::*)()>(&B::f); }
}