cxx-casting.cpp revision 5f016e2cb5d11daeb237544de1c5d59f20fe1a6e
15f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer// RUN: clang -fsyntax-only %s
25f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer// XFAIL: *
35f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
45f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerchar *const_cast_test(const char *var)
55f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer{
65f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer  return const_cast<char*>(var);
75f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer}
85f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
95f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer#if 0
105f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer// FIXME: Uncomment when C++ is supported more.
115f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerstruct A {
125f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer  virtual ~A() {}
135f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer};
145f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
155f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerstruct B : public A {
165f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer};
175f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
185f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerstruct B *dynamic_cast_test(struct A *a)
195f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer{
205f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer  return dynamic_cast<struct B*>(a);
215f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer}
225f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer#endif
235f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
245f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerchar *reinterpret_cast_test()
255f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer{
265f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer  return reinterpret_cast<char*>(0xdeadbeef);
275f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer}
285f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
295f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerdouble static_cast_test(int i)
305f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer{
315f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer  return static_cast<double>(i);
325f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer}
33