// RUN: %clang_cc1 %s -triple x86_64-unknown-linux -fno-rtti-data -fsyntax-only -verify namespace std { struct type_info {}; } // namespace std class B { public: virtual ~B() = default; }; class D1 : public B { public: ~D1() = default; }; void f() { B *b = new D1(); auto d = dynamic_cast(b); // expected-warning{{dynamic_cast will not work since RTTI data is disabled by -fno-rtti-data}} void *v = dynamic_cast(b); (void)typeid(int); (void)typeid(b); (void)typeid(*b); // expected-warning{{typeid will not work since RTTI data is disabled by -fno-rtti-data}} B b2 = *b; (void)typeid(b2); (void)typeid(*&b2); // expected-warning{{typeid will not work since RTTI data is disabled by -fno-rtti-data}} (void)typeid((B &)b2); B &br = b2; (void)typeid(br); // expected-warning{{typeid will not work since RTTI data is disabled by -fno-rtti-data}} (void)typeid(&br); }