Branch data Line data Source code
1 : : /*
2 : : * Copyright (c) 2019 Andrew Kelley
3 : : *
4 : : * This file is part of zig, which is MIT licensed.
5 : : * See http://opensource.org/licenses/MIT
6 : : */
7 : :
8 : :
9 : : /*
10 : : * The point of this file is to contain all the Clang C++ API interaction so that:
11 : : * 1. The compile time of other files is kept under control.
12 : : * 2. Provide a C interface to the Clang functions we need for self-hosting purposes.
13 : : * 3. Prevent C++ from infecting the rest of the project.
14 : : */
15 : : #include "zig_clang.h"
16 : :
17 : : #if __GNUC__ >= 8
18 : : #pragma GCC diagnostic push
19 : : #pragma GCC diagnostic ignored "-Wclass-memaccess"
20 : : #endif
21 : :
22 : : #include <clang/Frontend/ASTUnit.h>
23 : : #include <clang/Frontend/CompilerInstance.h>
24 : : #include <clang/AST/APValue.h>
25 : : #include <clang/AST/Expr.h>
26 : :
27 : : #if __GNUC__ >= 8
28 : : #pragma GCC diagnostic pop
29 : : #endif
30 : :
31 : : // Detect additions to the enum
32 : 0 : void ZigClang_detect_enum_BO(clang::BinaryOperatorKind op) {
33 [ # # ]: 0 : switch (op) {
34 : 0 : case clang::BO_PtrMemD:
35 : : case clang::BO_PtrMemI:
36 : : case clang::BO_Cmp:
37 : : case clang::BO_Mul:
38 : : case clang::BO_Div:
39 : : case clang::BO_Rem:
40 : : case clang::BO_Add:
41 : : case clang::BO_Sub:
42 : : case clang::BO_Shl:
43 : : case clang::BO_Shr:
44 : : case clang::BO_LT:
45 : : case clang::BO_GT:
46 : : case clang::BO_LE:
47 : : case clang::BO_GE:
48 : : case clang::BO_EQ:
49 : : case clang::BO_NE:
50 : : case clang::BO_And:
51 : : case clang::BO_Xor:
52 : : case clang::BO_Or:
53 : : case clang::BO_LAnd:
54 : : case clang::BO_LOr:
55 : : case clang::BO_Assign:
56 : : case clang::BO_Comma:
57 : : case clang::BO_MulAssign:
58 : : case clang::BO_DivAssign:
59 : : case clang::BO_RemAssign:
60 : : case clang::BO_AddAssign:
61 : : case clang::BO_SubAssign:
62 : : case clang::BO_ShlAssign:
63 : : case clang::BO_ShrAssign:
64 : : case clang::BO_AndAssign:
65 : : case clang::BO_XorAssign:
66 : : case clang::BO_OrAssign:
67 : 0 : break;
68 : : }
69 : 0 : }
70 : :
71 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_Add == clang::BO_Add, "");
72 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_AddAssign == clang::BO_AddAssign, "");
73 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_And == clang::BO_And, "");
74 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_AndAssign == clang::BO_AndAssign, "");
75 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_Assign == clang::BO_Assign, "");
76 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_Cmp == clang::BO_Cmp, "");
77 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_Comma == clang::BO_Comma, "");
78 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_Div == clang::BO_Div, "");
79 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_DivAssign == clang::BO_DivAssign, "");
80 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_EQ == clang::BO_EQ, "");
81 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_GE == clang::BO_GE, "");
82 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_GT == clang::BO_GT, "");
83 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_LAnd == clang::BO_LAnd, "");
84 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_LE == clang::BO_LE, "");
85 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_LOr == clang::BO_LOr, "");
86 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_LT == clang::BO_LT, "");
87 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_Mul == clang::BO_Mul, "");
88 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_MulAssign == clang::BO_MulAssign, "");
89 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_NE == clang::BO_NE, "");
90 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_Or == clang::BO_Or, "");
91 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_OrAssign == clang::BO_OrAssign, "");
92 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_PtrMemD == clang::BO_PtrMemD, "");
93 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_PtrMemI == clang::BO_PtrMemI, "");
94 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_Rem == clang::BO_Rem, "");
95 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_RemAssign == clang::BO_RemAssign, "");
96 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_Shl == clang::BO_Shl, "");
97 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_ShlAssign == clang::BO_ShlAssign, "");
98 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_Shr == clang::BO_Shr, "");
99 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_ShrAssign == clang::BO_ShrAssign, "");
100 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_Sub == clang::BO_Sub, "");
101 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_SubAssign == clang::BO_SubAssign, "");
102 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_Xor == clang::BO_Xor, "");
103 : : static_assert((clang::BinaryOperatorKind)ZigClangBO_XorAssign == clang::BO_XorAssign, "");
104 : :
105 : : // Detect additions to the enum
106 : 0 : void ZigClang_detect_enum_UO(clang::UnaryOperatorKind op) {
107 [ # # ]: 0 : switch (op) {
108 : 0 : case clang::UO_AddrOf:
109 : : case clang::UO_Coawait:
110 : : case clang::UO_Deref:
111 : : case clang::UO_Extension:
112 : : case clang::UO_Imag:
113 : : case clang::UO_LNot:
114 : : case clang::UO_Minus:
115 : : case clang::UO_Not:
116 : : case clang::UO_Plus:
117 : : case clang::UO_PostDec:
118 : : case clang::UO_PostInc:
119 : : case clang::UO_PreDec:
120 : : case clang::UO_PreInc:
121 : : case clang::UO_Real:
122 : 0 : break;
123 : : }
124 : 0 : }
125 : :
126 : : static_assert((clang::UnaryOperatorKind)ZigClangUO_AddrOf == clang::UO_AddrOf, "");
127 : : static_assert((clang::UnaryOperatorKind)ZigClangUO_Coawait == clang::UO_Coawait, "");
128 : : static_assert((clang::UnaryOperatorKind)ZigClangUO_Deref == clang::UO_Deref, "");
129 : : static_assert((clang::UnaryOperatorKind)ZigClangUO_Extension == clang::UO_Extension, "");
130 : : static_assert((clang::UnaryOperatorKind)ZigClangUO_Imag == clang::UO_Imag, "");
131 : : static_assert((clang::UnaryOperatorKind)ZigClangUO_LNot == clang::UO_LNot, "");
132 : : static_assert((clang::UnaryOperatorKind)ZigClangUO_Minus == clang::UO_Minus, "");
133 : : static_assert((clang::UnaryOperatorKind)ZigClangUO_Not == clang::UO_Not, "");
134 : : static_assert((clang::UnaryOperatorKind)ZigClangUO_Plus == clang::UO_Plus, "");
135 : : static_assert((clang::UnaryOperatorKind)ZigClangUO_PostDec == clang::UO_PostDec, "");
136 : : static_assert((clang::UnaryOperatorKind)ZigClangUO_PostInc == clang::UO_PostInc, "");
137 : : static_assert((clang::UnaryOperatorKind)ZigClangUO_PreDec == clang::UO_PreDec, "");
138 : : static_assert((clang::UnaryOperatorKind)ZigClangUO_PreInc == clang::UO_PreInc, "");
139 : : static_assert((clang::UnaryOperatorKind)ZigClangUO_Real == clang::UO_Real, "");
140 : :
141 : : // Detect additions to the enum
142 : 0 : void ZigClang_detect_enum_CK(clang::CastKind x) {
143 [ # # ]: 0 : switch (x) {
144 : 0 : case clang::CK_ARCConsumeObject:
145 : : case clang::CK_ARCExtendBlockObject:
146 : : case clang::CK_ARCProduceObject:
147 : : case clang::CK_ARCReclaimReturnedObject:
148 : : case clang::CK_AddressSpaceConversion:
149 : : case clang::CK_AnyPointerToBlockPointerCast:
150 : : case clang::CK_ArrayToPointerDecay:
151 : : case clang::CK_AtomicToNonAtomic:
152 : : case clang::CK_BaseToDerived:
153 : : case clang::CK_BaseToDerivedMemberPointer:
154 : : case clang::CK_BitCast:
155 : : case clang::CK_BlockPointerToObjCPointerCast:
156 : : case clang::CK_BooleanToSignedIntegral:
157 : : case clang::CK_BuiltinFnToFnPtr:
158 : : case clang::CK_CPointerToObjCPointerCast:
159 : : case clang::CK_ConstructorConversion:
160 : : case clang::CK_CopyAndAutoreleaseBlockObject:
161 : : case clang::CK_Dependent:
162 : : case clang::CK_DerivedToBase:
163 : : case clang::CK_DerivedToBaseMemberPointer:
164 : : case clang::CK_Dynamic:
165 : : case clang::CK_FloatingCast:
166 : : case clang::CK_FloatingComplexCast:
167 : : case clang::CK_FloatingComplexToBoolean:
168 : : case clang::CK_FloatingComplexToIntegralComplex:
169 : : case clang::CK_FloatingComplexToReal:
170 : : case clang::CK_FloatingRealToComplex:
171 : : case clang::CK_FloatingToBoolean:
172 : : case clang::CK_FloatingToIntegral:
173 : : case clang::CK_FunctionToPointerDecay:
174 : : case clang::CK_IntToOCLSampler:
175 : : case clang::CK_IntegralCast:
176 : : case clang::CK_IntegralComplexCast:
177 : : case clang::CK_IntegralComplexToBoolean:
178 : : case clang::CK_IntegralComplexToFloatingComplex:
179 : : case clang::CK_IntegralComplexToReal:
180 : : case clang::CK_IntegralRealToComplex:
181 : : case clang::CK_IntegralToBoolean:
182 : : case clang::CK_IntegralToFloating:
183 : : case clang::CK_IntegralToPointer:
184 : : case clang::CK_LValueBitCast:
185 : : case clang::CK_LValueToRValue:
186 : : case clang::CK_MemberPointerToBoolean:
187 : : case clang::CK_NoOp:
188 : : case clang::CK_NonAtomicToAtomic:
189 : : case clang::CK_NullToMemberPointer:
190 : : case clang::CK_NullToPointer:
191 : : case clang::CK_ObjCObjectLValueCast:
192 : : case clang::CK_PointerToBoolean:
193 : : case clang::CK_PointerToIntegral:
194 : : case clang::CK_ReinterpretMemberPointer:
195 : : case clang::CK_ToUnion:
196 : : case clang::CK_ToVoid:
197 : : case clang::CK_UncheckedDerivedToBase:
198 : : case clang::CK_UserDefinedConversion:
199 : : case clang::CK_VectorSplat:
200 : : case clang::CK_ZeroToOCLOpaqueType:
201 : : case clang::CK_FixedPointCast:
202 : : case clang::CK_FixedPointToBoolean:
203 : 0 : break;
204 : : }
205 : 0 : };
206 : :
207 : : static_assert((clang::CastKind)ZigClangCK_Dependent == clang::CK_Dependent, "");
208 : : static_assert((clang::CastKind)ZigClangCK_BitCast == clang::CK_BitCast, "");
209 : : static_assert((clang::CastKind)ZigClangCK_LValueBitCast == clang::CK_LValueBitCast, "");
210 : : static_assert((clang::CastKind)ZigClangCK_LValueToRValue == clang::CK_LValueToRValue, "");
211 : : static_assert((clang::CastKind)ZigClangCK_NoOp == clang::CK_NoOp, "");
212 : : static_assert((clang::CastKind)ZigClangCK_BaseToDerived == clang::CK_BaseToDerived, "");
213 : : static_assert((clang::CastKind)ZigClangCK_DerivedToBase == clang::CK_DerivedToBase, "");
214 : : static_assert((clang::CastKind)ZigClangCK_UncheckedDerivedToBase == clang::CK_UncheckedDerivedToBase, "");
215 : : static_assert((clang::CastKind)ZigClangCK_Dynamic == clang::CK_Dynamic, "");
216 : : static_assert((clang::CastKind)ZigClangCK_ToUnion == clang::CK_ToUnion, "");
217 : : static_assert((clang::CastKind)ZigClangCK_ArrayToPointerDecay == clang::CK_ArrayToPointerDecay, "");
218 : : static_assert((clang::CastKind)ZigClangCK_FunctionToPointerDecay == clang::CK_FunctionToPointerDecay, "");
219 : : static_assert((clang::CastKind)ZigClangCK_NullToPointer == clang::CK_NullToPointer, "");
220 : : static_assert((clang::CastKind)ZigClangCK_NullToMemberPointer == clang::CK_NullToMemberPointer, "");
221 : : static_assert((clang::CastKind)ZigClangCK_BaseToDerivedMemberPointer == clang::CK_BaseToDerivedMemberPointer, "");
222 : : static_assert((clang::CastKind)ZigClangCK_DerivedToBaseMemberPointer == clang::CK_DerivedToBaseMemberPointer, "");
223 : : static_assert((clang::CastKind)ZigClangCK_MemberPointerToBoolean == clang::CK_MemberPointerToBoolean, "");
224 : : static_assert((clang::CastKind)ZigClangCK_ReinterpretMemberPointer == clang::CK_ReinterpretMemberPointer, "");
225 : : static_assert((clang::CastKind)ZigClangCK_UserDefinedConversion == clang::CK_UserDefinedConversion, "");
226 : : static_assert((clang::CastKind)ZigClangCK_ConstructorConversion == clang::CK_ConstructorConversion, "");
227 : : static_assert((clang::CastKind)ZigClangCK_IntegralToPointer == clang::CK_IntegralToPointer, "");
228 : : static_assert((clang::CastKind)ZigClangCK_PointerToIntegral == clang::CK_PointerToIntegral, "");
229 : : static_assert((clang::CastKind)ZigClangCK_PointerToBoolean == clang::CK_PointerToBoolean, "");
230 : : static_assert((clang::CastKind)ZigClangCK_ToVoid == clang::CK_ToVoid, "");
231 : : static_assert((clang::CastKind)ZigClangCK_VectorSplat == clang::CK_VectorSplat, "");
232 : : static_assert((clang::CastKind)ZigClangCK_IntegralCast == clang::CK_IntegralCast, "");
233 : : static_assert((clang::CastKind)ZigClangCK_IntegralToBoolean == clang::CK_IntegralToBoolean, "");
234 : : static_assert((clang::CastKind)ZigClangCK_IntegralToFloating == clang::CK_IntegralToFloating, "");
235 : : static_assert((clang::CastKind)ZigClangCK_FixedPointCast == clang::CK_FixedPointCast, "");
236 : : static_assert((clang::CastKind)ZigClangCK_FixedPointToBoolean == clang::CK_FixedPointToBoolean, "");
237 : : static_assert((clang::CastKind)ZigClangCK_FloatingToIntegral == clang::CK_FloatingToIntegral, "");
238 : : static_assert((clang::CastKind)ZigClangCK_FloatingToBoolean == clang::CK_FloatingToBoolean, "");
239 : : static_assert((clang::CastKind)ZigClangCK_BooleanToSignedIntegral == clang::CK_BooleanToSignedIntegral, "");
240 : : static_assert((clang::CastKind)ZigClangCK_FloatingCast == clang::CK_FloatingCast, "");
241 : : static_assert((clang::CastKind)ZigClangCK_CPointerToObjCPointerCast == clang::CK_CPointerToObjCPointerCast, "");
242 : : static_assert((clang::CastKind)ZigClangCK_BlockPointerToObjCPointerCast == clang::CK_BlockPointerToObjCPointerCast, "");
243 : : static_assert((clang::CastKind)ZigClangCK_AnyPointerToBlockPointerCast == clang::CK_AnyPointerToBlockPointerCast, "");
244 : : static_assert((clang::CastKind)ZigClangCK_ObjCObjectLValueCast == clang::CK_ObjCObjectLValueCast, "");
245 : : static_assert((clang::CastKind)ZigClangCK_FloatingRealToComplex == clang::CK_FloatingRealToComplex, "");
246 : : static_assert((clang::CastKind)ZigClangCK_FloatingComplexToReal == clang::CK_FloatingComplexToReal, "");
247 : : static_assert((clang::CastKind)ZigClangCK_FloatingComplexToBoolean == clang::CK_FloatingComplexToBoolean, "");
248 : : static_assert((clang::CastKind)ZigClangCK_FloatingComplexCast == clang::CK_FloatingComplexCast, "");
249 : : static_assert((clang::CastKind)ZigClangCK_FloatingComplexToIntegralComplex == clang::CK_FloatingComplexToIntegralComplex, "");
250 : : static_assert((clang::CastKind)ZigClangCK_IntegralRealToComplex == clang::CK_IntegralRealToComplex, "");
251 : : static_assert((clang::CastKind)ZigClangCK_IntegralComplexToReal == clang::CK_IntegralComplexToReal, "");
252 : : static_assert((clang::CastKind)ZigClangCK_IntegralComplexToBoolean == clang::CK_IntegralComplexToBoolean, "");
253 : : static_assert((clang::CastKind)ZigClangCK_IntegralComplexCast == clang::CK_IntegralComplexCast, "");
254 : : static_assert((clang::CastKind)ZigClangCK_IntegralComplexToFloatingComplex == clang::CK_IntegralComplexToFloatingComplex, "");
255 : : static_assert((clang::CastKind)ZigClangCK_ARCProduceObject == clang::CK_ARCProduceObject, "");
256 : : static_assert((clang::CastKind)ZigClangCK_ARCConsumeObject == clang::CK_ARCConsumeObject, "");
257 : : static_assert((clang::CastKind)ZigClangCK_ARCReclaimReturnedObject == clang::CK_ARCReclaimReturnedObject, "");
258 : : static_assert((clang::CastKind)ZigClangCK_ARCExtendBlockObject == clang::CK_ARCExtendBlockObject, "");
259 : : static_assert((clang::CastKind)ZigClangCK_AtomicToNonAtomic == clang::CK_AtomicToNonAtomic, "");
260 : : static_assert((clang::CastKind)ZigClangCK_NonAtomicToAtomic == clang::CK_NonAtomicToAtomic, "");
261 : : static_assert((clang::CastKind)ZigClangCK_CopyAndAutoreleaseBlockObject == clang::CK_CopyAndAutoreleaseBlockObject, "");
262 : : static_assert((clang::CastKind)ZigClangCK_BuiltinFnToFnPtr == clang::CK_BuiltinFnToFnPtr, "");
263 : : static_assert((clang::CastKind)ZigClangCK_ZeroToOCLOpaqueType == clang::CK_ZeroToOCLOpaqueType, "");
264 : : static_assert((clang::CastKind)ZigClangCK_AddressSpaceConversion == clang::CK_AddressSpaceConversion, "");
265 : : static_assert((clang::CastKind)ZigClangCK_IntToOCLSampler == clang::CK_IntToOCLSampler, "");
266 : :
267 : : // Detect additions to the enum
268 : 0 : void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
269 [ # # ]: 0 : switch (ty) {
270 : 0 : case clang::Type::Builtin:
271 : : case clang::Type::Complex:
272 : : case clang::Type::Pointer:
273 : : case clang::Type::BlockPointer:
274 : : case clang::Type::LValueReference:
275 : : case clang::Type::RValueReference:
276 : : case clang::Type::MemberPointer:
277 : : case clang::Type::ConstantArray:
278 : : case clang::Type::IncompleteArray:
279 : : case clang::Type::VariableArray:
280 : : case clang::Type::DependentSizedArray:
281 : : case clang::Type::DependentSizedExtVector:
282 : : case clang::Type::DependentAddressSpace:
283 : : case clang::Type::Vector:
284 : : case clang::Type::DependentVector:
285 : : case clang::Type::ExtVector:
286 : : case clang::Type::FunctionProto:
287 : : case clang::Type::FunctionNoProto:
288 : : case clang::Type::UnresolvedUsing:
289 : : case clang::Type::Paren:
290 : : case clang::Type::Typedef:
291 : : case clang::Type::Adjusted:
292 : : case clang::Type::Decayed:
293 : : case clang::Type::TypeOfExpr:
294 : : case clang::Type::TypeOf:
295 : : case clang::Type::Decltype:
296 : : case clang::Type::UnaryTransform:
297 : : case clang::Type::Record:
298 : : case clang::Type::Enum:
299 : : case clang::Type::Elaborated:
300 : : case clang::Type::Attributed:
301 : : case clang::Type::TemplateTypeParm:
302 : : case clang::Type::SubstTemplateTypeParm:
303 : : case clang::Type::SubstTemplateTypeParmPack:
304 : : case clang::Type::TemplateSpecialization:
305 : : case clang::Type::Auto:
306 : : case clang::Type::DeducedTemplateSpecialization:
307 : : case clang::Type::InjectedClassName:
308 : : case clang::Type::DependentName:
309 : : case clang::Type::DependentTemplateSpecialization:
310 : : case clang::Type::PackExpansion:
311 : : case clang::Type::ObjCTypeParam:
312 : : case clang::Type::ObjCObject:
313 : : case clang::Type::ObjCInterface:
314 : : case clang::Type::ObjCObjectPointer:
315 : : case clang::Type::Pipe:
316 : : case clang::Type::Atomic:
317 : 0 : break;
318 : : }
319 : 0 : }
320 : :
321 : : static_assert((clang::Type::TypeClass)ZigClangType_Builtin == clang::Type::Builtin, "");
322 : : static_assert((clang::Type::TypeClass)ZigClangType_Complex == clang::Type::Complex, "");
323 : : static_assert((clang::Type::TypeClass)ZigClangType_Pointer == clang::Type::Pointer, "");
324 : : static_assert((clang::Type::TypeClass)ZigClangType_BlockPointer == clang::Type::BlockPointer, "");
325 : : static_assert((clang::Type::TypeClass)ZigClangType_LValueReference == clang::Type::LValueReference, "");
326 : : static_assert((clang::Type::TypeClass)ZigClangType_RValueReference == clang::Type::RValueReference, "");
327 : : static_assert((clang::Type::TypeClass)ZigClangType_MemberPointer == clang::Type::MemberPointer, "");
328 : : static_assert((clang::Type::TypeClass)ZigClangType_ConstantArray == clang::Type::ConstantArray, "");
329 : : static_assert((clang::Type::TypeClass)ZigClangType_IncompleteArray == clang::Type::IncompleteArray, "");
330 : : static_assert((clang::Type::TypeClass)ZigClangType_VariableArray == clang::Type::VariableArray, "");
331 : : static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedArray == clang::Type::DependentSizedArray, "");
332 : : static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedExtVector == clang::Type::DependentSizedExtVector, "");
333 : : static_assert((clang::Type::TypeClass)ZigClangType_DependentAddressSpace == clang::Type::DependentAddressSpace, "");
334 : : static_assert((clang::Type::TypeClass)ZigClangType_Vector == clang::Type::Vector, "");
335 : : static_assert((clang::Type::TypeClass)ZigClangType_DependentVector == clang::Type::DependentVector, "");
336 : : static_assert((clang::Type::TypeClass)ZigClangType_ExtVector == clang::Type::ExtVector, "");
337 : : static_assert((clang::Type::TypeClass)ZigClangType_FunctionProto == clang::Type::FunctionProto, "");
338 : : static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Type::FunctionNoProto, "");
339 : : static_assert((clang::Type::TypeClass)ZigClangType_UnresolvedUsing == clang::Type::UnresolvedUsing, "");
340 : : static_assert((clang::Type::TypeClass)ZigClangType_Paren == clang::Type::Paren, "");
341 : : static_assert((clang::Type::TypeClass)ZigClangType_Typedef == clang::Type::Typedef, "");
342 : : static_assert((clang::Type::TypeClass)ZigClangType_Adjusted == clang::Type::Adjusted, "");
343 : : static_assert((clang::Type::TypeClass)ZigClangType_Decayed == clang::Type::Decayed, "");
344 : : static_assert((clang::Type::TypeClass)ZigClangType_TypeOfExpr == clang::Type::TypeOfExpr, "");
345 : : static_assert((clang::Type::TypeClass)ZigClangType_TypeOf == clang::Type::TypeOf, "");
346 : : static_assert((clang::Type::TypeClass)ZigClangType_Decltype == clang::Type::Decltype, "");
347 : : static_assert((clang::Type::TypeClass)ZigClangType_UnaryTransform == clang::Type::UnaryTransform, "");
348 : : static_assert((clang::Type::TypeClass)ZigClangType_Record == clang::Type::Record, "");
349 : : static_assert((clang::Type::TypeClass)ZigClangType_Enum == clang::Type::Enum, "");
350 : : static_assert((clang::Type::TypeClass)ZigClangType_Elaborated == clang::Type::Elaborated, "");
351 : : static_assert((clang::Type::TypeClass)ZigClangType_Attributed == clang::Type::Attributed, "");
352 : : static_assert((clang::Type::TypeClass)ZigClangType_TemplateTypeParm == clang::Type::TemplateTypeParm, "");
353 : : static_assert((clang::Type::TypeClass)ZigClangType_SubstTemplateTypeParm == clang::Type::SubstTemplateTypeParm, "");
354 : : static_assert((clang::Type::TypeClass)ZigClangType_SubstTemplateTypeParmPack == clang::Type::SubstTemplateTypeParmPack, "");
355 : : static_assert((clang::Type::TypeClass)ZigClangType_TemplateSpecialization == clang::Type::TemplateSpecialization, "");
356 : : static_assert((clang::Type::TypeClass)ZigClangType_Auto == clang::Type::Auto, "");
357 : : static_assert((clang::Type::TypeClass)ZigClangType_DeducedTemplateSpecialization == clang::Type::DeducedTemplateSpecialization, "");
358 : : static_assert((clang::Type::TypeClass)ZigClangType_InjectedClassName == clang::Type::InjectedClassName, "");
359 : : static_assert((clang::Type::TypeClass)ZigClangType_DependentName == clang::Type::DependentName, "");
360 : : static_assert((clang::Type::TypeClass)ZigClangType_DependentTemplateSpecialization == clang::Type::DependentTemplateSpecialization, "");
361 : : static_assert((clang::Type::TypeClass)ZigClangType_PackExpansion == clang::Type::PackExpansion, "");
362 : : static_assert((clang::Type::TypeClass)ZigClangType_ObjCTypeParam == clang::Type::ObjCTypeParam, "");
363 : : static_assert((clang::Type::TypeClass)ZigClangType_ObjCObject == clang::Type::ObjCObject, "");
364 : : static_assert((clang::Type::TypeClass)ZigClangType_ObjCInterface == clang::Type::ObjCInterface, "");
365 : : static_assert((clang::Type::TypeClass)ZigClangType_ObjCObjectPointer == clang::Type::ObjCObjectPointer, "");
366 : : static_assert((clang::Type::TypeClass)ZigClangType_Pipe == clang::Type::Pipe, "");
367 : : static_assert((clang::Type::TypeClass)ZigClangType_Atomic == clang::Type::Atomic, "");
368 : :
369 : : // Detect additions to the enum
370 : 0 : void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
371 [ # # ]: 0 : switch (x) {
372 : 0 : case clang::Stmt::NoStmtClass:
373 : : case clang::Stmt::NullStmtClass:
374 : : case clang::Stmt::CompoundStmtClass:
375 : : case clang::Stmt::LabelStmtClass:
376 : : case clang::Stmt::AttributedStmtClass:
377 : : case clang::Stmt::IfStmtClass:
378 : : case clang::Stmt::SwitchStmtClass:
379 : : case clang::Stmt::WhileStmtClass:
380 : : case clang::Stmt::DoStmtClass:
381 : : case clang::Stmt::ForStmtClass:
382 : : case clang::Stmt::GotoStmtClass:
383 : : case clang::Stmt::IndirectGotoStmtClass:
384 : : case clang::Stmt::ContinueStmtClass:
385 : : case clang::Stmt::BreakStmtClass:
386 : : case clang::Stmt::ReturnStmtClass:
387 : : case clang::Stmt::DeclStmtClass:
388 : : case clang::Stmt::CaseStmtClass:
389 : : case clang::Stmt::DefaultStmtClass:
390 : : case clang::Stmt::CapturedStmtClass:
391 : : case clang::Stmt::GCCAsmStmtClass:
392 : : case clang::Stmt::MSAsmStmtClass:
393 : : case clang::Stmt::ObjCAtTryStmtClass:
394 : : case clang::Stmt::ObjCAtCatchStmtClass:
395 : : case clang::Stmt::ObjCAtFinallyStmtClass:
396 : : case clang::Stmt::ObjCAtThrowStmtClass:
397 : : case clang::Stmt::ObjCAtSynchronizedStmtClass:
398 : : case clang::Stmt::ObjCForCollectionStmtClass:
399 : : case clang::Stmt::ObjCAutoreleasePoolStmtClass:
400 : : case clang::Stmt::CXXCatchStmtClass:
401 : : case clang::Stmt::CXXTryStmtClass:
402 : : case clang::Stmt::CXXForRangeStmtClass:
403 : : case clang::Stmt::CoroutineBodyStmtClass:
404 : : case clang::Stmt::CoreturnStmtClass:
405 : : case clang::Stmt::PredefinedExprClass:
406 : : case clang::Stmt::DeclRefExprClass:
407 : : case clang::Stmt::IntegerLiteralClass:
408 : : case clang::Stmt::FixedPointLiteralClass:
409 : : case clang::Stmt::FloatingLiteralClass:
410 : : case clang::Stmt::ImaginaryLiteralClass:
411 : : case clang::Stmt::StringLiteralClass:
412 : : case clang::Stmt::CharacterLiteralClass:
413 : : case clang::Stmt::ParenExprClass:
414 : : case clang::Stmt::UnaryOperatorClass:
415 : : case clang::Stmt::OffsetOfExprClass:
416 : : case clang::Stmt::UnaryExprOrTypeTraitExprClass:
417 : : case clang::Stmt::ArraySubscriptExprClass:
418 : : case clang::Stmt::OMPArraySectionExprClass:
419 : : case clang::Stmt::CallExprClass:
420 : : case clang::Stmt::MemberExprClass:
421 : : case clang::Stmt::BinaryOperatorClass:
422 : : case clang::Stmt::CompoundAssignOperatorClass:
423 : : case clang::Stmt::ConditionalOperatorClass:
424 : : case clang::Stmt::BinaryConditionalOperatorClass:
425 : : case clang::Stmt::ImplicitCastExprClass:
426 : : case clang::Stmt::CStyleCastExprClass:
427 : : case clang::Stmt::CompoundLiteralExprClass:
428 : : case clang::Stmt::ExtVectorElementExprClass:
429 : : case clang::Stmt::InitListExprClass:
430 : : case clang::Stmt::DesignatedInitExprClass:
431 : : case clang::Stmt::DesignatedInitUpdateExprClass:
432 : : case clang::Stmt::ImplicitValueInitExprClass:
433 : : case clang::Stmt::NoInitExprClass:
434 : : case clang::Stmt::ArrayInitLoopExprClass:
435 : : case clang::Stmt::ArrayInitIndexExprClass:
436 : : case clang::Stmt::ParenListExprClass:
437 : : case clang::Stmt::VAArgExprClass:
438 : : case clang::Stmt::GenericSelectionExprClass:
439 : : case clang::Stmt::PseudoObjectExprClass:
440 : : case clang::Stmt::ConstantExprClass:
441 : : case clang::Stmt::AtomicExprClass:
442 : : case clang::Stmt::AddrLabelExprClass:
443 : : case clang::Stmt::StmtExprClass:
444 : : case clang::Stmt::ChooseExprClass:
445 : : case clang::Stmt::GNUNullExprClass:
446 : : case clang::Stmt::CXXOperatorCallExprClass:
447 : : case clang::Stmt::CXXMemberCallExprClass:
448 : : case clang::Stmt::CXXStaticCastExprClass:
449 : : case clang::Stmt::CXXDynamicCastExprClass:
450 : : case clang::Stmt::CXXReinterpretCastExprClass:
451 : : case clang::Stmt::CXXConstCastExprClass:
452 : : case clang::Stmt::CXXFunctionalCastExprClass:
453 : : case clang::Stmt::CXXTypeidExprClass:
454 : : case clang::Stmt::UserDefinedLiteralClass:
455 : : case clang::Stmt::CXXBoolLiteralExprClass:
456 : : case clang::Stmt::CXXNullPtrLiteralExprClass:
457 : : case clang::Stmt::CXXThisExprClass:
458 : : case clang::Stmt::CXXThrowExprClass:
459 : : case clang::Stmt::CXXDefaultArgExprClass:
460 : : case clang::Stmt::CXXDefaultInitExprClass:
461 : : case clang::Stmt::CXXScalarValueInitExprClass:
462 : : case clang::Stmt::CXXStdInitializerListExprClass:
463 : : case clang::Stmt::CXXNewExprClass:
464 : : case clang::Stmt::CXXDeleteExprClass:
465 : : case clang::Stmt::CXXPseudoDestructorExprClass:
466 : : case clang::Stmt::TypeTraitExprClass:
467 : : case clang::Stmt::ArrayTypeTraitExprClass:
468 : : case clang::Stmt::ExpressionTraitExprClass:
469 : : case clang::Stmt::DependentScopeDeclRefExprClass:
470 : : case clang::Stmt::CXXConstructExprClass:
471 : : case clang::Stmt::CXXInheritedCtorInitExprClass:
472 : : case clang::Stmt::CXXBindTemporaryExprClass:
473 : : case clang::Stmt::ExprWithCleanupsClass:
474 : : case clang::Stmt::CXXTemporaryObjectExprClass:
475 : : case clang::Stmt::CXXUnresolvedConstructExprClass:
476 : : case clang::Stmt::CXXDependentScopeMemberExprClass:
477 : : case clang::Stmt::UnresolvedLookupExprClass:
478 : : case clang::Stmt::UnresolvedMemberExprClass:
479 : : case clang::Stmt::CXXNoexceptExprClass:
480 : : case clang::Stmt::PackExpansionExprClass:
481 : : case clang::Stmt::SizeOfPackExprClass:
482 : : case clang::Stmt::SubstNonTypeTemplateParmExprClass:
483 : : case clang::Stmt::SubstNonTypeTemplateParmPackExprClass:
484 : : case clang::Stmt::FunctionParmPackExprClass:
485 : : case clang::Stmt::MaterializeTemporaryExprClass:
486 : : case clang::Stmt::LambdaExprClass:
487 : : case clang::Stmt::CXXFoldExprClass:
488 : : case clang::Stmt::CoawaitExprClass:
489 : : case clang::Stmt::DependentCoawaitExprClass:
490 : : case clang::Stmt::CoyieldExprClass:
491 : : case clang::Stmt::ObjCStringLiteralClass:
492 : : case clang::Stmt::ObjCBoxedExprClass:
493 : : case clang::Stmt::ObjCArrayLiteralClass:
494 : : case clang::Stmt::ObjCDictionaryLiteralClass:
495 : : case clang::Stmt::ObjCEncodeExprClass:
496 : : case clang::Stmt::ObjCMessageExprClass:
497 : : case clang::Stmt::ObjCSelectorExprClass:
498 : : case clang::Stmt::ObjCProtocolExprClass:
499 : : case clang::Stmt::ObjCIvarRefExprClass:
500 : : case clang::Stmt::ObjCPropertyRefExprClass:
501 : : case clang::Stmt::ObjCIsaExprClass:
502 : : case clang::Stmt::ObjCIndirectCopyRestoreExprClass:
503 : : case clang::Stmt::ObjCBoolLiteralExprClass:
504 : : case clang::Stmt::ObjCSubscriptRefExprClass:
505 : : case clang::Stmt::ObjCAvailabilityCheckExprClass:
506 : : case clang::Stmt::ObjCBridgedCastExprClass:
507 : : case clang::Stmt::CUDAKernelCallExprClass:
508 : : case clang::Stmt::ShuffleVectorExprClass:
509 : : case clang::Stmt::ConvertVectorExprClass:
510 : : case clang::Stmt::BlockExprClass:
511 : : case clang::Stmt::OpaqueValueExprClass:
512 : : case clang::Stmt::TypoExprClass:
513 : : case clang::Stmt::MSPropertyRefExprClass:
514 : : case clang::Stmt::MSPropertySubscriptExprClass:
515 : : case clang::Stmt::CXXUuidofExprClass:
516 : : case clang::Stmt::SEHTryStmtClass:
517 : : case clang::Stmt::SEHExceptStmtClass:
518 : : case clang::Stmt::SEHFinallyStmtClass:
519 : : case clang::Stmt::SEHLeaveStmtClass:
520 : : case clang::Stmt::MSDependentExistsStmtClass:
521 : : case clang::Stmt::AsTypeExprClass:
522 : : case clang::Stmt::OMPParallelDirectiveClass:
523 : : case clang::Stmt::OMPSimdDirectiveClass:
524 : : case clang::Stmt::OMPForDirectiveClass:
525 : : case clang::Stmt::OMPForSimdDirectiveClass:
526 : : case clang::Stmt::OMPSectionsDirectiveClass:
527 : : case clang::Stmt::OMPSectionDirectiveClass:
528 : : case clang::Stmt::OMPSingleDirectiveClass:
529 : : case clang::Stmt::OMPMasterDirectiveClass:
530 : : case clang::Stmt::OMPCriticalDirectiveClass:
531 : : case clang::Stmt::OMPParallelForDirectiveClass:
532 : : case clang::Stmt::OMPParallelForSimdDirectiveClass:
533 : : case clang::Stmt::OMPParallelSectionsDirectiveClass:
534 : : case clang::Stmt::OMPTaskDirectiveClass:
535 : : case clang::Stmt::OMPTaskyieldDirectiveClass:
536 : : case clang::Stmt::OMPBarrierDirectiveClass:
537 : : case clang::Stmt::OMPTaskwaitDirectiveClass:
538 : : case clang::Stmt::OMPTaskgroupDirectiveClass:
539 : : case clang::Stmt::OMPFlushDirectiveClass:
540 : : case clang::Stmt::OMPOrderedDirectiveClass:
541 : : case clang::Stmt::OMPAtomicDirectiveClass:
542 : : case clang::Stmt::OMPTargetDirectiveClass:
543 : : case clang::Stmt::OMPTargetDataDirectiveClass:
544 : : case clang::Stmt::OMPTargetEnterDataDirectiveClass:
545 : : case clang::Stmt::OMPTargetExitDataDirectiveClass:
546 : : case clang::Stmt::OMPTargetParallelDirectiveClass:
547 : : case clang::Stmt::OMPTargetParallelForDirectiveClass:
548 : : case clang::Stmt::OMPTargetUpdateDirectiveClass:
549 : : case clang::Stmt::OMPTeamsDirectiveClass:
550 : : case clang::Stmt::OMPCancellationPointDirectiveClass:
551 : : case clang::Stmt::OMPCancelDirectiveClass:
552 : : case clang::Stmt::OMPTaskLoopDirectiveClass:
553 : : case clang::Stmt::OMPTaskLoopSimdDirectiveClass:
554 : : case clang::Stmt::OMPDistributeDirectiveClass:
555 : : case clang::Stmt::OMPDistributeParallelForDirectiveClass:
556 : : case clang::Stmt::OMPDistributeParallelForSimdDirectiveClass:
557 : : case clang::Stmt::OMPDistributeSimdDirectiveClass:
558 : : case clang::Stmt::OMPTargetParallelForSimdDirectiveClass:
559 : : case clang::Stmt::OMPTargetSimdDirectiveClass:
560 : : case clang::Stmt::OMPTeamsDistributeDirectiveClass:
561 : : case clang::Stmt::OMPTeamsDistributeSimdDirectiveClass:
562 : : case clang::Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass:
563 : : case clang::Stmt::OMPTeamsDistributeParallelForDirectiveClass:
564 : : case clang::Stmt::OMPTargetTeamsDirectiveClass:
565 : : case clang::Stmt::OMPTargetTeamsDistributeDirectiveClass:
566 : : case clang::Stmt::OMPTargetTeamsDistributeParallelForDirectiveClass:
567 : : case clang::Stmt::OMPTargetTeamsDistributeParallelForSimdDirectiveClass:
568 : : case clang::Stmt::OMPTargetTeamsDistributeSimdDirectiveClass:
569 : 0 : break;
570 : : }
571 : 0 : }
572 : :
573 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_NoStmtClass == clang::Stmt::NoStmtClass, "");
574 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_NullStmtClass == clang::Stmt::NullStmtClass, "");
575 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CompoundStmtClass == clang::Stmt::CompoundStmtClass, "");
576 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_LabelStmtClass == clang::Stmt::LabelStmtClass, "");
577 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_AttributedStmtClass == clang::Stmt::AttributedStmtClass, "");
578 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_IfStmtClass == clang::Stmt::IfStmtClass, "");
579 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_SwitchStmtClass == clang::Stmt::SwitchStmtClass, "");
580 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_WhileStmtClass == clang::Stmt::WhileStmtClass, "");
581 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_DoStmtClass == clang::Stmt::DoStmtClass, "");
582 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ForStmtClass == clang::Stmt::ForStmtClass, "");
583 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_GotoStmtClass == clang::Stmt::GotoStmtClass, "");
584 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_IndirectGotoStmtClass == clang::Stmt::IndirectGotoStmtClass, "");
585 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ContinueStmtClass == clang::Stmt::ContinueStmtClass, "");
586 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_BreakStmtClass == clang::Stmt::BreakStmtClass, "");
587 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ReturnStmtClass == clang::Stmt::ReturnStmtClass, "");
588 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_DeclStmtClass == clang::Stmt::DeclStmtClass, "");
589 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CaseStmtClass == clang::Stmt::CaseStmtClass, "");
590 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_DefaultStmtClass == clang::Stmt::DefaultStmtClass, "");
591 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CapturedStmtClass == clang::Stmt::CapturedStmtClass, "");
592 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_GCCAsmStmtClass == clang::Stmt::GCCAsmStmtClass, "");
593 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSAsmStmtClass == clang::Stmt::MSAsmStmtClass, "");
594 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAtTryStmtClass == clang::Stmt::ObjCAtTryStmtClass, "");
595 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAtCatchStmtClass == clang::Stmt::ObjCAtCatchStmtClass, "");
596 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAtFinallyStmtClass == clang::Stmt::ObjCAtFinallyStmtClass, "");
597 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAtThrowStmtClass == clang::Stmt::ObjCAtThrowStmtClass, "");
598 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAtSynchronizedStmtClass == clang::Stmt::ObjCAtSynchronizedStmtClass, "");
599 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCForCollectionStmtClass == clang::Stmt::ObjCForCollectionStmtClass, "");
600 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAutoreleasePoolStmtClass == clang::Stmt::ObjCAutoreleasePoolStmtClass, "");
601 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXCatchStmtClass == clang::Stmt::CXXCatchStmtClass, "");
602 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXTryStmtClass == clang::Stmt::CXXTryStmtClass, "");
603 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXForRangeStmtClass == clang::Stmt::CXXForRangeStmtClass, "");
604 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CoroutineBodyStmtClass == clang::Stmt::CoroutineBodyStmtClass, "");
605 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CoreturnStmtClass == clang::Stmt::CoreturnStmtClass, "");
606 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_PredefinedExprClass == clang::Stmt::PredefinedExprClass, "");
607 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_DeclRefExprClass == clang::Stmt::DeclRefExprClass, "");
608 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_IntegerLiteralClass == clang::Stmt::IntegerLiteralClass, "");
609 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_FixedPointLiteralClass == clang::Stmt::FixedPointLiteralClass, "");
610 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_FloatingLiteralClass == clang::Stmt::FloatingLiteralClass, "");
611 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ImaginaryLiteralClass == clang::Stmt::ImaginaryLiteralClass, "");
612 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_StringLiteralClass == clang::Stmt::StringLiteralClass, "");
613 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CharacterLiteralClass == clang::Stmt::CharacterLiteralClass, "");
614 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ParenExprClass == clang::Stmt::ParenExprClass, "");
615 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnaryOperatorClass == clang::Stmt::UnaryOperatorClass, "");
616 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OffsetOfExprClass == clang::Stmt::OffsetOfExprClass, "");
617 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnaryExprOrTypeTraitExprClass == clang::Stmt::UnaryExprOrTypeTraitExprClass, "");
618 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ArraySubscriptExprClass == clang::Stmt::ArraySubscriptExprClass, "");
619 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPArraySectionExprClass == clang::Stmt::OMPArraySectionExprClass, "");
620 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CallExprClass == clang::Stmt::CallExprClass, "");
621 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_MemberExprClass == clang::Stmt::MemberExprClass, "");
622 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_BinaryOperatorClass == clang::Stmt::BinaryOperatorClass, "");
623 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CompoundAssignOperatorClass == clang::Stmt::CompoundAssignOperatorClass, "");
624 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ConditionalOperatorClass == clang::Stmt::ConditionalOperatorClass, "");
625 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_BinaryConditionalOperatorClass == clang::Stmt::BinaryConditionalOperatorClass, "");
626 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ImplicitCastExprClass == clang::Stmt::ImplicitCastExprClass, "");
627 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CStyleCastExprClass == clang::Stmt::CStyleCastExprClass, "");
628 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CompoundLiteralExprClass == clang::Stmt::CompoundLiteralExprClass, "");
629 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ExtVectorElementExprClass == clang::Stmt::ExtVectorElementExprClass, "");
630 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_InitListExprClass == clang::Stmt::InitListExprClass, "");
631 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_DesignatedInitExprClass == clang::Stmt::DesignatedInitExprClass, "");
632 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_DesignatedInitUpdateExprClass == clang::Stmt::DesignatedInitUpdateExprClass, "");
633 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ImplicitValueInitExprClass == clang::Stmt::ImplicitValueInitExprClass, "");
634 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_NoInitExprClass == clang::Stmt::NoInitExprClass, "");
635 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ArrayInitLoopExprClass == clang::Stmt::ArrayInitLoopExprClass, "");
636 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ArrayInitIndexExprClass == clang::Stmt::ArrayInitIndexExprClass, "");
637 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ParenListExprClass == clang::Stmt::ParenListExprClass, "");
638 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_VAArgExprClass == clang::Stmt::VAArgExprClass, "");
639 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_GenericSelectionExprClass == clang::Stmt::GenericSelectionExprClass, "");
640 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_PseudoObjectExprClass == clang::Stmt::PseudoObjectExprClass, "");
641 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ConstantExprClass == clang::Stmt::ConstantExprClass, "");
642 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_AtomicExprClass == clang::Stmt::AtomicExprClass, "");
643 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_AddrLabelExprClass == clang::Stmt::AddrLabelExprClass, "");
644 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_StmtExprClass == clang::Stmt::StmtExprClass, "");
645 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ChooseExprClass == clang::Stmt::ChooseExprClass, "");
646 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_GNUNullExprClass == clang::Stmt::GNUNullExprClass, "");
647 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXOperatorCallExprClass == clang::Stmt::CXXOperatorCallExprClass, "");
648 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXMemberCallExprClass == clang::Stmt::CXXMemberCallExprClass, "");
649 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXStaticCastExprClass == clang::Stmt::CXXStaticCastExprClass, "");
650 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXDynamicCastExprClass == clang::Stmt::CXXDynamicCastExprClass, "");
651 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXReinterpretCastExprClass == clang::Stmt::CXXReinterpretCastExprClass, "");
652 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXConstCastExprClass == clang::Stmt::CXXConstCastExprClass, "");
653 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXFunctionalCastExprClass == clang::Stmt::CXXFunctionalCastExprClass, "");
654 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXTypeidExprClass == clang::Stmt::CXXTypeidExprClass, "");
655 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_UserDefinedLiteralClass == clang::Stmt::UserDefinedLiteralClass, "");
656 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXBoolLiteralExprClass == clang::Stmt::CXXBoolLiteralExprClass, "");
657 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXNullPtrLiteralExprClass == clang::Stmt::CXXNullPtrLiteralExprClass, "");
658 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXThisExprClass == clang::Stmt::CXXThisExprClass, "");
659 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXThrowExprClass == clang::Stmt::CXXThrowExprClass, "");
660 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXDefaultArgExprClass == clang::Stmt::CXXDefaultArgExprClass, "");
661 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXDefaultInitExprClass == clang::Stmt::CXXDefaultInitExprClass, "");
662 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXScalarValueInitExprClass == clang::Stmt::CXXScalarValueInitExprClass, "");
663 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXStdInitializerListExprClass == clang::Stmt::CXXStdInitializerListExprClass, "");
664 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXNewExprClass == clang::Stmt::CXXNewExprClass, "");
665 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXDeleteExprClass == clang::Stmt::CXXDeleteExprClass, "");
666 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXPseudoDestructorExprClass == clang::Stmt::CXXPseudoDestructorExprClass, "");
667 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_TypeTraitExprClass == clang::Stmt::TypeTraitExprClass, "");
668 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ArrayTypeTraitExprClass == clang::Stmt::ArrayTypeTraitExprClass, "");
669 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ExpressionTraitExprClass == clang::Stmt::ExpressionTraitExprClass, "");
670 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_DependentScopeDeclRefExprClass == clang::Stmt::DependentScopeDeclRefExprClass, "");
671 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXConstructExprClass == clang::Stmt::CXXConstructExprClass, "");
672 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXInheritedCtorInitExprClass == clang::Stmt::CXXInheritedCtorInitExprClass, "");
673 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXBindTemporaryExprClass == clang::Stmt::CXXBindTemporaryExprClass, "");
674 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ExprWithCleanupsClass == clang::Stmt::ExprWithCleanupsClass, "");
675 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXTemporaryObjectExprClass == clang::Stmt::CXXTemporaryObjectExprClass, "");
676 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXUnresolvedConstructExprClass == clang::Stmt::CXXUnresolvedConstructExprClass, "");
677 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXDependentScopeMemberExprClass == clang::Stmt::CXXDependentScopeMemberExprClass, "");
678 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnresolvedLookupExprClass == clang::Stmt::UnresolvedLookupExprClass, "");
679 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnresolvedMemberExprClass == clang::Stmt::UnresolvedMemberExprClass, "");
680 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXNoexceptExprClass == clang::Stmt::CXXNoexceptExprClass, "");
681 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_PackExpansionExprClass == clang::Stmt::PackExpansionExprClass, "");
682 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_SizeOfPackExprClass == clang::Stmt::SizeOfPackExprClass, "");
683 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_SubstNonTypeTemplateParmExprClass == clang::Stmt::SubstNonTypeTemplateParmExprClass, "");
684 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_SubstNonTypeTemplateParmPackExprClass == clang::Stmt::SubstNonTypeTemplateParmPackExprClass, "");
685 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_FunctionParmPackExprClass == clang::Stmt::FunctionParmPackExprClass, "");
686 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_MaterializeTemporaryExprClass == clang::Stmt::MaterializeTemporaryExprClass, "");
687 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_LambdaExprClass == clang::Stmt::LambdaExprClass, "");
688 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXFoldExprClass == clang::Stmt::CXXFoldExprClass, "");
689 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CoawaitExprClass == clang::Stmt::CoawaitExprClass, "");
690 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_DependentCoawaitExprClass == clang::Stmt::DependentCoawaitExprClass, "");
691 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CoyieldExprClass == clang::Stmt::CoyieldExprClass, "");
692 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCStringLiteralClass == clang::Stmt::ObjCStringLiteralClass, "");
693 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCBoxedExprClass == clang::Stmt::ObjCBoxedExprClass, "");
694 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCArrayLiteralClass == clang::Stmt::ObjCArrayLiteralClass, "");
695 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCDictionaryLiteralClass == clang::Stmt::ObjCDictionaryLiteralClass, "");
696 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCEncodeExprClass == clang::Stmt::ObjCEncodeExprClass, "");
697 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCMessageExprClass == clang::Stmt::ObjCMessageExprClass, "");
698 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCSelectorExprClass == clang::Stmt::ObjCSelectorExprClass, "");
699 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCProtocolExprClass == clang::Stmt::ObjCProtocolExprClass, "");
700 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCIvarRefExprClass == clang::Stmt::ObjCIvarRefExprClass, "");
701 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCPropertyRefExprClass == clang::Stmt::ObjCPropertyRefExprClass, "");
702 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCIsaExprClass == clang::Stmt::ObjCIsaExprClass, "");
703 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCIndirectCopyRestoreExprClass == clang::Stmt::ObjCIndirectCopyRestoreExprClass, "");
704 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCBoolLiteralExprClass == clang::Stmt::ObjCBoolLiteralExprClass, "");
705 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCSubscriptRefExprClass == clang::Stmt::ObjCSubscriptRefExprClass, "");
706 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAvailabilityCheckExprClass == clang::Stmt::ObjCAvailabilityCheckExprClass, "");
707 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCBridgedCastExprClass == clang::Stmt::ObjCBridgedCastExprClass, "");
708 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CUDAKernelCallExprClass == clang::Stmt::CUDAKernelCallExprClass, "");
709 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ShuffleVectorExprClass == clang::Stmt::ShuffleVectorExprClass, "");
710 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_ConvertVectorExprClass == clang::Stmt::ConvertVectorExprClass, "");
711 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_BlockExprClass == clang::Stmt::BlockExprClass, "");
712 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpaqueValueExprClass == clang::Stmt::OpaqueValueExprClass, "");
713 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_TypoExprClass == clang::Stmt::TypoExprClass, "");
714 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSPropertyRefExprClass == clang::Stmt::MSPropertyRefExprClass, "");
715 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSPropertySubscriptExprClass == clang::Stmt::MSPropertySubscriptExprClass, "");
716 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXUuidofExprClass == clang::Stmt::CXXUuidofExprClass, "");
717 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHTryStmtClass == clang::Stmt::SEHTryStmtClass, "");
718 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHExceptStmtClass == clang::Stmt::SEHExceptStmtClass, "");
719 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHFinallyStmtClass == clang::Stmt::SEHFinallyStmtClass, "");
720 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHLeaveStmtClass == clang::Stmt::SEHLeaveStmtClass, "");
721 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSDependentExistsStmtClass == clang::Stmt::MSDependentExistsStmtClass, "");
722 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_AsTypeExprClass == clang::Stmt::AsTypeExprClass, "");
723 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelDirectiveClass == clang::Stmt::OMPParallelDirectiveClass, "");
724 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPSimdDirectiveClass == clang::Stmt::OMPSimdDirectiveClass, "");
725 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPForDirectiveClass == clang::Stmt::OMPForDirectiveClass, "");
726 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPForSimdDirectiveClass == clang::Stmt::OMPForSimdDirectiveClass, "");
727 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPSectionsDirectiveClass == clang::Stmt::OMPSectionsDirectiveClass, "");
728 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPSectionDirectiveClass == clang::Stmt::OMPSectionDirectiveClass, "");
729 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPSingleDirectiveClass == clang::Stmt::OMPSingleDirectiveClass, "");
730 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterDirectiveClass == clang::Stmt::OMPMasterDirectiveClass, "");
731 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCriticalDirectiveClass == clang::Stmt::OMPCriticalDirectiveClass, "");
732 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelForDirectiveClass == clang::Stmt::OMPParallelForDirectiveClass, "");
733 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelForSimdDirectiveClass == clang::Stmt::OMPParallelForSimdDirectiveClass, "");
734 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelSectionsDirectiveClass == clang::Stmt::OMPParallelSectionsDirectiveClass, "");
735 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTaskDirectiveClass == clang::Stmt::OMPTaskDirectiveClass, "");
736 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTaskyieldDirectiveClass == clang::Stmt::OMPTaskyieldDirectiveClass, "");
737 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPBarrierDirectiveClass == clang::Stmt::OMPBarrierDirectiveClass, "");
738 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTaskwaitDirectiveClass == clang::Stmt::OMPTaskwaitDirectiveClass, "");
739 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTaskgroupDirectiveClass == clang::Stmt::OMPTaskgroupDirectiveClass, "");
740 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPFlushDirectiveClass == clang::Stmt::OMPFlushDirectiveClass, "");
741 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPOrderedDirectiveClass == clang::Stmt::OMPOrderedDirectiveClass, "");
742 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPAtomicDirectiveClass == clang::Stmt::OMPAtomicDirectiveClass, "");
743 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetDirectiveClass == clang::Stmt::OMPTargetDirectiveClass, "");
744 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetDataDirectiveClass == clang::Stmt::OMPTargetDataDirectiveClass, "");
745 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetEnterDataDirectiveClass == clang::Stmt::OMPTargetEnterDataDirectiveClass, "");
746 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetExitDataDirectiveClass == clang::Stmt::OMPTargetExitDataDirectiveClass, "");
747 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetParallelDirectiveClass == clang::Stmt::OMPTargetParallelDirectiveClass, "");
748 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetParallelForDirectiveClass == clang::Stmt::OMPTargetParallelForDirectiveClass, "");
749 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetUpdateDirectiveClass == clang::Stmt::OMPTargetUpdateDirectiveClass, "");
750 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDirectiveClass == clang::Stmt::OMPTeamsDirectiveClass, "");
751 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancellationPointDirectiveClass == clang::Stmt::OMPCancellationPointDirectiveClass, "");
752 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancelDirectiveClass == clang::Stmt::OMPCancelDirectiveClass, "");
753 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTaskLoopDirectiveClass == clang::Stmt::OMPTaskLoopDirectiveClass, "");
754 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTaskLoopSimdDirectiveClass == clang::Stmt::OMPTaskLoopSimdDirectiveClass, "");
755 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeDirectiveClass == clang::Stmt::OMPDistributeDirectiveClass, "");
756 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeParallelForDirectiveClass == clang::Stmt::OMPDistributeParallelForDirectiveClass, "");
757 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass == clang::Stmt::OMPDistributeParallelForSimdDirectiveClass, "");
758 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeSimdDirectiveClass == clang::Stmt::OMPDistributeSimdDirectiveClass, "");
759 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetParallelForSimdDirectiveClass == clang::Stmt::OMPTargetParallelForSimdDirectiveClass, "");
760 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetSimdDirectiveClass == clang::Stmt::OMPTargetSimdDirectiveClass, "");
761 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeDirectiveClass == clang::Stmt::OMPTeamsDistributeDirectiveClass, "");
762 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass == clang::Stmt::OMPTeamsDistributeSimdDirectiveClass, "");
763 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass == clang::Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass, "");
764 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass == clang::Stmt::OMPTeamsDistributeParallelForDirectiveClass, "");
765 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDirectiveClass == clang::Stmt::OMPTargetTeamsDirectiveClass, "");
766 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass == clang::Stmt::OMPTargetTeamsDistributeDirectiveClass, "");
767 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass == clang::Stmt::OMPTargetTeamsDistributeParallelForDirectiveClass, "");
768 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass == clang::Stmt::OMPTargetTeamsDistributeParallelForSimdDirectiveClass, "");
769 : : static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass == clang::Stmt::OMPTargetTeamsDistributeSimdDirectiveClass, "");
770 : :
771 : 0 : void ZigClang_detect_enum_APValueKind(clang::APValue::ValueKind x) {
772 [ # # ]: 0 : switch (x) {
773 : 0 : case clang::APValue::Uninitialized:
774 : : case clang::APValue::Int:
775 : : case clang::APValue::Float:
776 : : case clang::APValue::ComplexInt:
777 : : case clang::APValue::ComplexFloat:
778 : : case clang::APValue::LValue:
779 : : case clang::APValue::Vector:
780 : : case clang::APValue::Array:
781 : : case clang::APValue::Struct:
782 : : case clang::APValue::Union:
783 : : case clang::APValue::MemberPointer:
784 : : case clang::APValue::AddrLabelDiff:
785 : 0 : break;
786 : : }
787 : 0 : }
788 : :
789 : : static_assert((clang::APValue::ValueKind)ZigClangAPValueUninitialized == clang::APValue::Uninitialized, "");
790 : : static_assert((clang::APValue::ValueKind)ZigClangAPValueInt == clang::APValue::Int, "");
791 : : static_assert((clang::APValue::ValueKind)ZigClangAPValueFloat == clang::APValue::Float, "");
792 : : static_assert((clang::APValue::ValueKind)ZigClangAPValueComplexInt == clang::APValue::ComplexInt, "");
793 : : static_assert((clang::APValue::ValueKind)ZigClangAPValueComplexFloat == clang::APValue::ComplexFloat, "");
794 : : static_assert((clang::APValue::ValueKind)ZigClangAPValueLValue == clang::APValue::LValue, "");
795 : : static_assert((clang::APValue::ValueKind)ZigClangAPValueVector == clang::APValue::Vector, "");
796 : : static_assert((clang::APValue::ValueKind)ZigClangAPValueArray == clang::APValue::Array, "");
797 : : static_assert((clang::APValue::ValueKind)ZigClangAPValueStruct == clang::APValue::Struct, "");
798 : : static_assert((clang::APValue::ValueKind)ZigClangAPValueUnion == clang::APValue::Union, "");
799 : : static_assert((clang::APValue::ValueKind)ZigClangAPValueMemberPointer == clang::APValue::MemberPointer, "");
800 : : static_assert((clang::APValue::ValueKind)ZigClangAPValueAddrLabelDiff == clang::APValue::AddrLabelDiff, "");
801 : :
802 : :
803 : 0 : void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
804 [ # # ]: 0 : switch (x) {
805 : 0 : case clang::Decl::AccessSpec:
806 : : case clang::Decl::Block:
807 : : case clang::Decl::Captured:
808 : : case clang::Decl::ClassScopeFunctionSpecialization:
809 : : case clang::Decl::Empty:
810 : : case clang::Decl::Export:
811 : : case clang::Decl::ExternCContext:
812 : : case clang::Decl::FileScopeAsm:
813 : : case clang::Decl::Friend:
814 : : case clang::Decl::FriendTemplate:
815 : : case clang::Decl::Import:
816 : : case clang::Decl::LinkageSpec:
817 : : case clang::Decl::Label:
818 : : case clang::Decl::Namespace:
819 : : case clang::Decl::NamespaceAlias:
820 : : case clang::Decl::ObjCCompatibleAlias:
821 : : case clang::Decl::ObjCCategory:
822 : : case clang::Decl::ObjCCategoryImpl:
823 : : case clang::Decl::ObjCImplementation:
824 : : case clang::Decl::ObjCInterface:
825 : : case clang::Decl::ObjCProtocol:
826 : : case clang::Decl::ObjCMethod:
827 : : case clang::Decl::ObjCProperty:
828 : : case clang::Decl::BuiltinTemplate:
829 : : case clang::Decl::ClassTemplate:
830 : : case clang::Decl::FunctionTemplate:
831 : : case clang::Decl::TypeAliasTemplate:
832 : : case clang::Decl::VarTemplate:
833 : : case clang::Decl::TemplateTemplateParm:
834 : : case clang::Decl::Enum:
835 : : case clang::Decl::Record:
836 : : case clang::Decl::CXXRecord:
837 : : case clang::Decl::ClassTemplateSpecialization:
838 : : case clang::Decl::ClassTemplatePartialSpecialization:
839 : : case clang::Decl::TemplateTypeParm:
840 : : case clang::Decl::ObjCTypeParam:
841 : : case clang::Decl::TypeAlias:
842 : : case clang::Decl::Typedef:
843 : : case clang::Decl::UnresolvedUsingTypename:
844 : : case clang::Decl::Using:
845 : : case clang::Decl::UsingDirective:
846 : : case clang::Decl::UsingPack:
847 : : case clang::Decl::UsingShadow:
848 : : case clang::Decl::ConstructorUsingShadow:
849 : : case clang::Decl::Binding:
850 : : case clang::Decl::Field:
851 : : case clang::Decl::ObjCAtDefsField:
852 : : case clang::Decl::ObjCIvar:
853 : : case clang::Decl::Function:
854 : : case clang::Decl::CXXDeductionGuide:
855 : : case clang::Decl::CXXMethod:
856 : : case clang::Decl::CXXConstructor:
857 : : case clang::Decl::CXXConversion:
858 : : case clang::Decl::CXXDestructor:
859 : : case clang::Decl::MSProperty:
860 : : case clang::Decl::NonTypeTemplateParm:
861 : : case clang::Decl::Var:
862 : : case clang::Decl::Decomposition:
863 : : case clang::Decl::ImplicitParam:
864 : : case clang::Decl::OMPCapturedExpr:
865 : : case clang::Decl::ParmVar:
866 : : case clang::Decl::VarTemplateSpecialization:
867 : : case clang::Decl::VarTemplatePartialSpecialization:
868 : : case clang::Decl::EnumConstant:
869 : : case clang::Decl::IndirectField:
870 : : case clang::Decl::OMPDeclareReduction:
871 : : case clang::Decl::UnresolvedUsingValue:
872 : : case clang::Decl::OMPRequires:
873 : : case clang::Decl::OMPThreadPrivate:
874 : : case clang::Decl::ObjCPropertyImpl:
875 : : case clang::Decl::PragmaComment:
876 : : case clang::Decl::PragmaDetectMismatch:
877 : : case clang::Decl::StaticAssert:
878 : : case clang::Decl::TranslationUnit:
879 : 0 : break;
880 : : }
881 : 0 : }
882 : :
883 : : static_assert((clang::Decl::Kind)ZigClangDeclAccessSpec == clang::Decl::AccessSpec, "");
884 : : static_assert((clang::Decl::Kind)ZigClangDeclBlock == clang::Decl::Block, "");
885 : : static_assert((clang::Decl::Kind)ZigClangDeclCaptured == clang::Decl::Captured, "");
886 : : static_assert((clang::Decl::Kind)ZigClangDeclClassScopeFunctionSpecialization == clang::Decl::ClassScopeFunctionSpecialization, "");
887 : : static_assert((clang::Decl::Kind)ZigClangDeclEmpty == clang::Decl::Empty, "");
888 : : static_assert((clang::Decl::Kind)ZigClangDeclExport == clang::Decl::Export, "");
889 : : static_assert((clang::Decl::Kind)ZigClangDeclExternCContext == clang::Decl::ExternCContext, "");
890 : : static_assert((clang::Decl::Kind)ZigClangDeclFileScopeAsm == clang::Decl::FileScopeAsm, "");
891 : : static_assert((clang::Decl::Kind)ZigClangDeclFriend == clang::Decl::Friend, "");
892 : : static_assert((clang::Decl::Kind)ZigClangDeclFriendTemplate == clang::Decl::FriendTemplate, "");
893 : : static_assert((clang::Decl::Kind)ZigClangDeclImport == clang::Decl::Import, "");
894 : : static_assert((clang::Decl::Kind)ZigClangDeclLinkageSpec == clang::Decl::LinkageSpec, "");
895 : : static_assert((clang::Decl::Kind)ZigClangDeclLabel == clang::Decl::Label, "");
896 : : static_assert((clang::Decl::Kind)ZigClangDeclNamespace == clang::Decl::Namespace, "");
897 : : static_assert((clang::Decl::Kind)ZigClangDeclNamespaceAlias == clang::Decl::NamespaceAlias, "");
898 : : static_assert((clang::Decl::Kind)ZigClangDeclObjCCompatibleAlias == clang::Decl::ObjCCompatibleAlias, "");
899 : : static_assert((clang::Decl::Kind)ZigClangDeclObjCCategory == clang::Decl::ObjCCategory, "");
900 : : static_assert((clang::Decl::Kind)ZigClangDeclObjCCategoryImpl == clang::Decl::ObjCCategoryImpl, "");
901 : : static_assert((clang::Decl::Kind)ZigClangDeclObjCImplementation == clang::Decl::ObjCImplementation, "");
902 : : static_assert((clang::Decl::Kind)ZigClangDeclObjCInterface == clang::Decl::ObjCInterface, "");
903 : : static_assert((clang::Decl::Kind)ZigClangDeclObjCProtocol == clang::Decl::ObjCProtocol, "");
904 : : static_assert((clang::Decl::Kind)ZigClangDeclObjCMethod == clang::Decl::ObjCMethod, "");
905 : : static_assert((clang::Decl::Kind)ZigClangDeclObjCProperty == clang::Decl::ObjCProperty, "");
906 : : static_assert((clang::Decl::Kind)ZigClangDeclBuiltinTemplate == clang::Decl::BuiltinTemplate, "");
907 : : static_assert((clang::Decl::Kind)ZigClangDeclClassTemplate == clang::Decl::ClassTemplate, "");
908 : : static_assert((clang::Decl::Kind)ZigClangDeclFunctionTemplate == clang::Decl::FunctionTemplate, "");
909 : : static_assert((clang::Decl::Kind)ZigClangDeclTypeAliasTemplate == clang::Decl::TypeAliasTemplate, "");
910 : : static_assert((clang::Decl::Kind)ZigClangDeclVarTemplate == clang::Decl::VarTemplate, "");
911 : : static_assert((clang::Decl::Kind)ZigClangDeclTemplateTemplateParm == clang::Decl::TemplateTemplateParm, "");
912 : : static_assert((clang::Decl::Kind)ZigClangDeclEnum == clang::Decl::Enum, "");
913 : : static_assert((clang::Decl::Kind)ZigClangDeclRecord == clang::Decl::Record, "");
914 : : static_assert((clang::Decl::Kind)ZigClangDeclCXXRecord == clang::Decl::CXXRecord, "");
915 : : static_assert((clang::Decl::Kind)ZigClangDeclClassTemplateSpecialization == clang::Decl::ClassTemplateSpecialization, "");
916 : : static_assert((clang::Decl::Kind)ZigClangDeclClassTemplatePartialSpecialization == clang::Decl::ClassTemplatePartialSpecialization, "");
917 : : static_assert((clang::Decl::Kind)ZigClangDeclTemplateTypeParm == clang::Decl::TemplateTypeParm, "");
918 : : static_assert((clang::Decl::Kind)ZigClangDeclObjCTypeParam == clang::Decl::ObjCTypeParam, "");
919 : : static_assert((clang::Decl::Kind)ZigClangDeclTypeAlias == clang::Decl::TypeAlias, "");
920 : : static_assert((clang::Decl::Kind)ZigClangDeclTypedef == clang::Decl::Typedef, "");
921 : : static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingTypename == clang::Decl::UnresolvedUsingTypename, "");
922 : : static_assert((clang::Decl::Kind)ZigClangDeclUsing == clang::Decl::Using, "");
923 : : static_assert((clang::Decl::Kind)ZigClangDeclUsingDirective == clang::Decl::UsingDirective, "");
924 : : static_assert((clang::Decl::Kind)ZigClangDeclUsingPack == clang::Decl::UsingPack, "");
925 : : static_assert((clang::Decl::Kind)ZigClangDeclUsingShadow == clang::Decl::UsingShadow, "");
926 : : static_assert((clang::Decl::Kind)ZigClangDeclConstructorUsingShadow == clang::Decl::ConstructorUsingShadow, "");
927 : : static_assert((clang::Decl::Kind)ZigClangDeclBinding == clang::Decl::Binding, "");
928 : : static_assert((clang::Decl::Kind)ZigClangDeclField == clang::Decl::Field, "");
929 : : static_assert((clang::Decl::Kind)ZigClangDeclObjCAtDefsField == clang::Decl::ObjCAtDefsField, "");
930 : : static_assert((clang::Decl::Kind)ZigClangDeclObjCIvar == clang::Decl::ObjCIvar, "");
931 : : static_assert((clang::Decl::Kind)ZigClangDeclFunction == clang::Decl::Function, "");
932 : : static_assert((clang::Decl::Kind)ZigClangDeclCXXDeductionGuide == clang::Decl::CXXDeductionGuide, "");
933 : : static_assert((clang::Decl::Kind)ZigClangDeclCXXMethod == clang::Decl::CXXMethod, "");
934 : : static_assert((clang::Decl::Kind)ZigClangDeclCXXConstructor == clang::Decl::CXXConstructor, "");
935 : : static_assert((clang::Decl::Kind)ZigClangDeclCXXConversion == clang::Decl::CXXConversion, "");
936 : : static_assert((clang::Decl::Kind)ZigClangDeclCXXDestructor == clang::Decl::CXXDestructor, "");
937 : : static_assert((clang::Decl::Kind)ZigClangDeclMSProperty == clang::Decl::MSProperty, "");
938 : : static_assert((clang::Decl::Kind)ZigClangDeclNonTypeTemplateParm == clang::Decl::NonTypeTemplateParm, "");
939 : : static_assert((clang::Decl::Kind)ZigClangDeclVar == clang::Decl::Var, "");
940 : : static_assert((clang::Decl::Kind)ZigClangDeclDecomposition == clang::Decl::Decomposition, "");
941 : : static_assert((clang::Decl::Kind)ZigClangDeclImplicitParam == clang::Decl::ImplicitParam, "");
942 : : static_assert((clang::Decl::Kind)ZigClangDeclOMPCapturedExpr == clang::Decl::OMPCapturedExpr, "");
943 : : static_assert((clang::Decl::Kind)ZigClangDeclParmVar == clang::Decl::ParmVar, "");
944 : : static_assert((clang::Decl::Kind)ZigClangDeclVarTemplateSpecialization == clang::Decl::VarTemplateSpecialization, "");
945 : : static_assert((clang::Decl::Kind)ZigClangDeclVarTemplatePartialSpecialization == clang::Decl::VarTemplatePartialSpecialization, "");
946 : : static_assert((clang::Decl::Kind)ZigClangDeclEnumConstant == clang::Decl::EnumConstant, "");
947 : : static_assert((clang::Decl::Kind)ZigClangDeclIndirectField == clang::Decl::IndirectField, "");
948 : : static_assert((clang::Decl::Kind)ZigClangDeclOMPDeclareReduction == clang::Decl::OMPDeclareReduction, "");
949 : : static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingValue == clang::Decl::UnresolvedUsingValue, "");
950 : : static_assert((clang::Decl::Kind)ZigClangDeclOMPRequires == clang::Decl::OMPRequires, "");
951 : : static_assert((clang::Decl::Kind)ZigClangDeclOMPThreadPrivate == clang::Decl::OMPThreadPrivate, "");
952 : : static_assert((clang::Decl::Kind)ZigClangDeclObjCPropertyImpl == clang::Decl::ObjCPropertyImpl, "");
953 : : static_assert((clang::Decl::Kind)ZigClangDeclPragmaComment == clang::Decl::PragmaComment, "");
954 : : static_assert((clang::Decl::Kind)ZigClangDeclPragmaDetectMismatch == clang::Decl::PragmaDetectMismatch, "");
955 : : static_assert((clang::Decl::Kind)ZigClangDeclStaticAssert == clang::Decl::StaticAssert, "");
956 : : static_assert((clang::Decl::Kind)ZigClangDeclTranslationUnit == clang::Decl::TranslationUnit, "");
957 : :
958 : 0 : void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
959 [ # # ]: 0 : switch (x) {
960 : 0 : case clang::BuiltinType::OCLImage1dRO:
961 : : case clang::BuiltinType::OCLImage1dArrayRO:
962 : : case clang::BuiltinType::OCLImage1dBufferRO:
963 : : case clang::BuiltinType::OCLImage2dRO:
964 : : case clang::BuiltinType::OCLImage2dArrayRO:
965 : : case clang::BuiltinType::OCLImage2dDepthRO:
966 : : case clang::BuiltinType::OCLImage2dArrayDepthRO:
967 : : case clang::BuiltinType::OCLImage2dMSAARO:
968 : : case clang::BuiltinType::OCLImage2dArrayMSAARO:
969 : : case clang::BuiltinType::OCLImage2dMSAADepthRO:
970 : : case clang::BuiltinType::OCLImage2dArrayMSAADepthRO:
971 : : case clang::BuiltinType::OCLImage3dRO:
972 : : case clang::BuiltinType::OCLImage1dWO:
973 : : case clang::BuiltinType::OCLImage1dArrayWO:
974 : : case clang::BuiltinType::OCLImage1dBufferWO:
975 : : case clang::BuiltinType::OCLImage2dWO:
976 : : case clang::BuiltinType::OCLImage2dArrayWO:
977 : : case clang::BuiltinType::OCLImage2dDepthWO:
978 : : case clang::BuiltinType::OCLImage2dArrayDepthWO:
979 : : case clang::BuiltinType::OCLImage2dMSAAWO:
980 : : case clang::BuiltinType::OCLImage2dArrayMSAAWO:
981 : : case clang::BuiltinType::OCLImage2dMSAADepthWO:
982 : : case clang::BuiltinType::OCLImage2dArrayMSAADepthWO:
983 : : case clang::BuiltinType::OCLImage3dWO:
984 : : case clang::BuiltinType::OCLImage1dRW:
985 : : case clang::BuiltinType::OCLImage1dArrayRW:
986 : : case clang::BuiltinType::OCLImage1dBufferRW:
987 : : case clang::BuiltinType::OCLImage2dRW:
988 : : case clang::BuiltinType::OCLImage2dArrayRW:
989 : : case clang::BuiltinType::OCLImage2dDepthRW:
990 : : case clang::BuiltinType::OCLImage2dArrayDepthRW:
991 : : case clang::BuiltinType::OCLImage2dMSAARW:
992 : : case clang::BuiltinType::OCLImage2dArrayMSAARW:
993 : : case clang::BuiltinType::OCLImage2dMSAADepthRW:
994 : : case clang::BuiltinType::OCLImage2dArrayMSAADepthRW:
995 : : case clang::BuiltinType::OCLImage3dRW:
996 : : case clang::BuiltinType::OCLIntelSubgroupAVCMcePayload:
997 : : case clang::BuiltinType::OCLIntelSubgroupAVCImePayload:
998 : : case clang::BuiltinType::OCLIntelSubgroupAVCRefPayload:
999 : : case clang::BuiltinType::OCLIntelSubgroupAVCSicPayload:
1000 : : case clang::BuiltinType::OCLIntelSubgroupAVCMceResult:
1001 : : case clang::BuiltinType::OCLIntelSubgroupAVCImeResult:
1002 : : case clang::BuiltinType::OCLIntelSubgroupAVCRefResult:
1003 : : case clang::BuiltinType::OCLIntelSubgroupAVCSicResult:
1004 : : case clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout:
1005 : : case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout:
1006 : : case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin:
1007 : : case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin:
1008 : : case clang::BuiltinType::Void:
1009 : : case clang::BuiltinType::Bool:
1010 : : case clang::BuiltinType::Char_U:
1011 : : case clang::BuiltinType::UChar:
1012 : : case clang::BuiltinType::WChar_U:
1013 : : case clang::BuiltinType::Char8:
1014 : : case clang::BuiltinType::Char16:
1015 : : case clang::BuiltinType::Char32:
1016 : : case clang::BuiltinType::UShort:
1017 : : case clang::BuiltinType::UInt:
1018 : : case clang::BuiltinType::ULong:
1019 : : case clang::BuiltinType::ULongLong:
1020 : : case clang::BuiltinType::UInt128:
1021 : : case clang::BuiltinType::Char_S:
1022 : : case clang::BuiltinType::SChar:
1023 : : case clang::BuiltinType::WChar_S:
1024 : : case clang::BuiltinType::Short:
1025 : : case clang::BuiltinType::Int:
1026 : : case clang::BuiltinType::Long:
1027 : : case clang::BuiltinType::LongLong:
1028 : : case clang::BuiltinType::Int128:
1029 : : case clang::BuiltinType::ShortAccum:
1030 : : case clang::BuiltinType::Accum:
1031 : : case clang::BuiltinType::LongAccum:
1032 : : case clang::BuiltinType::UShortAccum:
1033 : : case clang::BuiltinType::UAccum:
1034 : : case clang::BuiltinType::ULongAccum:
1035 : : case clang::BuiltinType::ShortFract:
1036 : : case clang::BuiltinType::Fract:
1037 : : case clang::BuiltinType::LongFract:
1038 : : case clang::BuiltinType::UShortFract:
1039 : : case clang::BuiltinType::UFract:
1040 : : case clang::BuiltinType::ULongFract:
1041 : : case clang::BuiltinType::SatShortAccum:
1042 : : case clang::BuiltinType::SatAccum:
1043 : : case clang::BuiltinType::SatLongAccum:
1044 : : case clang::BuiltinType::SatUShortAccum:
1045 : : case clang::BuiltinType::SatUAccum:
1046 : : case clang::BuiltinType::SatULongAccum:
1047 : : case clang::BuiltinType::SatShortFract:
1048 : : case clang::BuiltinType::SatFract:
1049 : : case clang::BuiltinType::SatLongFract:
1050 : : case clang::BuiltinType::SatUShortFract:
1051 : : case clang::BuiltinType::SatUFract:
1052 : : case clang::BuiltinType::SatULongFract:
1053 : : case clang::BuiltinType::Half:
1054 : : case clang::BuiltinType::Float:
1055 : : case clang::BuiltinType::Double:
1056 : : case clang::BuiltinType::LongDouble:
1057 : : case clang::BuiltinType::Float16:
1058 : : case clang::BuiltinType::Float128:
1059 : : case clang::BuiltinType::NullPtr:
1060 : : case clang::BuiltinType::ObjCId:
1061 : : case clang::BuiltinType::ObjCClass:
1062 : : case clang::BuiltinType::ObjCSel:
1063 : : case clang::BuiltinType::OCLSampler:
1064 : : case clang::BuiltinType::OCLEvent:
1065 : : case clang::BuiltinType::OCLClkEvent:
1066 : : case clang::BuiltinType::OCLQueue:
1067 : : case clang::BuiltinType::OCLReserveID:
1068 : : case clang::BuiltinType::Dependent:
1069 : : case clang::BuiltinType::Overload:
1070 : : case clang::BuiltinType::BoundMember:
1071 : : case clang::BuiltinType::PseudoObject:
1072 : : case clang::BuiltinType::UnknownAny:
1073 : : case clang::BuiltinType::BuiltinFn:
1074 : : case clang::BuiltinType::ARCUnbridgedCast:
1075 : : case clang::BuiltinType::OMPArraySection:
1076 : 0 : break;
1077 : : }
1078 : 0 : }
1079 : :
1080 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dRO == clang::BuiltinType::OCLImage1dRO, "");
1081 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dArrayRO == clang::BuiltinType::OCLImage1dArrayRO, "");
1082 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dBufferRO == clang::BuiltinType::OCLImage1dBufferRO, "");
1083 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dRO == clang::BuiltinType::OCLImage2dRO, "");
1084 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayRO == clang::BuiltinType::OCLImage2dArrayRO, "");
1085 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dDepthRO == clang::BuiltinType::OCLImage2dDepthRO, "");
1086 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayDepthRO == clang::BuiltinType::OCLImage2dArrayDepthRO, "");
1087 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAARO == clang::BuiltinType::OCLImage2dMSAARO, "");
1088 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAARO == clang::BuiltinType::OCLImage2dArrayMSAARO, "");
1089 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAADepthRO == clang::BuiltinType::OCLImage2dMSAADepthRO, "");
1090 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRO == clang::BuiltinType::OCLImage2dArrayMSAADepthRO, "");
1091 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage3dRO == clang::BuiltinType::OCLImage3dRO, "");
1092 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dWO == clang::BuiltinType::OCLImage1dWO, "");
1093 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dArrayWO == clang::BuiltinType::OCLImage1dArrayWO, "");
1094 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dBufferWO == clang::BuiltinType::OCLImage1dBufferWO, "");
1095 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dWO == clang::BuiltinType::OCLImage2dWO, "");
1096 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayWO == clang::BuiltinType::OCLImage2dArrayWO, "");
1097 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dDepthWO == clang::BuiltinType::OCLImage2dDepthWO, "");
1098 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayDepthWO == clang::BuiltinType::OCLImage2dArrayDepthWO, "");
1099 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAAWO == clang::BuiltinType::OCLImage2dMSAAWO, "");
1100 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAAWO == clang::BuiltinType::OCLImage2dArrayMSAAWO, "");
1101 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAADepthWO == clang::BuiltinType::OCLImage2dMSAADepthWO, "");
1102 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAADepthWO == clang::BuiltinType::OCLImage2dArrayMSAADepthWO, "");
1103 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage3dWO == clang::BuiltinType::OCLImage3dWO, "");
1104 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dRW == clang::BuiltinType::OCLImage1dRW, "");
1105 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dArrayRW == clang::BuiltinType::OCLImage1dArrayRW, "");
1106 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dBufferRW == clang::BuiltinType::OCLImage1dBufferRW, "");
1107 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dRW == clang::BuiltinType::OCLImage2dRW, "");
1108 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayRW == clang::BuiltinType::OCLImage2dArrayRW, "");
1109 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dDepthRW == clang::BuiltinType::OCLImage2dDepthRW, "");
1110 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayDepthRW == clang::BuiltinType::OCLImage2dArrayDepthRW, "");
1111 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAARW == clang::BuiltinType::OCLImage2dMSAARW, "");
1112 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAARW == clang::BuiltinType::OCLImage2dArrayMSAARW, "");
1113 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAADepthRW == clang::BuiltinType::OCLImage2dMSAADepthRW, "");
1114 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRW == clang::BuiltinType::OCLImage2dArrayMSAADepthRW, "");
1115 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage3dRW == clang::BuiltinType::OCLImage3dRW, "");
1116 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCMcePayload == clang::BuiltinType::OCLIntelSubgroupAVCMcePayload, "");
1117 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImePayload == clang::BuiltinType::OCLIntelSubgroupAVCImePayload, "");
1118 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCRefPayload == clang::BuiltinType::OCLIntelSubgroupAVCRefPayload, "");
1119 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCSicPayload == clang::BuiltinType::OCLIntelSubgroupAVCSicPayload, "");
1120 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCMceResult == clang::BuiltinType::OCLIntelSubgroupAVCMceResult, "");
1121 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResult == clang::BuiltinType::OCLIntelSubgroupAVCImeResult, "");
1122 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCRefResult == clang::BuiltinType::OCLIntelSubgroupAVCRefResult, "");
1123 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCSicResult == clang::BuiltinType::OCLIntelSubgroupAVCSicResult, "");
1124 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultSingleRefStreamout == clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout, "");
1125 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout == clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout, "");
1126 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin, "");
1127 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin, "");
1128 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, "");
1129 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, "");
1130 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_U == clang::BuiltinType::Char_U, "");
1131 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUChar == clang::BuiltinType::UChar, "");
1132 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeWChar_U == clang::BuiltinType::WChar_U, "");
1133 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar8 == clang::BuiltinType::Char8, "");
1134 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar16 == clang::BuiltinType::Char16, "");
1135 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar32 == clang::BuiltinType::Char32, "");
1136 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUShort == clang::BuiltinType::UShort, "");
1137 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUInt == clang::BuiltinType::UInt, "");
1138 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeULong == clang::BuiltinType::ULong, "");
1139 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeULongLong == clang::BuiltinType::ULongLong, "");
1140 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUInt128 == clang::BuiltinType::UInt128, "");
1141 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_S == clang::BuiltinType::Char_S, "");
1142 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSChar == clang::BuiltinType::SChar, "");
1143 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeWChar_S == clang::BuiltinType::WChar_S, "");
1144 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeShort == clang::BuiltinType::Short, "");
1145 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeInt == clang::BuiltinType::Int, "");
1146 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLong == clang::BuiltinType::Long, "");
1147 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLongLong == clang::BuiltinType::LongLong, "");
1148 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeInt128 == clang::BuiltinType::Int128, "");
1149 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeShortAccum == clang::BuiltinType::ShortAccum, "");
1150 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeAccum == clang::BuiltinType::Accum, "");
1151 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLongAccum == clang::BuiltinType::LongAccum, "");
1152 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUShortAccum == clang::BuiltinType::UShortAccum, "");
1153 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUAccum == clang::BuiltinType::UAccum, "");
1154 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeULongAccum == clang::BuiltinType::ULongAccum, "");
1155 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeShortFract == clang::BuiltinType::ShortFract, "");
1156 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFract == clang::BuiltinType::Fract, "");
1157 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLongFract == clang::BuiltinType::LongFract, "");
1158 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUShortFract == clang::BuiltinType::UShortFract, "");
1159 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUFract == clang::BuiltinType::UFract, "");
1160 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeULongFract == clang::BuiltinType::ULongFract, "");
1161 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatShortAccum == clang::BuiltinType::SatShortAccum, "");
1162 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatAccum == clang::BuiltinType::SatAccum, "");
1163 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatLongAccum == clang::BuiltinType::SatLongAccum, "");
1164 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatUShortAccum == clang::BuiltinType::SatUShortAccum, "");
1165 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatUAccum == clang::BuiltinType::SatUAccum, "");
1166 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatULongAccum == clang::BuiltinType::SatULongAccum, "");
1167 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatShortFract == clang::BuiltinType::SatShortFract, "");
1168 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatFract == clang::BuiltinType::SatFract, "");
1169 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatLongFract == clang::BuiltinType::SatLongFract, "");
1170 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatUShortFract == clang::BuiltinType::SatUShortFract, "");
1171 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatUFract == clang::BuiltinType::SatUFract, "");
1172 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatULongFract == clang::BuiltinType::SatULongFract, "");
1173 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeHalf == clang::BuiltinType::Half, "");
1174 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat == clang::BuiltinType::Float, "");
1175 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeDouble == clang::BuiltinType::Double, "");
1176 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLongDouble == clang::BuiltinType::LongDouble, "");
1177 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat16 == clang::BuiltinType::Float16, "");
1178 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat128 == clang::BuiltinType::Float128, "");
1179 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeNullPtr == clang::BuiltinType::NullPtr, "");
1180 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeObjCId == clang::BuiltinType::ObjCId, "");
1181 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeObjCClass == clang::BuiltinType::ObjCClass, "");
1182 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeObjCSel == clang::BuiltinType::ObjCSel, "");
1183 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLSampler == clang::BuiltinType::OCLSampler, "");
1184 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLEvent == clang::BuiltinType::OCLEvent, "");
1185 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLClkEvent == clang::BuiltinType::OCLClkEvent, "");
1186 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLQueue == clang::BuiltinType::OCLQueue, "");
1187 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLReserveID == clang::BuiltinType::OCLReserveID, "");
1188 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeDependent == clang::BuiltinType::Dependent, "");
1189 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOverload == clang::BuiltinType::Overload, "");
1190 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBoundMember == clang::BuiltinType::BoundMember, "");
1191 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypePseudoObject == clang::BuiltinType::PseudoObject, "");
1192 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUnknownAny == clang::BuiltinType::UnknownAny, "");
1193 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBuiltinFn == clang::BuiltinType::BuiltinFn, "");
1194 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeARCUnbridgedCast == clang::BuiltinType::ARCUnbridgedCast, "");
1195 : : static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOMPArraySection == clang::BuiltinType::OMPArraySection, "");
1196 : :
1197 : 0 : void ZigClang_detect_enum_CallingConv(clang::CallingConv x) {
1198 [ # # ]: 0 : switch (x) {
1199 : 0 : case clang::CC_C:
1200 : : case clang::CC_X86StdCall:
1201 : : case clang::CC_X86FastCall:
1202 : : case clang::CC_X86ThisCall:
1203 : : case clang::CC_X86VectorCall:
1204 : : case clang::CC_X86Pascal:
1205 : : case clang::CC_Win64:
1206 : : case clang::CC_X86_64SysV:
1207 : : case clang::CC_X86RegCall:
1208 : : case clang::CC_AAPCS:
1209 : : case clang::CC_AAPCS_VFP:
1210 : : case clang::CC_IntelOclBicc:
1211 : : case clang::CC_SpirFunction:
1212 : : case clang::CC_OpenCLKernel:
1213 : : case clang::CC_Swift:
1214 : : case clang::CC_PreserveMost:
1215 : : case clang::CC_PreserveAll:
1216 : : case clang::CC_AArch64VectorCall:
1217 : 0 : break;
1218 : : }
1219 : 0 : }
1220 : :
1221 : : static_assert((clang::CallingConv)ZigClangCallingConv_C == clang::CC_C, "");
1222 : : static_assert((clang::CallingConv)ZigClangCallingConv_X86StdCall == clang::CC_X86StdCall, "");
1223 : : static_assert((clang::CallingConv)ZigClangCallingConv_X86FastCall == clang::CC_X86FastCall, "");
1224 : : static_assert((clang::CallingConv)ZigClangCallingConv_X86ThisCall == clang::CC_X86ThisCall, "");
1225 : : static_assert((clang::CallingConv)ZigClangCallingConv_X86VectorCall == clang::CC_X86VectorCall, "");
1226 : : static_assert((clang::CallingConv)ZigClangCallingConv_X86Pascal == clang::CC_X86Pascal, "");
1227 : : static_assert((clang::CallingConv)ZigClangCallingConv_Win64 == clang::CC_Win64, "");
1228 : : static_assert((clang::CallingConv)ZigClangCallingConv_X86_64SysV == clang::CC_X86_64SysV, "");
1229 : : static_assert((clang::CallingConv)ZigClangCallingConv_X86RegCall == clang::CC_X86RegCall, "");
1230 : : static_assert((clang::CallingConv)ZigClangCallingConv_AAPCS == clang::CC_AAPCS, "");
1231 : : static_assert((clang::CallingConv)ZigClangCallingConv_AAPCS_VFP == clang::CC_AAPCS_VFP, "");
1232 : : static_assert((clang::CallingConv)ZigClangCallingConv_IntelOclBicc == clang::CC_IntelOclBicc, "");
1233 : : static_assert((clang::CallingConv)ZigClangCallingConv_SpirFunction == clang::CC_SpirFunction, "");
1234 : : static_assert((clang::CallingConv)ZigClangCallingConv_OpenCLKernel == clang::CC_OpenCLKernel, "");
1235 : : static_assert((clang::CallingConv)ZigClangCallingConv_Swift == clang::CC_Swift, "");
1236 : : static_assert((clang::CallingConv)ZigClangCallingConv_PreserveMost == clang::CC_PreserveMost, "");
1237 : : static_assert((clang::CallingConv)ZigClangCallingConv_PreserveAll == clang::CC_PreserveAll, "");
1238 : : static_assert((clang::CallingConv)ZigClangCallingConv_AArch64VectorCall == clang::CC_AArch64VectorCall, "");
1239 : :
1240 : 0 : void ZigClang_detect_enum_StorageClass(clang::StorageClass x) {
1241 [ # # ]: 0 : switch (x) {
1242 : 0 : case clang::SC_None:
1243 : : case clang::SC_Extern:
1244 : : case clang::SC_Static:
1245 : : case clang::SC_PrivateExtern:
1246 : : case clang::SC_Auto:
1247 : : case clang::SC_Register:
1248 : 0 : break;
1249 : : }
1250 : 0 : }
1251 : :
1252 : : static_assert((clang::StorageClass)ZigClangStorageClass_None == clang::SC_None, "");
1253 : : static_assert((clang::StorageClass)ZigClangStorageClass_Extern == clang::SC_Extern, "");
1254 : : static_assert((clang::StorageClass)ZigClangStorageClass_Static == clang::SC_Static, "");
1255 : : static_assert((clang::StorageClass)ZigClangStorageClass_PrivateExtern == clang::SC_PrivateExtern, "");
1256 : : static_assert((clang::StorageClass)ZigClangStorageClass_Auto == clang::SC_Auto, "");
1257 : : static_assert((clang::StorageClass)ZigClangStorageClass_Register == clang::SC_Register, "");
1258 : :
1259 : 0 : void ZigClang_detect_enum_RoundingMode(llvm::APFloat::roundingMode x) {
1260 [ # # ]: 0 : switch (x) {
1261 : 0 : case llvm::APFloat::rmNearestTiesToEven:
1262 : : case llvm::APFloat::rmTowardPositive:
1263 : : case llvm::APFloat::rmTowardNegative:
1264 : : case llvm::APFloat::rmTowardZero:
1265 : : case llvm::APFloat::rmNearestTiesToAway:
1266 : 0 : break;
1267 : : }
1268 : 0 : }
1269 : : static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_NearestTiesToEven == llvm::APFloat::rmNearestTiesToEven, "");
1270 : : static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_TowardPositive == llvm::APFloat::rmTowardPositive, "");
1271 : : static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_TowardNegative == llvm::APFloat::rmTowardNegative, "");
1272 : : static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_TowardZero == llvm::APFloat::rmTowardZero, "");
1273 : : static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_NearestTiesToAway == llvm::APFloat::rmNearestTiesToAway, "");
1274 : :
1275 : 0 : void ZigClang_detect_enum_StringKind(clang::StringLiteral::StringKind x) {
1276 [ # # ]: 0 : switch (x) {
1277 : 0 : case clang::StringLiteral::Ascii:
1278 : : case clang::StringLiteral::Wide:
1279 : : case clang::StringLiteral::UTF8:
1280 : : case clang::StringLiteral::UTF16:
1281 : : case clang::StringLiteral::UTF32:
1282 : 0 : break;
1283 : : }
1284 : 0 : }
1285 : : static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind_Ascii == clang::StringLiteral::Ascii, "");
1286 : : static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind_Wide == clang::StringLiteral::Wide, "");
1287 : : static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind_UTF8 == clang::StringLiteral::UTF8, "");
1288 : : static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind_UTF16 == clang::StringLiteral::UTF16, "");
1289 : : static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind_UTF32 == clang::StringLiteral::UTF32, "");
1290 : :
1291 : : static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_Uninitialized == clang::APValue::ValueKind::Uninitialized, "");
1292 : : static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_Int == clang::APValue::ValueKind::Int, "");
1293 : : static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_Float == clang::APValue::ValueKind::Float, "");
1294 : : static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_ComplexInt == clang::APValue::ValueKind::ComplexInt, "");
1295 : : static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_ComplexFloat == clang::APValue::ValueKind::ComplexFloat, "");
1296 : : static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_LValue == clang::APValue::ValueKind::LValue, "");
1297 : : static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_Vector == clang::APValue::ValueKind::Vector, "");
1298 : : static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_Array == clang::APValue::ValueKind::Array, "");
1299 : : static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_Struct == clang::APValue::ValueKind::Struct, "");
1300 : : static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_Union == clang::APValue::ValueKind::Union, "");
1301 : : static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_MemberPointer == clang::APValue::ValueKind::MemberPointer, "");
1302 : : static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_AddrLabelDiff == clang::APValue::ValueKind::AddrLabelDiff, "");
1303 : :
1304 : : static_assert(sizeof(ZigClangAPValue) == sizeof(clang::APValue), "");
1305 : :
1306 : : static_assert(sizeof(ZigClangSourceLocation) == sizeof(clang::SourceLocation), "");
1307 : 0 : static ZigClangSourceLocation bitcast(clang::SourceLocation src) {
1308 : : ZigClangSourceLocation dest;
1309 : 0 : memcpy(&dest, static_cast<void *>(&src), sizeof(ZigClangSourceLocation));
1310 : 0 : return dest;
1311 : : }
1312 : 0 : static clang::SourceLocation bitcast(ZigClangSourceLocation src) {
1313 : 0 : clang::SourceLocation dest;
1314 : 0 : memcpy(&dest, static_cast<void *>(&src), sizeof(ZigClangSourceLocation));
1315 : 0 : return dest;
1316 : : }
1317 : :
1318 : : static_assert(sizeof(ZigClangQualType) == sizeof(clang::QualType), "");
1319 : 0 : static ZigClangQualType bitcast(clang::QualType src) {
1320 : : ZigClangQualType dest;
1321 : 0 : memcpy(&dest, static_cast<void *>(&src), sizeof(ZigClangQualType));
1322 : 0 : return dest;
1323 : : }
1324 : 0 : static clang::QualType bitcast(ZigClangQualType src) {
1325 : 0 : clang::QualType dest;
1326 : 0 : memcpy(&dest, static_cast<void *>(&src), sizeof(ZigClangQualType));
1327 : 0 : return dest;
1328 : : }
1329 : :
1330 : : static_assert(sizeof(ZigClangExprEvalResult) == sizeof(clang::Expr::EvalResult), "");
1331 : 0 : static ZigClangExprEvalResult bitcast(clang::Expr::EvalResult src) {
1332 : : ZigClangExprEvalResult dest;
1333 : 0 : memcpy(&dest, static_cast<void *>(&src), sizeof(ZigClangExprEvalResult));
1334 : 0 : return dest;
1335 : : }
1336 : :
1337 : : static_assert(sizeof(ZigClangAPValueLValueBase) == sizeof(clang::APValue::LValueBase), "");
1338 : 0 : static ZigClangAPValueLValueBase bitcast(clang::APValue::LValueBase src) {
1339 : : ZigClangAPValueLValueBase dest;
1340 : 0 : memcpy(&dest, static_cast<void *>(&src), sizeof(ZigClangAPValueLValueBase));
1341 : 0 : return dest;
1342 : : }
1343 : 0 : static clang::APValue::LValueBase bitcast(ZigClangAPValueLValueBase src) {
1344 : 0 : clang::APValue::LValueBase dest;
1345 : 0 : memcpy(&dest, static_cast<void *>(&src), sizeof(ZigClangAPValueLValueBase));
1346 : 0 : return dest;
1347 : : }
1348 : :
1349 : : static_assert(sizeof(ZigClangCompoundStmt_const_body_iterator) == sizeof(clang::CompoundStmt::const_body_iterator), "");
1350 : 0 : static ZigClangCompoundStmt_const_body_iterator bitcast(clang::CompoundStmt::const_body_iterator src) {
1351 : : ZigClangCompoundStmt_const_body_iterator dest;
1352 : 0 : memcpy(&dest, static_cast<void *>(&src), sizeof(ZigClangCompoundStmt_const_body_iterator));
1353 : 0 : return dest;
1354 : : }
1355 : :
1356 : : static_assert(sizeof(ZigClangDeclStmt_const_decl_iterator) == sizeof(clang::DeclStmt::const_decl_iterator), "");
1357 : 0 : static ZigClangDeclStmt_const_decl_iterator bitcast(clang::DeclStmt::const_decl_iterator src) {
1358 : : ZigClangDeclStmt_const_decl_iterator dest;
1359 : 0 : memcpy(&dest, static_cast<void *>(&src), sizeof(ZigClangDeclStmt_const_decl_iterator));
1360 : 0 : return dest;
1361 : : }
1362 : :
1363 : 0 : ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const ZigClangSourceManager *self,
1364 : : ZigClangSourceLocation Loc)
1365 : : {
1366 : 0 : return bitcast(reinterpret_cast<const clang::SourceManager *>(self)->getSpellingLoc(bitcast(Loc)));
1367 : : }
1368 : :
1369 : 0 : const char *ZigClangSourceManager_getFilename(const ZigClangSourceManager *self,
1370 : : ZigClangSourceLocation SpellingLoc)
1371 : : {
1372 : 0 : llvm::StringRef s = reinterpret_cast<const clang::SourceManager *>(self)->getFilename(bitcast(SpellingLoc));
1373 : 0 : return (const char *)s.bytes_begin();
1374 : : }
1375 : :
1376 : 0 : unsigned ZigClangSourceManager_getSpellingLineNumber(const ZigClangSourceManager *self,
1377 : : ZigClangSourceLocation Loc)
1378 : : {
1379 : 0 : return reinterpret_cast<const clang::SourceManager *>(self)->getSpellingLineNumber(bitcast(Loc));
1380 : : }
1381 : :
1382 : 0 : unsigned ZigClangSourceManager_getSpellingColumnNumber(const ZigClangSourceManager *self,
1383 : : ZigClangSourceLocation Loc)
1384 : : {
1385 : 0 : return reinterpret_cast<const clang::SourceManager *>(self)->getSpellingColumnNumber(bitcast(Loc));
1386 : : }
1387 : :
1388 : 0 : const char* ZigClangSourceManager_getCharacterData(const ZigClangSourceManager *self,
1389 : : ZigClangSourceLocation SL)
1390 : : {
1391 : 0 : return reinterpret_cast<const clang::SourceManager *>(self)->getCharacterData(bitcast(SL));
1392 : : }
1393 : :
1394 : 0 : ZigClangQualType ZigClangASTContext_getPointerType(const ZigClangASTContext* self, ZigClangQualType T) {
1395 : 0 : return bitcast(reinterpret_cast<const clang::ASTContext *>(self)->getPointerType(bitcast(T)));
1396 : : }
1397 : :
1398 : 0 : unsigned ZigClangASTContext_getTypeAlign(const ZigClangASTContext* self, ZigClangQualType T) {
1399 : 0 : return reinterpret_cast<const clang::ASTContext *>(self)->getTypeAlign(bitcast(T));
1400 : : }
1401 : :
1402 : 0 : ZigClangASTContext *ZigClangASTUnit_getASTContext(ZigClangASTUnit *self) {
1403 : 0 : clang::ASTContext *result = &reinterpret_cast<clang::ASTUnit *>(self)->getASTContext();
1404 : 0 : return reinterpret_cast<ZigClangASTContext *>(result);
1405 : : }
1406 : :
1407 : 0 : ZigClangSourceManager *ZigClangASTUnit_getSourceManager(ZigClangASTUnit *self) {
1408 : 0 : clang::SourceManager *result = &reinterpret_cast<clang::ASTUnit *>(self)->getSourceManager();
1409 : 0 : return reinterpret_cast<ZigClangSourceManager *>(result);
1410 : : }
1411 : :
1412 : 0 : bool ZigClangASTUnit_visitLocalTopLevelDecls(ZigClangASTUnit *self, void *context,
1413 : : bool (*Fn)(void *context, const ZigClangDecl *decl))
1414 : : {
1415 : : return reinterpret_cast<clang::ASTUnit *>(self)->visitLocalTopLevelDecls(context,
1416 : 0 : reinterpret_cast<bool (*)(void *, const clang::Decl *)>(Fn));
1417 : : }
1418 : :
1419 : 0 : const ZigClangRecordDecl *ZigClangRecordType_getDecl(const ZigClangRecordType *record_ty) {
1420 : 0 : const clang::RecordDecl *record_decl = reinterpret_cast<const clang::RecordType *>(record_ty)->getDecl();
1421 : 0 : return reinterpret_cast<const ZigClangRecordDecl *>(record_decl);
1422 : : }
1423 : :
1424 : 0 : const ZigClangEnumDecl *ZigClangEnumType_getDecl(const ZigClangEnumType *enum_ty) {
1425 : 0 : const clang::EnumDecl *enum_decl = reinterpret_cast<const clang::EnumType *>(enum_ty)->getDecl();
1426 : 0 : return reinterpret_cast<const ZigClangEnumDecl *>(enum_decl);
1427 : : }
1428 : :
1429 : 0 : const ZigClangTagDecl *ZigClangRecordDecl_getCanonicalDecl(const ZigClangRecordDecl *record_decl) {
1430 : 0 : const clang::TagDecl *tag_decl = reinterpret_cast<const clang::RecordDecl*>(record_decl)->getCanonicalDecl();
1431 : 0 : return reinterpret_cast<const ZigClangTagDecl *>(tag_decl);
1432 : : }
1433 : :
1434 : 0 : const ZigClangTagDecl *ZigClangEnumDecl_getCanonicalDecl(const ZigClangEnumDecl *enum_decl) {
1435 : 0 : const clang::TagDecl *tag_decl = reinterpret_cast<const clang::EnumDecl*>(enum_decl)->getCanonicalDecl();
1436 : 0 : return reinterpret_cast<const ZigClangTagDecl *>(tag_decl);
1437 : : }
1438 : :
1439 : 0 : const ZigClangTypedefNameDecl *ZigClangTypedefNameDecl_getCanonicalDecl(const ZigClangTypedefNameDecl *self) {
1440 : 0 : const clang::TypedefNameDecl *decl = reinterpret_cast<const clang::TypedefNameDecl*>(self)->getCanonicalDecl();
1441 : 0 : return reinterpret_cast<const ZigClangTypedefNameDecl *>(decl);
1442 : : }
1443 : :
1444 : 0 : const ZigClangRecordDecl *ZigClangRecordDecl_getDefinition(const ZigClangRecordDecl *zig_record_decl) {
1445 : 0 : const clang::RecordDecl *record_decl = reinterpret_cast<const clang::RecordDecl *>(zig_record_decl);
1446 : 0 : const clang::RecordDecl *definition = record_decl->getDefinition();
1447 : 0 : return reinterpret_cast<const ZigClangRecordDecl *>(definition);
1448 : : }
1449 : :
1450 : 0 : const ZigClangEnumDecl *ZigClangEnumDecl_getDefinition(const ZigClangEnumDecl *zig_enum_decl) {
1451 : 0 : const clang::EnumDecl *enum_decl = reinterpret_cast<const clang::EnumDecl *>(zig_enum_decl);
1452 : 0 : const clang::EnumDecl *definition = enum_decl->getDefinition();
1453 : 0 : return reinterpret_cast<const ZigClangEnumDecl *>(definition);
1454 : : }
1455 : :
1456 : 0 : bool ZigClangRecordDecl_isUnion(const ZigClangRecordDecl *record_decl) {
1457 : 0 : return reinterpret_cast<const clang::RecordDecl*>(record_decl)->isUnion();
1458 : : }
1459 : :
1460 : 0 : bool ZigClangRecordDecl_isStruct(const ZigClangRecordDecl *record_decl) {
1461 : 0 : return reinterpret_cast<const clang::RecordDecl*>(record_decl)->isStruct();
1462 : : }
1463 : :
1464 : 0 : bool ZigClangRecordDecl_isAnonymousStructOrUnion(const ZigClangRecordDecl *record_decl) {
1465 : 0 : return reinterpret_cast<const clang::RecordDecl*>(record_decl)->isAnonymousStructOrUnion();
1466 : : }
1467 : :
1468 : 0 : const char *ZigClangDecl_getName_bytes_begin(const ZigClangDecl *zig_decl) {
1469 : 0 : const clang::Decl *decl = reinterpret_cast<const clang::Decl *>(zig_decl);
1470 : 0 : const clang::NamedDecl *named_decl = static_cast<const clang::NamedDecl *>(decl);
1471 : 0 : return (const char *)named_decl->getName().bytes_begin();
1472 : : }
1473 : :
1474 : 0 : ZigClangDeclKind ZigClangDecl_getKind(const struct ZigClangDecl *self) {
1475 : 0 : auto casted = reinterpret_cast<const clang::Decl *>(self);
1476 : 0 : return (ZigClangDeclKind)casted->getKind();
1477 : : }
1478 : :
1479 : 0 : const char *ZigClangDecl_getDeclKindName(const struct ZigClangDecl *self) {
1480 : 0 : auto casted = reinterpret_cast<const clang::Decl *>(self);
1481 : 0 : return casted->getDeclKindName();
1482 : : }
1483 : :
1484 : 0 : ZigClangSourceLocation ZigClangRecordDecl_getLocation(const ZigClangRecordDecl *zig_record_decl) {
1485 : 0 : const clang::RecordDecl *record_decl = reinterpret_cast<const clang::RecordDecl *>(zig_record_decl);
1486 : 0 : return bitcast(record_decl->getLocation());
1487 : : }
1488 : :
1489 : 0 : ZigClangSourceLocation ZigClangEnumDecl_getLocation(const ZigClangEnumDecl *self) {
1490 : 0 : auto casted = reinterpret_cast<const clang::EnumDecl *>(self);
1491 : 0 : return bitcast(casted->getLocation());
1492 : : }
1493 : :
1494 : 0 : ZigClangSourceLocation ZigClangTypedefNameDecl_getLocation(const ZigClangTypedefNameDecl *self) {
1495 : 0 : auto casted = reinterpret_cast<const clang::TypedefNameDecl *>(self);
1496 : 0 : return bitcast(casted->getLocation());
1497 : : }
1498 : :
1499 : 0 : ZigClangSourceLocation ZigClangDecl_getLocation(const ZigClangDecl *self) {
1500 : 0 : auto casted = reinterpret_cast<const clang::Decl *>(self);
1501 : 0 : return bitcast(casted->getLocation());
1502 : : }
1503 : :
1504 : 0 : bool ZigClangSourceLocation_eq(ZigClangSourceLocation zig_a, ZigClangSourceLocation zig_b) {
1505 : 0 : clang::SourceLocation a = bitcast(zig_a);
1506 : 0 : clang::SourceLocation b = bitcast(zig_b);
1507 : 0 : return a == b;
1508 : : }
1509 : :
1510 : 0 : ZigClangQualType ZigClangEnumDecl_getIntegerType(const ZigClangEnumDecl *self) {
1511 : 0 : return bitcast(reinterpret_cast<const clang::EnumDecl *>(self)->getIntegerType());
1512 : : }
1513 : :
1514 : 0 : struct ZigClangQualType ZigClangFunctionDecl_getType(const struct ZigClangFunctionDecl *self) {
1515 : 0 : auto casted = reinterpret_cast<const clang::FunctionDecl *>(self);
1516 : 0 : return bitcast(casted->getType());
1517 : : }
1518 : :
1519 : 0 : struct ZigClangSourceLocation ZigClangFunctionDecl_getLocation(const struct ZigClangFunctionDecl *self) {
1520 : 0 : auto casted = reinterpret_cast<const clang::FunctionDecl *>(self);
1521 : 0 : return bitcast(casted->getLocation());
1522 : : }
1523 : :
1524 : 0 : bool ZigClangFunctionDecl_hasBody(const struct ZigClangFunctionDecl *self) {
1525 : 0 : auto casted = reinterpret_cast<const clang::FunctionDecl *>(self);
1526 : 0 : return casted->hasBody();
1527 : : }
1528 : :
1529 : 0 : enum ZigClangStorageClass ZigClangFunctionDecl_getStorageClass(const struct ZigClangFunctionDecl *self) {
1530 : 0 : auto casted = reinterpret_cast<const clang::FunctionDecl *>(self);
1531 : 0 : return (ZigClangStorageClass)casted->getStorageClass();
1532 : : }
1533 : :
1534 : 0 : const struct ZigClangParmVarDecl *ZigClangFunctionDecl_getParamDecl(const struct ZigClangFunctionDecl *self,
1535 : : unsigned i)
1536 : : {
1537 : 0 : auto casted = reinterpret_cast<const clang::FunctionDecl *>(self);
1538 : 0 : const clang::ParmVarDecl *parm_var_decl = casted->getParamDecl(i);
1539 : 0 : return reinterpret_cast<const ZigClangParmVarDecl *>(parm_var_decl);
1540 : : }
1541 : :
1542 : 0 : const struct ZigClangStmt *ZigClangFunctionDecl_getBody(const struct ZigClangFunctionDecl *self) {
1543 : 0 : auto casted = reinterpret_cast<const clang::FunctionDecl *>(self);
1544 : 0 : const clang::Stmt *stmt = casted->getBody();
1545 : 0 : return reinterpret_cast<const ZigClangStmt *>(stmt);
1546 : : }
1547 : :
1548 : 0 : const ZigClangTypedefNameDecl *ZigClangTypedefType_getDecl(const ZigClangTypedefType *self) {
1549 : 0 : auto casted = reinterpret_cast<const clang::TypedefType *>(self);
1550 : 0 : const clang::TypedefNameDecl *name_decl = casted->getDecl();
1551 : 0 : return reinterpret_cast<const ZigClangTypedefNameDecl *>(name_decl);
1552 : : }
1553 : :
1554 : 0 : ZigClangQualType ZigClangTypedefNameDecl_getUnderlyingType(const ZigClangTypedefNameDecl *self) {
1555 : 0 : auto casted = reinterpret_cast<const clang::TypedefNameDecl *>(self);
1556 : 0 : clang::QualType ty = casted->getUnderlyingType();
1557 : 0 : return bitcast(ty);
1558 : : }
1559 : :
1560 : 0 : ZigClangQualType ZigClangQualType_getCanonicalType(ZigClangQualType self) {
1561 : 0 : clang::QualType qt = bitcast(self);
1562 : 0 : return bitcast(qt.getCanonicalType());
1563 : : }
1564 : :
1565 : 0 : const ZigClangType *ZigClangQualType_getTypePtr(ZigClangQualType self) {
1566 : 0 : clang::QualType qt = bitcast(self);
1567 : 0 : const clang::Type *ty = qt.getTypePtr();
1568 : 0 : return reinterpret_cast<const ZigClangType *>(ty);
1569 : : }
1570 : :
1571 : 0 : ZigClangTypeClass ZigClangQualType_getTypeClass(ZigClangQualType self) {
1572 : 0 : clang::QualType ty = bitcast(self);
1573 : 0 : return (ZigClangTypeClass)(ty->getTypeClass());
1574 : : }
1575 : :
1576 : 0 : void ZigClangQualType_addConst(ZigClangQualType *self) {
1577 : 0 : reinterpret_cast<clang::QualType *>(self)->addConst();
1578 : 0 : }
1579 : :
1580 : 0 : bool ZigClangQualType_eq(ZigClangQualType zig_t1, ZigClangQualType zig_t2) {
1581 : 0 : clang::QualType t1 = bitcast(zig_t1);
1582 : 0 : clang::QualType t2 = bitcast(zig_t2);
1583 [ # # ]: 0 : if (t1.isConstQualified() != t2.isConstQualified()) {
1584 : 0 : return false;
1585 : : }
1586 [ # # ]: 0 : if (t1.isVolatileQualified() != t2.isVolatileQualified()) {
1587 : 0 : return false;
1588 : : }
1589 [ # # ]: 0 : if (t1.isRestrictQualified() != t2.isRestrictQualified()) {
1590 : 0 : return false;
1591 : : }
1592 : 0 : return t1.getTypePtr() == t2.getTypePtr();
1593 : : }
1594 : :
1595 : 0 : bool ZigClangQualType_isConstQualified(ZigClangQualType self) {
1596 : 0 : clang::QualType qt = bitcast(self);
1597 : 0 : return qt.isConstQualified();
1598 : : }
1599 : :
1600 : 0 : bool ZigClangQualType_isVolatileQualified(ZigClangQualType self) {
1601 : 0 : clang::QualType qt = bitcast(self);
1602 : 0 : return qt.isVolatileQualified();
1603 : : }
1604 : :
1605 : 0 : bool ZigClangQualType_isRestrictQualified(ZigClangQualType self) {
1606 : 0 : clang::QualType qt = bitcast(self);
1607 : 0 : return qt.isRestrictQualified();
1608 : : }
1609 : :
1610 : 0 : ZigClangTypeClass ZigClangType_getTypeClass(const ZigClangType *self) {
1611 : 0 : auto casted = reinterpret_cast<const clang::Type *>(self);
1612 : 0 : clang::Type::TypeClass tc = casted->getTypeClass();
1613 : 0 : return (ZigClangTypeClass)tc;
1614 : : }
1615 : :
1616 : 0 : ZigClangQualType ZigClangType_getPointeeType(const ZigClangType *self) {
1617 : 0 : auto casted = reinterpret_cast<const clang::Type *>(self);
1618 : 0 : return bitcast(casted->getPointeeType());
1619 : : }
1620 : :
1621 : 0 : bool ZigClangType_isVoidType(const ZigClangType *self) {
1622 : 0 : auto casted = reinterpret_cast<const clang::Type *>(self);
1623 : 0 : return casted->isVoidType();
1624 : : }
1625 : :
1626 : 0 : const char *ZigClangType_getTypeClassName(const ZigClangType *self) {
1627 : 0 : auto casted = reinterpret_cast<const clang::Type *>(self);
1628 : 0 : return casted->getTypeClassName();
1629 : : }
1630 : :
1631 : 0 : ZigClangSourceLocation ZigClangStmt_getBeginLoc(const ZigClangStmt *self) {
1632 : 0 : auto casted = reinterpret_cast<const clang::Stmt *>(self);
1633 : 0 : return bitcast(casted->getBeginLoc());
1634 : : }
1635 : :
1636 : 0 : bool ZigClangStmt_classof_Expr(const ZigClangStmt *self) {
1637 : 0 : auto casted = reinterpret_cast<const clang::Stmt *>(self);
1638 : 0 : return clang::Expr::classof(casted);
1639 : : }
1640 : :
1641 : 0 : ZigClangStmtClass ZigClangStmt_getStmtClass(const ZigClangStmt *self) {
1642 : 0 : auto casted = reinterpret_cast<const clang::Stmt *>(self);
1643 : 0 : return (ZigClangStmtClass)casted->getStmtClass();
1644 : : }
1645 : :
1646 : 0 : ZigClangStmtClass ZigClangExpr_getStmtClass(const ZigClangExpr *self) {
1647 : 0 : auto casted = reinterpret_cast<const clang::Expr *>(self);
1648 : 0 : return (ZigClangStmtClass)casted->getStmtClass();
1649 : : }
1650 : :
1651 : 0 : ZigClangQualType ZigClangExpr_getType(const ZigClangExpr *self) {
1652 : 0 : auto casted = reinterpret_cast<const clang::Expr *>(self);
1653 : 0 : return bitcast(casted->getType());
1654 : : }
1655 : :
1656 : 0 : ZigClangSourceLocation ZigClangExpr_getBeginLoc(const ZigClangExpr *self) {
1657 : 0 : auto casted = reinterpret_cast<const clang::Expr *>(self);
1658 : 0 : return bitcast(casted->getBeginLoc());
1659 : : }
1660 : :
1661 : 0 : ZigClangAPValueKind ZigClangAPValue_getKind(const ZigClangAPValue *self) {
1662 : 0 : auto casted = reinterpret_cast<const clang::APValue *>(self);
1663 : 0 : return (ZigClangAPValueKind)casted->getKind();
1664 : : }
1665 : :
1666 : 0 : const ZigClangAPSInt *ZigClangAPValue_getInt(const ZigClangAPValue *self) {
1667 : 0 : auto casted = reinterpret_cast<const clang::APValue *>(self);
1668 : 0 : const llvm::APSInt *result = &casted->getInt();
1669 : 0 : return reinterpret_cast<const ZigClangAPSInt *>(result);
1670 : : }
1671 : :
1672 : 0 : unsigned ZigClangAPValue_getArrayInitializedElts(const ZigClangAPValue *self) {
1673 : 0 : auto casted = reinterpret_cast<const clang::APValue *>(self);
1674 : 0 : return casted->getArrayInitializedElts();
1675 : : }
1676 : :
1677 : 0 : const ZigClangAPValue *ZigClangAPValue_getArrayInitializedElt(const ZigClangAPValue *self, unsigned i) {
1678 : 0 : auto casted = reinterpret_cast<const clang::APValue *>(self);
1679 : 0 : const clang::APValue *result = &casted->getArrayInitializedElt(i);
1680 : 0 : return reinterpret_cast<const ZigClangAPValue *>(result);
1681 : : }
1682 : :
1683 : 0 : const ZigClangAPValue *ZigClangAPValue_getArrayFiller(const ZigClangAPValue *self) {
1684 : 0 : auto casted = reinterpret_cast<const clang::APValue *>(self);
1685 : 0 : const clang::APValue *result = &casted->getArrayFiller();
1686 : 0 : return reinterpret_cast<const ZigClangAPValue *>(result);
1687 : : }
1688 : :
1689 : 0 : unsigned ZigClangAPValue_getArraySize(const ZigClangAPValue *self) {
1690 : 0 : auto casted = reinterpret_cast<const clang::APValue *>(self);
1691 : 0 : return casted->getArraySize();
1692 : : }
1693 : :
1694 : 0 : const ZigClangAPSInt *ZigClangAPSInt_negate(const ZigClangAPSInt *self) {
1695 : 0 : auto casted = reinterpret_cast<const llvm::APSInt *>(self);
1696 : 0 : llvm::APSInt *result = new llvm::APSInt();
1697 : 0 : *result = *casted;
1698 : 0 : *result = -*result;
1699 : 0 : return reinterpret_cast<const ZigClangAPSInt *>(result);
1700 : : }
1701 : :
1702 : 0 : void ZigClangAPSInt_free(const ZigClangAPSInt *self) {
1703 : 0 : auto casted = reinterpret_cast<const llvm::APSInt *>(self);
1704 [ # # ]: 0 : delete casted;
1705 : 0 : }
1706 : :
1707 : 0 : bool ZigClangAPSInt_isSigned(const ZigClangAPSInt *self) {
1708 : 0 : auto casted = reinterpret_cast<const llvm::APSInt *>(self);
1709 : 0 : return casted->isSigned();
1710 : : }
1711 : :
1712 : 0 : bool ZigClangAPSInt_isNegative(const ZigClangAPSInt *self) {
1713 : 0 : auto casted = reinterpret_cast<const llvm::APSInt *>(self);
1714 : 0 : return casted->isNegative();
1715 : : }
1716 : :
1717 : 0 : const uint64_t *ZigClangAPSInt_getRawData(const ZigClangAPSInt *self) {
1718 : 0 : auto casted = reinterpret_cast<const llvm::APSInt *>(self);
1719 : 0 : return casted->getRawData();
1720 : : }
1721 : :
1722 : 0 : unsigned ZigClangAPSInt_getNumWords(const ZigClangAPSInt *self) {
1723 : 0 : auto casted = reinterpret_cast<const llvm::APSInt *>(self);
1724 : 0 : return casted->getNumWords();
1725 : : }
1726 : :
1727 : 0 : const ZigClangExpr *ZigClangAPValueLValueBase_dyn_cast_Expr(ZigClangAPValueLValueBase self) {
1728 : 0 : clang::APValue::LValueBase casted = bitcast(self);
1729 : 0 : const clang::Expr *expr = casted.dyn_cast<const clang::Expr *>();
1730 : 0 : return reinterpret_cast<const ZigClangExpr *>(expr);
1731 : : }
1732 : :
1733 : 0 : ZigClangAPValueLValueBase ZigClangAPValue_getLValueBase(const ZigClangAPValue *self) {
1734 : 0 : auto casted = reinterpret_cast<const clang::APValue *>(self);
1735 : 0 : clang::APValue::LValueBase lval_base = casted->getLValueBase();
1736 : 0 : return bitcast(lval_base);
1737 : : }
1738 : :
1739 : 0 : ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char **args_end,
1740 : : struct Stage2ErrorMsg **errors_ptr, size_t *errors_len, const char *resources_path)
1741 : : {
1742 : 0 : clang::IntrusiveRefCntPtr<clang::DiagnosticsEngine> diags(clang::CompilerInstance::createDiagnostics(new clang::DiagnosticOptions));
1743 : :
1744 : 0 : std::shared_ptr<clang::PCHContainerOperations> pch_container_ops = std::make_shared<clang::PCHContainerOperations>();
1745 : :
1746 : 0 : bool only_local_decls = true;
1747 : 0 : bool capture_diagnostics = true;
1748 : 0 : bool user_files_are_volatile = true;
1749 : 0 : bool allow_pch_with_compiler_errors = false;
1750 : 0 : bool single_file_parse = false;
1751 : 0 : bool for_serialization = false;
1752 : 0 : std::unique_ptr<clang::ASTUnit> *err_unit = new std::unique_ptr<clang::ASTUnit>();
1753 : 0 : clang::ASTUnit *ast_unit = clang::ASTUnit::LoadFromCommandLine(
1754 : : args_begin, args_end,
1755 : : pch_container_ops, diags, resources_path,
1756 : : only_local_decls, capture_diagnostics, clang::None, true, 0, clang::TU_Complete,
1757 : : false, false, allow_pch_with_compiler_errors, clang::SkipFunctionBodiesScope::None,
1758 : : single_file_parse, user_files_are_volatile, for_serialization, clang::None, err_unit,
1759 : 0 : nullptr);
1760 : :
1761 : : // Early failures in LoadFromCommandLine may return with ErrUnit unset.
1762 [ # # ][ # # ]: 0 : if (!ast_unit && !err_unit) {
1763 : 0 : return nullptr;
1764 : : }
1765 : :
1766 [ # # ]: 0 : if (diags->getClient()->getNumErrors() > 0) {
1767 [ # # ]: 0 : if (ast_unit) {
1768 : 0 : *err_unit = std::unique_ptr<clang::ASTUnit>(ast_unit);
1769 : : }
1770 : :
1771 : 0 : size_t cap = 4;
1772 : 0 : *errors_len = 0;
1773 : 0 : *errors_ptr = reinterpret_cast<Stage2ErrorMsg*>(malloc(cap * sizeof(Stage2ErrorMsg)));
1774 [ # # ]: 0 : if (*errors_ptr == nullptr) {
1775 : 0 : return nullptr;
1776 : : }
1777 : :
1778 : 0 : for (clang::ASTUnit::stored_diag_iterator it = (*err_unit)->stored_diag_begin(),
1779 : 0 : it_end = (*err_unit)->stored_diag_end();
1780 [ # # ]: 0 : it != it_end; ++it)
1781 : : {
1782 [ # # # ]: 0 : switch (it->getLevel()) {
1783 : 0 : case clang::DiagnosticsEngine::Ignored:
1784 : : case clang::DiagnosticsEngine::Note:
1785 : : case clang::DiagnosticsEngine::Remark:
1786 : : case clang::DiagnosticsEngine::Warning:
1787 : 0 : continue;
1788 : 0 : case clang::DiagnosticsEngine::Error:
1789 : : case clang::DiagnosticsEngine::Fatal:
1790 : 0 : break;
1791 : : }
1792 : 0 : llvm::StringRef msg_str_ref = it->getMessage();
1793 [ # # ]: 0 : if (*errors_len >= cap) {
1794 : 0 : cap *= 2;
1795 : : Stage2ErrorMsg *new_errors = reinterpret_cast<Stage2ErrorMsg *>(
1796 : 0 : realloc(*errors_ptr, cap * sizeof(Stage2ErrorMsg)));
1797 [ # # ]: 0 : if (new_errors == nullptr) {
1798 : 0 : free(*errors_ptr);
1799 : 0 : *errors_ptr = nullptr;
1800 : 0 : *errors_len = 0;
1801 : 0 : return nullptr;
1802 : : }
1803 : 0 : *errors_ptr = new_errors;
1804 : : }
1805 : 0 : Stage2ErrorMsg *msg = *errors_ptr + *errors_len;
1806 : 0 : *errors_len += 1;
1807 : 0 : msg->msg_ptr = (const char *)msg_str_ref.bytes_begin();
1808 : 0 : msg->msg_len = msg_str_ref.size();
1809 : :
1810 : 0 : clang::FullSourceLoc fsl = it->getLocation();
1811 [ # # ]: 0 : if (fsl.hasManager()) {
1812 : 0 : clang::FileID file_id = fsl.getFileID();
1813 : 0 : clang::StringRef filename = fsl.getManager().getFilename(fsl);
1814 [ # # ]: 0 : if (filename.empty()) {
1815 : 0 : msg->filename_ptr = nullptr;
1816 : : } else {
1817 : 0 : msg->filename_ptr = (const char *)filename.bytes_begin();
1818 : 0 : msg->filename_len = filename.size();
1819 : : }
1820 : 0 : msg->source = (const char *)fsl.getManager().getBufferData(file_id).bytes_begin();
1821 : 0 : msg->line = fsl.getSpellingLineNumber() - 1;
1822 : 0 : msg->column = fsl.getSpellingColumnNumber() - 1;
1823 : 0 : msg->offset = fsl.getManager().getFileOffset(fsl);
1824 : : } else {
1825 : : // The only known way this gets triggered right now is if you have a lot of errors
1826 : : // clang emits "too many errors emitted, stopping now"
1827 : 0 : msg->filename_ptr = nullptr;
1828 : 0 : msg->source = nullptr;
1829 : : }
1830 : : }
1831 : :
1832 [ # # ]: 0 : if (*errors_len == 0) {
1833 : 0 : free(*errors_ptr);
1834 : 0 : *errors_ptr = nullptr;
1835 : : }
1836 : :
1837 : 0 : return nullptr;
1838 : : }
1839 : :
1840 : 0 : return reinterpret_cast<ZigClangASTUnit *>(ast_unit);
1841 : : }
1842 : :
1843 : 0 : void ZigClangErrorMsg_delete(Stage2ErrorMsg *ptr, size_t len) {
1844 : 0 : free(ptr);
1845 : 0 : }
1846 : :
1847 : 0 : void ZigClangASTUnit_delete(struct ZigClangASTUnit *self) {
1848 [ # # ]: 0 : delete reinterpret_cast<clang::ASTUnit *>(self);
1849 : 0 : }
1850 : :
1851 : 0 : struct ZigClangQualType ZigClangVarDecl_getType(const struct ZigClangVarDecl *self) {
1852 : 0 : auto casted = reinterpret_cast<const clang::VarDecl *>(self);
1853 : 0 : return bitcast(casted->getType());
1854 : : }
1855 : :
1856 : 0 : const struct ZigClangExpr *ZigClangVarDecl_getInit(const struct ZigClangVarDecl *self) {
1857 : 0 : auto casted = reinterpret_cast<const clang::VarDecl *>(self);
1858 : 0 : return reinterpret_cast<const ZigClangExpr *>(casted->getInit());
1859 : : }
1860 : :
1861 : 0 : enum ZigClangVarDecl_TLSKind ZigClangVarDecl_getTLSKind(const ZigClangVarDecl *self) {
1862 : 0 : auto casted = reinterpret_cast<const clang::VarDecl *>(self);
1863 : 0 : return (ZigClangVarDecl_TLSKind)casted->getTLSKind();
1864 : : }
1865 : :
1866 : 0 : enum ZigClangBuiltinTypeKind ZigClangBuiltinType_getKind(const struct ZigClangBuiltinType *self) {
1867 : 0 : auto casted = reinterpret_cast<const clang::BuiltinType *>(self);
1868 : 0 : return (ZigClangBuiltinTypeKind)casted->getKind();
1869 : : }
1870 : :
1871 : 0 : bool ZigClangFunctionType_getNoReturnAttr(const struct ZigClangFunctionType *self) {
1872 : 0 : auto casted = reinterpret_cast<const clang::FunctionType *>(self);
1873 : 0 : return casted->getNoReturnAttr();
1874 : : }
1875 : :
1876 : 0 : enum ZigClangCallingConv ZigClangFunctionType_getCallConv(const struct ZigClangFunctionType *self) {
1877 : 0 : auto casted = reinterpret_cast<const clang::FunctionType *>(self);
1878 : 0 : return (ZigClangCallingConv)casted->getCallConv();
1879 : : }
1880 : :
1881 : 0 : struct ZigClangQualType ZigClangFunctionType_getReturnType(const struct ZigClangFunctionType *self) {
1882 : 0 : auto casted = reinterpret_cast<const clang::FunctionType *>(self);
1883 : 0 : return bitcast(casted->getReturnType());
1884 : : }
1885 : :
1886 : 0 : bool ZigClangFunctionProtoType_isVariadic(const struct ZigClangFunctionProtoType *self) {
1887 : 0 : auto casted = reinterpret_cast<const clang::FunctionProtoType *>(self);
1888 : 0 : return casted->isVariadic();
1889 : : }
1890 : :
1891 : 0 : unsigned ZigClangFunctionProtoType_getNumParams(const struct ZigClangFunctionProtoType *self) {
1892 : 0 : auto casted = reinterpret_cast<const clang::FunctionProtoType *>(self);
1893 : 0 : return casted->getNumParams();
1894 : : }
1895 : :
1896 : 0 : struct ZigClangQualType ZigClangFunctionProtoType_getParamType(const struct ZigClangFunctionProtoType *self,
1897 : : unsigned index)
1898 : : {
1899 : 0 : auto casted = reinterpret_cast<const clang::FunctionProtoType *>(self);
1900 : 0 : return bitcast(casted->getParamType(index));
1901 : : }
1902 : :
1903 : 0 : ZigClangCompoundStmt_const_body_iterator ZigClangCompoundStmt_body_begin(const struct ZigClangCompoundStmt *self) {
1904 : 0 : auto casted = reinterpret_cast<const clang::CompoundStmt *>(self);
1905 : 0 : return bitcast(casted->body_begin());
1906 : : }
1907 : :
1908 : 0 : ZigClangCompoundStmt_const_body_iterator ZigClangCompoundStmt_body_end(const struct ZigClangCompoundStmt *self) {
1909 : 0 : auto casted = reinterpret_cast<const clang::CompoundStmt *>(self);
1910 : 0 : return bitcast(casted->body_end());
1911 : : }
1912 : :
1913 : 0 : ZigClangDeclStmt_const_decl_iterator ZigClangDeclStmt_decl_begin(const struct ZigClangDeclStmt *self) {
1914 : 0 : auto casted = reinterpret_cast<const clang::DeclStmt *>(self);
1915 : 0 : return bitcast(casted->decl_begin());
1916 : : }
1917 : :
1918 : 0 : ZigClangDeclStmt_const_decl_iterator ZigClangDeclStmt_decl_end(const struct ZigClangDeclStmt *self) {
1919 : 0 : auto casted = reinterpret_cast<const clang::DeclStmt *>(self);
1920 : 0 : return bitcast(casted->decl_end());
1921 : : }
1922 : :
1923 : 0 : unsigned ZigClangAPFloat_convertToHexString(const ZigClangAPFloat *self, char *DST,
1924 : : unsigned HexDigits, bool UpperCase, enum ZigClangAPFloat_roundingMode RM)
1925 : : {
1926 : 0 : auto casted = reinterpret_cast<const llvm::APFloat *>(self);
1927 : 0 : return casted->convertToHexString(DST, HexDigits, UpperCase, (llvm::APFloat::roundingMode)RM);
1928 : : }
1929 : :
1930 : 0 : enum ZigClangStringLiteral_StringKind ZigClangStringLiteral_getKind(const struct ZigClangStringLiteral *self) {
1931 : 0 : auto casted = reinterpret_cast<const clang::StringLiteral *>(self);
1932 : 0 : return (ZigClangStringLiteral_StringKind)casted->getKind();
1933 : : }
1934 : :
1935 : 0 : const char *ZigClangStringLiteral_getString_bytes_begin_size(const struct ZigClangStringLiteral *self, size_t *len) {
1936 : 0 : auto casted = reinterpret_cast<const clang::StringLiteral *>(self);
1937 : 0 : llvm::StringRef str_ref = casted->getString();
1938 : 0 : *len = str_ref.size();
1939 : 0 : return (const char *)str_ref.bytes_begin();
1940 : : }
1941 : :
1942 : 0 : const struct ZigClangStringLiteral *ZigClangPredefinedExpr_getFunctionName(
1943 : : const struct ZigClangPredefinedExpr *self)
1944 : : {
1945 : 0 : auto casted = reinterpret_cast<const clang::PredefinedExpr *>(self);
1946 : 0 : const clang::StringLiteral *result = casted->getFunctionName();
1947 : 0 : return reinterpret_cast<const struct ZigClangStringLiteral *>(result);
1948 : : }
1949 : :
1950 : 0 : ZigClangSourceLocation ZigClangImplicitCastExpr_getBeginLoc(const struct ZigClangImplicitCastExpr *self) {
1951 : 0 : auto casted = reinterpret_cast<const clang::ImplicitCastExpr *>(self);
1952 : 0 : return bitcast(casted->getBeginLoc());
1953 : : }
1954 : :
1955 : 0 : enum ZigClangCK ZigClangImplicitCastExpr_getCastKind(const struct ZigClangImplicitCastExpr *self) {
1956 : 0 : auto casted = reinterpret_cast<const clang::ImplicitCastExpr *>(self);
1957 : 0 : return (ZigClangCK)casted->getCastKind();
1958 : : }
1959 : :
1960 : 0 : const struct ZigClangExpr *ZigClangImplicitCastExpr_getSubExpr(const struct ZigClangImplicitCastExpr *self) {
1961 : 0 : auto casted = reinterpret_cast<const clang::ImplicitCastExpr *>(self);
1962 : 0 : return reinterpret_cast<const struct ZigClangExpr *>(casted->getSubExpr());
1963 : : }
1964 : :
1965 : 0 : struct ZigClangQualType ZigClangArrayType_getElementType(const struct ZigClangArrayType *self) {
1966 : 0 : auto casted = reinterpret_cast<const clang::ArrayType *>(self);
1967 : 0 : return bitcast(casted->getElementType());
1968 : : }
1969 : :
1970 : 0 : const struct ZigClangValueDecl *ZigClangDeclRefExpr_getDecl(const struct ZigClangDeclRefExpr *self) {
1971 : 0 : auto casted = reinterpret_cast<const clang::DeclRefExpr *>(self);
1972 : 0 : return reinterpret_cast<const struct ZigClangValueDecl *>(casted->getDecl());
1973 : : }
1974 : :
1975 : 0 : struct ZigClangQualType ZigClangParenType_getInnerType(const struct ZigClangParenType *self) {
1976 : 0 : auto casted = reinterpret_cast<const clang::ParenType *>(self);
1977 : 0 : return bitcast(casted->getInnerType());
1978 : : }
1979 : :
1980 : 0 : struct ZigClangQualType ZigClangAttributedType_getEquivalentType(const struct ZigClangAttributedType *self) {
1981 : 0 : auto casted = reinterpret_cast<const clang::AttributedType *>(self);
1982 : 0 : return bitcast(casted->getEquivalentType());
1983 : : }
1984 : :
1985 : 0 : struct ZigClangQualType ZigClangElaboratedType_getNamedType(const struct ZigClangElaboratedType *self) {
1986 : 0 : auto casted = reinterpret_cast<const clang::ElaboratedType *>(self);
1987 : 0 : return bitcast(casted->getNamedType());
1988 : : }
1989 : :
1990 : 0 : struct ZigClangSourceLocation ZigClangCStyleCastExpr_getBeginLoc(const struct ZigClangCStyleCastExpr *self) {
1991 : 0 : auto casted = reinterpret_cast<const clang::CStyleCastExpr *>(self);
1992 : 0 : return bitcast(casted->getBeginLoc());
1993 : : }
1994 : :
1995 : 0 : const struct ZigClangExpr *ZigClangCStyleCastExpr_getSubExpr(const struct ZigClangCStyleCastExpr *self) {
1996 : 0 : auto casted = reinterpret_cast<const clang::CStyleCastExpr *>(self);
1997 : 0 : return reinterpret_cast<const struct ZigClangExpr *>(casted->getSubExpr());
1998 : : }
1999 : :
2000 : 0 : struct ZigClangQualType ZigClangCStyleCastExpr_getType(const struct ZigClangCStyleCastExpr *self) {
2001 : 0 : auto casted = reinterpret_cast<const clang::CStyleCastExpr *>(self);
2002 : 0 : return bitcast(casted->getType());
2003 : : }
2004 : :
2005 : 0 : bool ZigClangIntegerLiteral_EvaluateAsInt(const struct ZigClangIntegerLiteral *self, struct ZigClangExprEvalResult *result, const struct ZigClangASTContext *ctx) {
2006 : 0 : auto casted_self = reinterpret_cast<const clang::IntegerLiteral *>(self);
2007 : 0 : auto casted_ctx = reinterpret_cast<const clang::ASTContext *>(ctx);
2008 : 0 : clang::Expr::EvalResult eval_result;
2009 [ # # ]: 0 : if (!casted_self->EvaluateAsInt(eval_result, *casted_ctx)) {
2010 : 0 : return false;
2011 : : }
2012 : 0 : *result = bitcast(eval_result);
2013 : 0 : return true;
2014 : : }
2015 : :
2016 : 0 : struct ZigClangSourceLocation ZigClangIntegerLiteral_getBeginLoc(const struct ZigClangIntegerLiteral *self) {
2017 : 0 : auto casted = reinterpret_cast<const clang::IntegerLiteral *>(self);
2018 : 0 : return bitcast(casted->getBeginLoc());
2019 : : }
2020 : :
2021 : 0 : const struct ZigClangExpr *ZigClangReturnStmt_getRetValue(const struct ZigClangReturnStmt *self) {
2022 : 0 : auto casted = reinterpret_cast<const clang::ReturnStmt *>(self);
2023 : 0 : return reinterpret_cast<const struct ZigClangExpr *>(casted->getRetValue());
2024 : : }
2025 : :
2026 : 0 : enum ZigClangBO ZigClangBinaryOperator_getOpcode(const struct ZigClangBinaryOperator *self) {
2027 : 0 : auto casted = reinterpret_cast<const clang::BinaryOperator *>(self);
2028 : 0 : return (ZigClangBO)casted->getOpcode();
2029 : : }
2030 : :
2031 : 0 : struct ZigClangSourceLocation ZigClangBinaryOperator_getBeginLoc(const struct ZigClangBinaryOperator *self) {
2032 : 0 : auto casted = reinterpret_cast<const clang::BinaryOperator *>(self);
2033 : 0 : return bitcast(casted->getBeginLoc());
2034 : : }
2035 : :
2036 : 0 : const struct ZigClangExpr *ZigClangBinaryOperator_getLHS(const struct ZigClangBinaryOperator *self) {
2037 : 0 : auto casted = reinterpret_cast<const clang::BinaryOperator *>(self);
2038 : 0 : return reinterpret_cast<const struct ZigClangExpr *>(casted->getLHS());
2039 : : }
2040 : :
2041 : 0 : const struct ZigClangExpr *ZigClangBinaryOperator_getRHS(const struct ZigClangBinaryOperator *self) {
2042 : 0 : auto casted = reinterpret_cast<const clang::BinaryOperator *>(self);
2043 : 0 : return reinterpret_cast<const struct ZigClangExpr *>(casted->getRHS());
2044 : : }
2045 : :
2046 : 0 : struct ZigClangQualType ZigClangBinaryOperator_getType(const struct ZigClangBinaryOperator *self) {
2047 : 0 : auto casted = reinterpret_cast<const clang::BinaryOperator *>(self);
2048 : 0 : return bitcast(casted->getType());
2049 : : }
|