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