1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
2 | |
3 | void f() |
4 | { |
5 | (void)typeid(int); // expected-error {{you need to include <typeinfo> before using the 'typeid' operator}} |
6 | } |
7 | |
8 | namespace std { |
9 | class type_info; |
10 | } |
11 | |
12 | void g() |
13 | { |
14 | (void)typeid(int); |
15 | } |
16 | |
17 | struct X; // expected-note 3{{forward declaration}} |
18 | |
19 | void g1(X &x) { |
20 | (void)typeid(X); // expected-error{{'typeid' of incomplete type 'X'}} |
21 | (void)typeid(X&); // expected-error{{'typeid' of incomplete type 'X'}} |
22 | (void)typeid(x); // expected-error{{'typeid' of incomplete type 'X'}} |
23 | } |
24 | |
25 | void h(int i) { |
26 | char V[i]; |
27 | typeid(V); // expected-error{{'typeid' of variably modified type 'char [i]'}} |
28 | typeid(char [i]); // expected-error{{'typeid' of variably modified type 'char [i]'}} |
29 | } |
30 | |