xref: /aosp_15_r20/external/clang/test/PCH/cxx-traits.h (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // Header for PCH test cxx-traits.cpp
2*67e74705SXin Li 
3*67e74705SXin Li namespace n {
4*67e74705SXin Li 
5*67e74705SXin Li template<typename _Tp>
6*67e74705SXin Li struct __is_pod { // expected-warning {{keyword '__is_pod' will be made available as an identifier for the remainder of the translation unit}}
7*67e74705SXin Li   enum { __value };
8*67e74705SXin Li };
9*67e74705SXin Li 
10*67e74705SXin Li template<typename _Tp>
11*67e74705SXin Li struct __is_empty { // expected-warning {{keyword '__is_empty' will be made available as an identifier for the remainder of the translation unit}}
12*67e74705SXin Li   enum { __value };
13*67e74705SXin Li };
14*67e74705SXin Li 
15*67e74705SXin Li template<typename T, typename ...Args>
16*67e74705SXin Li struct is_trivially_constructible {
17*67e74705SXin Li   static const bool value = __is_trivially_constructible(T, Args...);
18*67e74705SXin Li };
19*67e74705SXin Li 
20*67e74705SXin Li struct __is_abstract {};  // expected-warning {{made available}}
21*67e74705SXin Li struct __is_arithmetic {};  // expected-warning {{made available}}
22*67e74705SXin Li struct __is_array {};  // expected-warning {{made available}}
23*67e74705SXin Li struct __is_assignable {};  // expected-warning {{made available}}
24*67e74705SXin Li struct __is_base_of {};  // expected-warning {{made available}}
25*67e74705SXin Li struct __is_class {};  // expected-warning {{made available}}
26*67e74705SXin Li struct __is_complete_type {};  // expected-warning {{made available}}
27*67e74705SXin Li struct __is_compound {};  // expected-warning {{made available}}
28*67e74705SXin Li struct __is_const {};  // expected-warning {{made available}}
29*67e74705SXin Li struct __is_constructible {};  // expected-warning {{made available}}
30*67e74705SXin Li struct __is_convertible {};  // expected-warning {{made available}}
31*67e74705SXin Li struct __is_convertible_to {};  // expected-warning {{made available}}
32*67e74705SXin Li struct __is_destructible {};  // expected-warning {{made available}}
33*67e74705SXin Li struct __is_enum {};  // expected-warning {{made available}}
34*67e74705SXin Li struct __is_floating_point {};  // expected-warning {{made available}}
35*67e74705SXin Li struct __is_final {};  // expected-warning {{made available}}
36*67e74705SXin Li struct __is_function {};  // expected-warning {{made available}}
37*67e74705SXin Li struct __is_fundamental {};  // expected-warning {{made available}}
38*67e74705SXin Li struct __is_integral {};  // expected-warning {{made available}}
39*67e74705SXin Li struct __is_interface_class {};  // expected-warning {{made available}}
40*67e74705SXin Li struct __is_literal {};  // expected-warning {{made available}}
41*67e74705SXin Li struct __is_lvalue_expr {};  // expected-warning {{made available}}
42*67e74705SXin Li struct __is_lvalue_reference {};  // expected-warning {{made available}}
43*67e74705SXin Li struct __is_member_function_pointer {};  // expected-warning {{made available}}
44*67e74705SXin Li struct __is_member_object_pointer {};  // expected-warning {{made available}}
45*67e74705SXin Li struct __is_member_pointer {};  // expected-warning {{made available}}
46*67e74705SXin Li struct __is_nothrow_assignable {};  // expected-warning {{made available}}
47*67e74705SXin Li struct __is_nothrow_constructible {};  // expected-warning {{made available}}
48*67e74705SXin Li struct __is_nothrow_destructible {};  // expected-warning {{made available}}
49*67e74705SXin Li struct __is_object {};  // expected-warning {{made available}}
50*67e74705SXin Li struct __is_pointer {};  // expected-warning {{made available}}
51*67e74705SXin Li struct __is_polymorphic {};  // expected-warning {{made available}}
52*67e74705SXin Li struct __is_reference {};  // expected-warning {{made available}}
53*67e74705SXin Li struct __is_rvalue_expr {};  // expected-warning {{made available}}
54*67e74705SXin Li struct __is_rvalue_reference {};  // expected-warning {{made available}}
55*67e74705SXin Li struct __is_same {};  // expected-warning {{made available}}
56*67e74705SXin Li struct __is_scalar {};  // expected-warning {{made available}}
57*67e74705SXin Li struct __is_sealed {};  // expected-warning {{made available}}
58*67e74705SXin Li struct __is_signed {};  // expected-warning {{made available}}
59*67e74705SXin Li struct __is_standard_layout {};  // expected-warning {{made available}}
60*67e74705SXin Li struct __is_trivial {};  // expected-warning {{made available}}
61*67e74705SXin Li struct __is_trivially_assignable {};  // expected-warning {{made available}}
62*67e74705SXin Li struct __is_trivially_constructible {};  // expected-warning {{made available}}
63*67e74705SXin Li struct __is_trivially_copyable {};  // expected-warning {{made available}}
64*67e74705SXin Li struct __is_union {};  // expected-warning {{made available}}
65*67e74705SXin Li struct __is_unsigned {};  // expected-warning {{made available}}
66*67e74705SXin Li struct __is_void {};  // expected-warning {{made available}}
67*67e74705SXin Li struct __is_volatile {};  // expected-warning {{made available}}
68*67e74705SXin Li 
69*67e74705SXin Li 
70*67e74705SXin Li }
71