blob: af0dc7c11bb811257481bc3768b792322713ad2c (
plain)
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
|
// 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<D1 *>(b); // expected-warning{{dynamic_cast will not work since RTTI data is disabled by -fno-rtti-data}}
void *v = dynamic_cast<void *>(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);
}
|