authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-05-09 16:52:30-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-05-09 16:52:30-04:00
logeea2de108d686e36996ff698feec4c0c6574cb15
tree238da60d56e039179a277d90cbc5344ef172db6a
parent214625587c66f07f2dd54670258143637058f490
signaturelock-open Commit is signed but in an unrecognized format.

translate-c: progress on self-hosted function prototypes

See #1964

5 files changed, 730 insertions(+), 766 deletions(-)

src-self-hosted/clang.zig+525-740
...@@ -69,742 +69,388 @@ pub const struct_ZigClangUnaryOperator = @OpaqueType();...@@ -69,742 +69,388 @@ pub const struct_ZigClangUnaryOperator = @OpaqueType();
69pub const struct_ZigClangValueDecl = @OpaqueType();69pub const struct_ZigClangValueDecl = @OpaqueType();
70pub const struct_ZigClangVarDecl = @OpaqueType();70pub const struct_ZigClangVarDecl = @OpaqueType();
71pub const struct_ZigClangWhileStmt = @OpaqueType();71pub const struct_ZigClangWhileStmt = @OpaqueType();
72pub const ZigClangBO_PtrMemD = enum_ZigClangBO._PtrMemD;72pub const ZigClangFunctionType = @OpaqueType();
73pub const ZigClangBO_PtrMemI = enum_ZigClangBO._PtrMemI;73
74pub const ZigClangBO_Mul = enum_ZigClangBO._Mul;74pub const ZigClangBO = extern enum {
75pub const ZigClangBO_Div = enum_ZigClangBO._Div;75 PtrMemD,
76pub const ZigClangBO_Rem = enum_ZigClangBO._Rem;76 PtrMemI,
77pub const ZigClangBO_Add = enum_ZigClangBO._Add;77 Mul,
78pub const ZigClangBO_Sub = enum_ZigClangBO._Sub;78 Div,
79pub const ZigClangBO_Shl = enum_ZigClangBO._Shl;79 Rem,
80pub const ZigClangBO_Shr = enum_ZigClangBO._Shr;80 Add,
81pub const ZigClangBO_Cmp = enum_ZigClangBO._Cmp;81 Sub,
82pub const ZigClangBO_LT = enum_ZigClangBO._LT;82 Shl,
83pub const ZigClangBO_GT = enum_ZigClangBO._GT;83 Shr,
84pub const ZigClangBO_LE = enum_ZigClangBO._LE;84 Cmp,
85pub const ZigClangBO_GE = enum_ZigClangBO._GE;85 LT,
86pub const ZigClangBO_EQ = enum_ZigClangBO._EQ;86 GT,
87pub const ZigClangBO_NE = enum_ZigClangBO._NE;87 LE,
88pub const ZigClangBO_And = enum_ZigClangBO._And;88 GE,
89pub const ZigClangBO_Xor = enum_ZigClangBO._Xor;89 EQ,
90pub const ZigClangBO_Or = enum_ZigClangBO._Or;90 NE,
91pub const ZigClangBO_LAnd = enum_ZigClangBO._LAnd;91 And,
92pub const ZigClangBO_LOr = enum_ZigClangBO._LOr;92 Xor,
93pub const ZigClangBO_Assign = enum_ZigClangBO._Assign;93 Or,
94pub const ZigClangBO_MulAssign = enum_ZigClangBO._MulAssign;94 LAnd,
95pub const ZigClangBO_DivAssign = enum_ZigClangBO._DivAssign;95 LOr,
96pub const ZigClangBO_RemAssign = enum_ZigClangBO._RemAssign;96 Assign,
97pub const ZigClangBO_AddAssign = enum_ZigClangBO._AddAssign;97 MulAssign,
98pub const ZigClangBO_SubAssign = enum_ZigClangBO._SubAssign;98 DivAssign,
99pub const ZigClangBO_ShlAssign = enum_ZigClangBO._ShlAssign;99 RemAssign,
100pub const ZigClangBO_ShrAssign = enum_ZigClangBO._ShrAssign;100 AddAssign,
101pub const ZigClangBO_AndAssign = enum_ZigClangBO._AndAssign;101 SubAssign,
102pub const ZigClangBO_XorAssign = enum_ZigClangBO._XorAssign;102 ShlAssign,
103pub const ZigClangBO_OrAssign = enum_ZigClangBO._OrAssign;103 ShrAssign,
104pub const ZigClangBO_Comma = enum_ZigClangBO._Comma;104 AndAssign,
105pub const enum_ZigClangBO = extern enum {105 XorAssign,
106 _PtrMemD,106 OrAssign,
107 _PtrMemI,107 Comma,
108 _Mul,
109 _Div,
110 _Rem,
111 _Add,
112 _Sub,
113 _Shl,
114 _Shr,
115 _Cmp,
116 _LT,
117 _GT,
118 _LE,
119 _GE,
120 _EQ,
121 _NE,
122 _And,
123 _Xor,
124 _Or,
125 _LAnd,
126 _LOr,
127 _Assign,
128 _MulAssign,
129 _DivAssign,
130 _RemAssign,
131 _AddAssign,
132 _SubAssign,
133 _ShlAssign,
134 _ShrAssign,
135 _AndAssign,
136 _XorAssign,
137 _OrAssign,
138 _Comma,
139};108};
140pub const ZigClangUO_PostInc = enum_ZigClangUO._PostInc;109
141pub const ZigClangUO_PostDec = enum_ZigClangUO._PostDec;110pub const ZigClangUO = extern enum {
142pub const ZigClangUO_PreInc = enum_ZigClangUO._PreInc;111 PostInc,
143pub const ZigClangUO_PreDec = enum_ZigClangUO._PreDec;112 PostDec,
144pub const ZigClangUO_AddrOf = enum_ZigClangUO._AddrOf;113 PreInc,
145pub const ZigClangUO_Deref = enum_ZigClangUO._Deref;114 PreDec,
146pub const ZigClangUO_Plus = enum_ZigClangUO._Plus;115 AddrOf,
147pub const ZigClangUO_Minus = enum_ZigClangUO._Minus;116 Deref,
148pub const ZigClangUO_Not = enum_ZigClangUO._Not;117 Plus,
149pub const ZigClangUO_LNot = enum_ZigClangUO._LNot;118 Minus,
150pub const ZigClangUO_Real = enum_ZigClangUO._Real;119 Not,
151pub const ZigClangUO_Imag = enum_ZigClangUO._Imag;120 LNot,
152pub const ZigClangUO_Extension = enum_ZigClangUO._Extension;121 Real,
153pub const ZigClangUO_Coawait = enum_ZigClangUO._Coawait;122 Imag,
154pub const enum_ZigClangUO = extern enum {123 Extension,
155 _PostInc,124 Coawait,
156 _PostDec,
157 _PreInc,
158 _PreDec,
159 _AddrOf,
160 _Deref,
161 _Plus,
162 _Minus,
163 _Not,
164 _LNot,
165 _Real,
166 _Imag,
167 _Extension,
168 _Coawait,
169};125};
170pub const ZigClangType_Builtin = enum_ZigClangTypeClass.ZigClangType_Builtin;126
171pub const ZigClangType_Complex = enum_ZigClangTypeClass.ZigClangType_Complex;127pub const ZigClangTypeClass = extern enum {
172pub const ZigClangType_Pointer = enum_ZigClangTypeClass.ZigClangType_Pointer;128 Builtin,
173pub const ZigClangType_BlockPointer = enum_ZigClangTypeClass.ZigClangType_BlockPointer;129 Complex,
174pub const ZigClangType_LValueReference = enum_ZigClangTypeClass.ZigClangType_LValueReference;130 Pointer,
175pub const ZigClangType_RValueReference = enum_ZigClangTypeClass.ZigClangType_RValueReference;131 BlockPointer,
176pub const ZigClangType_MemberPointer = enum_ZigClangTypeClass.ZigClangType_MemberPointer;132 LValueReference,
177pub const ZigClangType_ConstantArray = enum_ZigClangTypeClass.ZigClangType_ConstantArray;133 RValueReference,
178pub const ZigClangType_IncompleteArray = enum_ZigClangTypeClass.ZigClangType_IncompleteArray;134 MemberPointer,
179pub const ZigClangType_VariableArray = enum_ZigClangTypeClass.ZigClangType_VariableArray;135 ConstantArray,
180pub const ZigClangType_DependentSizedArray = enum_ZigClangTypeClass.ZigClangType_DependentSizedArray;136 IncompleteArray,
181pub const ZigClangType_DependentSizedExtVector = enum_ZigClangTypeClass.ZigClangType_DependentSizedExtVector;137 VariableArray,
182pub const ZigClangType_DependentAddressSpace = enum_ZigClangTypeClass.ZigClangType_DependentAddressSpace;138 DependentSizedArray,
183pub const ZigClangType_Vector = enum_ZigClangTypeClass.ZigClangType_Vector;139 DependentSizedExtVector,
184pub const ZigClangType_DependentVector = enum_ZigClangTypeClass.ZigClangType_DependentVector;140 DependentAddressSpace,
185pub const ZigClangType_ExtVector = enum_ZigClangTypeClass.ZigClangType_ExtVector;141 Vector,
186pub const ZigClangType_FunctionProto = enum_ZigClangTypeClass.ZigClangType_FunctionProto;142 DependentVector,
187pub const ZigClangType_FunctionNoProto = enum_ZigClangTypeClass.ZigClangType_FunctionNoProto;143 ExtVector,
188pub const ZigClangType_UnresolvedUsing = enum_ZigClangTypeClass.ZigClangType_UnresolvedUsing;144 FunctionProto,
189pub const ZigClangType_Paren = enum_ZigClangTypeClass.ZigClangType_Paren;145 FunctionNoProto,
190pub const ZigClangType_Typedef = enum_ZigClangTypeClass.ZigClangType_Typedef;146 UnresolvedUsing,
191pub const ZigClangType_Adjusted = enum_ZigClangTypeClass.ZigClangType_Adjusted;147 Paren,
192pub const ZigClangType_Decayed = enum_ZigClangTypeClass.ZigClangType_Decayed;148 Typedef,
193pub const ZigClangType_TypeOfExpr = enum_ZigClangTypeClass.ZigClangType_TypeOfExpr;149 Adjusted,
194pub const ZigClangType_TypeOf = enum_ZigClangTypeClass.ZigClangType_TypeOf;150 Decayed,
195pub const ZigClangType_Decltype = enum_ZigClangTypeClass.ZigClangType_Decltype;151 TypeOfExpr,
196pub const ZigClangType_UnaryTransform = enum_ZigClangTypeClass.ZigClangType_UnaryTransform;152 TypeOf,
197pub const ZigClangType_Record = enum_ZigClangTypeClass.ZigClangType_Record;153 Decltype,
198pub const ZigClangType_Enum = enum_ZigClangTypeClass.ZigClangType_Enum;154 UnaryTransform,
199pub const ZigClangType_Elaborated = enum_ZigClangTypeClass.ZigClangType_Elaborated;155 Record,
200pub const ZigClangType_Attributed = enum_ZigClangTypeClass.ZigClangType_Attributed;156 Enum,
201pub const ZigClangType_TemplateTypeParm = enum_ZigClangTypeClass.ZigClangType_TemplateTypeParm;157 Elaborated,
202pub const ZigClangType_SubstTemplateTypeParm = enum_ZigClangTypeClass.ZigClangType_SubstTemplateTypeParm;158 Attributed,
203pub const ZigClangType_SubstTemplateTypeParmPack = enum_ZigClangTypeClass.ZigClangType_SubstTemplateTypeParmPack;159 TemplateTypeParm,
204pub const ZigClangType_TemplateSpecialization = enum_ZigClangTypeClass.ZigClangType_TemplateSpecialization;160 SubstTemplateTypeParm,
205pub const ZigClangType_Auto = enum_ZigClangTypeClass.ZigClangType_Auto;161 SubstTemplateTypeParmPack,
206pub const ZigClangType_DeducedTemplateSpecialization = enum_ZigClangTypeClass.ZigClangType_DeducedTemplateSpecialization;162 TemplateSpecialization,
207pub const ZigClangType_InjectedClassName = enum_ZigClangTypeClass.ZigClangType_InjectedClassName;163 Auto,
208pub const ZigClangType_DependentName = enum_ZigClangTypeClass.ZigClangType_DependentName;164 DeducedTemplateSpecialization,
209pub const ZigClangType_DependentTemplateSpecialization = enum_ZigClangTypeClass.ZigClangType_DependentTemplateSpecialization;165 InjectedClassName,
210pub const ZigClangType_PackExpansion = enum_ZigClangTypeClass.ZigClangType_PackExpansion;166 DependentName,
211pub const ZigClangType_ObjCTypeParam = enum_ZigClangTypeClass.ZigClangType_ObjCTypeParam;167 DependentTemplateSpecialization,
212pub const ZigClangType_ObjCObject = enum_ZigClangTypeClass.ZigClangType_ObjCObject;168 PackExpansion,
213pub const ZigClangType_ObjCInterface = enum_ZigClangTypeClass.ZigClangType_ObjCInterface;169 ObjCTypeParam,
214pub const ZigClangType_ObjCObjectPointer = enum_ZigClangTypeClass.ZigClangType_ObjCObjectPointer;170 ObjCObject,
215pub const ZigClangType_Pipe = enum_ZigClangTypeClass.ZigClangType_Pipe;171 ObjCInterface,
216pub const ZigClangType_Atomic = enum_ZigClangTypeClass.ZigClangType_Atomic;172 ObjCObjectPointer,
217pub const enum_ZigClangTypeClass = extern enum {173 Pipe,
218 ZigClangType_Builtin,174 Atomic,
219 ZigClangType_Complex,
220 ZigClangType_Pointer,
221 ZigClangType_BlockPointer,
222 ZigClangType_LValueReference,
223 ZigClangType_RValueReference,
224 ZigClangType_MemberPointer,
225 ZigClangType_ConstantArray,
226 ZigClangType_IncompleteArray,
227 ZigClangType_VariableArray,
228 ZigClangType_DependentSizedArray,
229 ZigClangType_DependentSizedExtVector,
230 ZigClangType_DependentAddressSpace,
231 ZigClangType_Vector,
232 ZigClangType_DependentVector,
233 ZigClangType_ExtVector,
234 ZigClangType_FunctionProto,
235 ZigClangType_FunctionNoProto,
236 ZigClangType_UnresolvedUsing,
237 ZigClangType_Paren,
238 ZigClangType_Typedef,
239 ZigClangType_Adjusted,
240 ZigClangType_Decayed,
241 ZigClangType_TypeOfExpr,
242 ZigClangType_TypeOf,
243 ZigClangType_Decltype,
244 ZigClangType_UnaryTransform,
245 ZigClangType_Record,
246 ZigClangType_Enum,
247 ZigClangType_Elaborated,
248 ZigClangType_Attributed,
249 ZigClangType_TemplateTypeParm,
250 ZigClangType_SubstTemplateTypeParm,
251 ZigClangType_SubstTemplateTypeParmPack,
252 ZigClangType_TemplateSpecialization,
253 ZigClangType_Auto,
254 ZigClangType_DeducedTemplateSpecialization,
255 ZigClangType_InjectedClassName,
256 ZigClangType_DependentName,
257 ZigClangType_DependentTemplateSpecialization,
258 ZigClangType_PackExpansion,
259 ZigClangType_ObjCTypeParam,
260 ZigClangType_ObjCObject,
261 ZigClangType_ObjCInterface,
262 ZigClangType_ObjCObjectPointer,
263 ZigClangType_Pipe,
264 ZigClangType_Atomic,
265};175};
266pub const ZigClangStmt_NoStmtClass = enum_ZigClangStmtClass.ZigClangStmt_NoStmtClass;176
267pub const ZigClangStmt_GCCAsmStmtClass = enum_ZigClangStmtClass.ZigClangStmt_GCCAsmStmtClass;177pub const ZigClangStmtClass = extern enum {
268pub const ZigClangStmt_MSAsmStmtClass = enum_ZigClangStmtClass.ZigClangStmt_MSAsmStmtClass;178 NoStmtClass = 0,
269pub const ZigClangStmt_AttributedStmtClass = enum_ZigClangStmtClass.ZigClangStmt_AttributedStmtClass;179 GCCAsmStmtClass = 1,
270pub const ZigClangStmt_BreakStmtClass = enum_ZigClangStmtClass.ZigClangStmt_BreakStmtClass;180 MSAsmStmtClass = 2,
271pub const ZigClangStmt_CXXCatchStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CXXCatchStmtClass;181 AttributedStmtClass = 3,
272pub const ZigClangStmt_CXXForRangeStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CXXForRangeStmtClass;182 BreakStmtClass = 4,
273pub const ZigClangStmt_CXXTryStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CXXTryStmtClass;183 CXXCatchStmtClass = 5,
274pub const ZigClangStmt_CapturedStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CapturedStmtClass;184 CXXForRangeStmtClass = 6,
275pub const ZigClangStmt_CompoundStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CompoundStmtClass;185 CXXTryStmtClass = 7,
276pub const ZigClangStmt_ContinueStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ContinueStmtClass;186 CapturedStmtClass = 8,
277pub const ZigClangStmt_CoreturnStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CoreturnStmtClass;187 CompoundStmtClass = 9,
278pub const ZigClangStmt_CoroutineBodyStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CoroutineBodyStmtClass;188 ContinueStmtClass = 10,
279pub const ZigClangStmt_DeclStmtClass = enum_ZigClangStmtClass.ZigClangStmt_DeclStmtClass;189 CoreturnStmtClass = 11,
280pub const ZigClangStmt_DoStmtClass = enum_ZigClangStmtClass.ZigClangStmt_DoStmtClass;190 CoroutineBodyStmtClass = 12,
281pub const ZigClangStmt_BinaryConditionalOperatorClass = enum_ZigClangStmtClass.ZigClangStmt_BinaryConditionalOperatorClass;191 DeclStmtClass = 13,
282pub const ZigClangStmt_ConditionalOperatorClass = enum_ZigClangStmtClass.ZigClangStmt_ConditionalOperatorClass;192 DoStmtClass = 14,
283pub const ZigClangStmt_AddrLabelExprClass = enum_ZigClangStmtClass.ZigClangStmt_AddrLabelExprClass;193 BinaryConditionalOperatorClass = 15,
284pub const ZigClangStmt_ArrayInitIndexExprClass = enum_ZigClangStmtClass.ZigClangStmt_ArrayInitIndexExprClass;194 ConditionalOperatorClass = 16,
285pub const ZigClangStmt_ArrayInitLoopExprClass = enum_ZigClangStmtClass.ZigClangStmt_ArrayInitLoopExprClass;195 AddrLabelExprClass = 17,
286pub const ZigClangStmt_ArraySubscriptExprClass = enum_ZigClangStmtClass.ZigClangStmt_ArraySubscriptExprClass;196 ArrayInitIndexExprClass = 18,
287pub const ZigClangStmt_ArrayTypeTraitExprClass = enum_ZigClangStmtClass.ZigClangStmt_ArrayTypeTraitExprClass;197 ArrayInitLoopExprClass = 19,
288pub const ZigClangStmt_AsTypeExprClass = enum_ZigClangStmtClass.ZigClangStmt_AsTypeExprClass;198 ArraySubscriptExprClass = 20,
289pub const ZigClangStmt_AtomicExprClass = enum_ZigClangStmtClass.ZigClangStmt_AtomicExprClass;199 ArrayTypeTraitExprClass = 21,
290pub const ZigClangStmt_BinaryOperatorClass = enum_ZigClangStmtClass.ZigClangStmt_BinaryOperatorClass;200 AsTypeExprClass = 22,
291pub const ZigClangStmt_CompoundAssignOperatorClass = enum_ZigClangStmtClass.ZigClangStmt_CompoundAssignOperatorClass;201 AtomicExprClass = 23,
292pub const ZigClangStmt_BlockExprClass = enum_ZigClangStmtClass.ZigClangStmt_BlockExprClass;202 BinaryOperatorClass = 24,
293pub const ZigClangStmt_CXXBindTemporaryExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXBindTemporaryExprClass;203 CompoundAssignOperatorClass = 25,
294pub const ZigClangStmt_CXXBoolLiteralExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXBoolLiteralExprClass;204 BlockExprClass = 26,
295pub const ZigClangStmt_CXXConstructExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXConstructExprClass;205 CXXBindTemporaryExprClass = 27,
296pub const ZigClangStmt_CXXTemporaryObjectExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXTemporaryObjectExprClass;206 CXXBoolLiteralExprClass = 28,
297pub const ZigClangStmt_CXXDefaultArgExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXDefaultArgExprClass;207 CXXConstructExprClass = 29,
298pub const ZigClangStmt_CXXDefaultInitExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXDefaultInitExprClass;208 CXXTemporaryObjectExprClass = 30,
299pub const ZigClangStmt_CXXDeleteExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXDeleteExprClass;209 CXXDefaultArgExprClass = 31,
300pub const ZigClangStmt_CXXDependentScopeMemberExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXDependentScopeMemberExprClass;210 CXXDefaultInitExprClass = 32,
301pub const ZigClangStmt_CXXFoldExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXFoldExprClass;211 CXXDeleteExprClass = 33,
302pub const ZigClangStmt_CXXInheritedCtorInitExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXInheritedCtorInitExprClass;212 CXXDependentScopeMemberExprClass = 34,
303pub const ZigClangStmt_CXXNewExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXNewExprClass;213 CXXFoldExprClass = 35,
304pub const ZigClangStmt_CXXNoexceptExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXNoexceptExprClass;214 CXXInheritedCtorInitExprClass = 36,
305pub const ZigClangStmt_CXXNullPtrLiteralExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXNullPtrLiteralExprClass;215 CXXNewExprClass = 37,
306pub const ZigClangStmt_CXXPseudoDestructorExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXPseudoDestructorExprClass;216 CXXNoexceptExprClass = 38,
307pub const ZigClangStmt_CXXScalarValueInitExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXScalarValueInitExprClass;217 CXXNullPtrLiteralExprClass = 39,
308pub const ZigClangStmt_CXXStdInitializerListExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXStdInitializerListExprClass;218 CXXPseudoDestructorExprClass = 40,
309pub const ZigClangStmt_CXXThisExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXThisExprClass;219 CXXScalarValueInitExprClass = 41,
310pub const ZigClangStmt_CXXThrowExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXThrowExprClass;220 CXXStdInitializerListExprClass = 42,
311pub const ZigClangStmt_CXXTypeidExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXTypeidExprClass;221 CXXThisExprClass = 43,
312pub const ZigClangStmt_CXXUnresolvedConstructExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXUnresolvedConstructExprClass;222 CXXThrowExprClass = 44,
313pub const ZigClangStmt_CXXUuidofExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXUuidofExprClass;223 CXXTypeidExprClass = 45,
314pub const ZigClangStmt_CallExprClass = enum_ZigClangStmtClass.ZigClangStmt_CallExprClass;224 CXXUnresolvedConstructExprClass = 46,
315pub const ZigClangStmt_CUDAKernelCallExprClass = enum_ZigClangStmtClass.ZigClangStmt_CUDAKernelCallExprClass;225 CXXUuidofExprClass = 47,
316pub const ZigClangStmt_CXXMemberCallExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXMemberCallExprClass;226 CallExprClass = 48,
317pub const ZigClangStmt_CXXOperatorCallExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXOperatorCallExprClass;227 CUDAKernelCallExprClass = 49,
318pub const ZigClangStmt_UserDefinedLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_UserDefinedLiteralClass;228 CXXMemberCallExprClass = 50,
319pub const ZigClangStmt_CStyleCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_CStyleCastExprClass;229 CXXOperatorCallExprClass = 51,
320pub const ZigClangStmt_CXXFunctionalCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXFunctionalCastExprClass;230 UserDefinedLiteralClass = 52,
321pub const ZigClangStmt_CXXConstCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXConstCastExprClass;231 CStyleCastExprClass = 53,
322pub const ZigClangStmt_CXXDynamicCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXDynamicCastExprClass;232 CXXFunctionalCastExprClass = 54,
323pub const ZigClangStmt_CXXReinterpretCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXReinterpretCastExprClass;233 CXXConstCastExprClass = 55,
324pub const ZigClangStmt_CXXStaticCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXStaticCastExprClass;234 CXXDynamicCastExprClass = 56,
325pub const ZigClangStmt_ObjCBridgedCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCBridgedCastExprClass;235 CXXReinterpretCastExprClass = 57,
326pub const ZigClangStmt_ImplicitCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_ImplicitCastExprClass;236 CXXStaticCastExprClass = 58,
327pub const ZigClangStmt_CharacterLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_CharacterLiteralClass;237 ObjCBridgedCastExprClass = 59,
328pub const ZigClangStmt_ChooseExprClass = enum_ZigClangStmtClass.ZigClangStmt_ChooseExprClass;238 ImplicitCastExprClass = 60,
329pub const ZigClangStmt_CompoundLiteralExprClass = enum_ZigClangStmtClass.ZigClangStmt_CompoundLiteralExprClass;239 CharacterLiteralClass = 61,
330pub const ZigClangStmt_ConvertVectorExprClass = enum_ZigClangStmtClass.ZigClangStmt_ConvertVectorExprClass;240 ChooseExprClass = 62,
331pub const ZigClangStmt_CoawaitExprClass = enum_ZigClangStmtClass.ZigClangStmt_CoawaitExprClass;241 CompoundLiteralExprClass = 63,
332pub const ZigClangStmt_CoyieldExprClass = enum_ZigClangStmtClass.ZigClangStmt_CoyieldExprClass;242 ConvertVectorExprClass = 64,
333pub const ZigClangStmt_DeclRefExprClass = enum_ZigClangStmtClass.ZigClangStmt_DeclRefExprClass;243 CoawaitExprClass = 65,
334pub const ZigClangStmt_DependentCoawaitExprClass = enum_ZigClangStmtClass.ZigClangStmt_DependentCoawaitExprClass;244 CoyieldExprClass = 66,
335pub const ZigClangStmt_DependentScopeDeclRefExprClass = enum_ZigClangStmtClass.ZigClangStmt_DependentScopeDeclRefExprClass;245 DeclRefExprClass = 67,
336pub const ZigClangStmt_DesignatedInitExprClass = enum_ZigClangStmtClass.ZigClangStmt_DesignatedInitExprClass;246 DependentCoawaitExprClass = 68,
337pub const ZigClangStmt_DesignatedInitUpdateExprClass = enum_ZigClangStmtClass.ZigClangStmt_DesignatedInitUpdateExprClass;247 DependentScopeDeclRefExprClass = 69,
338pub const ZigClangStmt_ExpressionTraitExprClass = enum_ZigClangStmtClass.ZigClangStmt_ExpressionTraitExprClass;248 DesignatedInitExprClass = 70,
339pub const ZigClangStmt_ExtVectorElementExprClass = enum_ZigClangStmtClass.ZigClangStmt_ExtVectorElementExprClass;249 DesignatedInitUpdateExprClass = 71,
340pub const ZigClangStmt_FixedPointLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_FixedPointLiteralClass;250 ExpressionTraitExprClass = 72,
341pub const ZigClangStmt_FloatingLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_FloatingLiteralClass;251 ExtVectorElementExprClass = 73,
342pub const ZigClangStmt_ConstantExprClass = enum_ZigClangStmtClass.ZigClangStmt_ConstantExprClass;252 FixedPointLiteralClass = 74,
343pub const ZigClangStmt_ExprWithCleanupsClass = enum_ZigClangStmtClass.ZigClangStmt_ExprWithCleanupsClass;253 FloatingLiteralClass = 75,
344pub const ZigClangStmt_FunctionParmPackExprClass = enum_ZigClangStmtClass.ZigClangStmt_FunctionParmPackExprClass;254 ConstantExprClass = 76,
345pub const ZigClangStmt_GNUNullExprClass = enum_ZigClangStmtClass.ZigClangStmt_GNUNullExprClass;255 ExprWithCleanupsClass = 77,
346pub const ZigClangStmt_GenericSelectionExprClass = enum_ZigClangStmtClass.ZigClangStmt_GenericSelectionExprClass;256 FunctionParmPackExprClass = 78,
347pub const ZigClangStmt_ImaginaryLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_ImaginaryLiteralClass;257 GNUNullExprClass = 79,
348pub const ZigClangStmt_ImplicitValueInitExprClass = enum_ZigClangStmtClass.ZigClangStmt_ImplicitValueInitExprClass;258 GenericSelectionExprClass = 80,
349pub const ZigClangStmt_InitListExprClass = enum_ZigClangStmtClass.ZigClangStmt_InitListExprClass;259 ImaginaryLiteralClass = 81,
350pub const ZigClangStmt_IntegerLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_IntegerLiteralClass;260 ImplicitValueInitExprClass = 82,
351pub const ZigClangStmt_LambdaExprClass = enum_ZigClangStmtClass.ZigClangStmt_LambdaExprClass;261 InitListExprClass = 83,
352pub const ZigClangStmt_MSPropertyRefExprClass = enum_ZigClangStmtClass.ZigClangStmt_MSPropertyRefExprClass;262 IntegerLiteralClass = 84,
353pub const ZigClangStmt_MSPropertySubscriptExprClass = enum_ZigClangStmtClass.ZigClangStmt_MSPropertySubscriptExprClass;263 LambdaExprClass = 85,
354pub const ZigClangStmt_MaterializeTemporaryExprClass = enum_ZigClangStmtClass.ZigClangStmt_MaterializeTemporaryExprClass;264 MSPropertyRefExprClass = 86,
355pub const ZigClangStmt_MemberExprClass = enum_ZigClangStmtClass.ZigClangStmt_MemberExprClass;265 MSPropertySubscriptExprClass = 87,
356pub const ZigClangStmt_NoInitExprClass = enum_ZigClangStmtClass.ZigClangStmt_NoInitExprClass;266 MaterializeTemporaryExprClass = 88,
357pub const ZigClangStmt_OMPArraySectionExprClass = enum_ZigClangStmtClass.ZigClangStmt_OMPArraySectionExprClass;267 MemberExprClass = 89,
358pub const ZigClangStmt_ObjCArrayLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCArrayLiteralClass;268 NoInitExprClass = 90,
359pub const ZigClangStmt_ObjCAvailabilityCheckExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCAvailabilityCheckExprClass;269 OMPArraySectionExprClass = 91,
360pub const ZigClangStmt_ObjCBoolLiteralExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCBoolLiteralExprClass;270 ObjCArrayLiteralClass = 92,
361pub const ZigClangStmt_ObjCBoxedExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCBoxedExprClass;271 ObjCAvailabilityCheckExprClass = 93,
362pub const ZigClangStmt_ObjCDictionaryLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCDictionaryLiteralClass;272 ObjCBoolLiteralExprClass = 94,
363pub const ZigClangStmt_ObjCEncodeExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCEncodeExprClass;273 ObjCBoxedExprClass = 95,
364pub const ZigClangStmt_ObjCIndirectCopyRestoreExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCIndirectCopyRestoreExprClass;274 ObjCDictionaryLiteralClass = 96,
365pub const ZigClangStmt_ObjCIsaExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCIsaExprClass;275 ObjCEncodeExprClass = 97,
366pub const ZigClangStmt_ObjCIvarRefExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCIvarRefExprClass;276 ObjCIndirectCopyRestoreExprClass = 98,
367pub const ZigClangStmt_ObjCMessageExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCMessageExprClass;277 ObjCIsaExprClass = 99,
368pub const ZigClangStmt_ObjCPropertyRefExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCPropertyRefExprClass;278 ObjCIvarRefExprClass = 100,
369pub const ZigClangStmt_ObjCProtocolExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCProtocolExprClass;279 ObjCMessageExprClass = 101,
370pub const ZigClangStmt_ObjCSelectorExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCSelectorExprClass;280 ObjCPropertyRefExprClass = 102,
371pub const ZigClangStmt_ObjCStringLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCStringLiteralClass;281 ObjCProtocolExprClass = 103,
372pub const ZigClangStmt_ObjCSubscriptRefExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCSubscriptRefExprClass;282 ObjCSelectorExprClass = 104,
373pub const ZigClangStmt_OffsetOfExprClass = enum_ZigClangStmtClass.ZigClangStmt_OffsetOfExprClass;283 ObjCStringLiteralClass = 105,
374pub const ZigClangStmt_OpaqueValueExprClass = enum_ZigClangStmtClass.ZigClangStmt_OpaqueValueExprClass;284 ObjCSubscriptRefExprClass = 106,
375pub const ZigClangStmt_UnresolvedLookupExprClass = enum_ZigClangStmtClass.ZigClangStmt_UnresolvedLookupExprClass;285 OffsetOfExprClass = 107,
376pub const ZigClangStmt_UnresolvedMemberExprClass = enum_ZigClangStmtClass.ZigClangStmt_UnresolvedMemberExprClass;286 OpaqueValueExprClass = 108,
377pub const ZigClangStmt_PackExpansionExprClass = enum_ZigClangStmtClass.ZigClangStmt_PackExpansionExprClass;287 UnresolvedLookupExprClass = 109,
378pub const ZigClangStmt_ParenExprClass = enum_ZigClangStmtClass.ZigClangStmt_ParenExprClass;288 UnresolvedMemberExprClass = 110,
379pub const ZigClangStmt_ParenListExprClass = enum_ZigClangStmtClass.ZigClangStmt_ParenListExprClass;289 PackExpansionExprClass = 111,
380pub const ZigClangStmt_PredefinedExprClass = enum_ZigClangStmtClass.ZigClangStmt_PredefinedExprClass;290 ParenExprClass = 112,
381pub const ZigClangStmt_PseudoObjectExprClass = enum_ZigClangStmtClass.ZigClangStmt_PseudoObjectExprClass;291 ParenListExprClass = 113,
382pub const ZigClangStmt_ShuffleVectorExprClass = enum_ZigClangStmtClass.ZigClangStmt_ShuffleVectorExprClass;292 PredefinedExprClass = 114,
383pub const ZigClangStmt_SizeOfPackExprClass = enum_ZigClangStmtClass.ZigClangStmt_SizeOfPackExprClass;293 PseudoObjectExprClass = 115,
384pub const ZigClangStmt_StmtExprClass = enum_ZigClangStmtClass.ZigClangStmt_StmtExprClass;294 ShuffleVectorExprClass = 116,
385pub const ZigClangStmt_StringLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_StringLiteralClass;295 SizeOfPackExprClass = 117,
386pub const ZigClangStmt_SubstNonTypeTemplateParmExprClass = enum_ZigClangStmtClass.ZigClangStmt_SubstNonTypeTemplateParmExprClass;296 StmtExprClass = 118,
387pub const ZigClangStmt_SubstNonTypeTemplateParmPackExprClass = enum_ZigClangStmtClass.ZigClangStmt_SubstNonTypeTemplateParmPackExprClass;297 StringLiteralClass = 119,
388pub const ZigClangStmt_TypeTraitExprClass = enum_ZigClangStmtClass.ZigClangStmt_TypeTraitExprClass;298 SubstNonTypeTemplateParmExprClass = 120,
389pub const ZigClangStmt_TypoExprClass = enum_ZigClangStmtClass.ZigClangStmt_TypoExprClass;299 SubstNonTypeTemplateParmPackExprClass = 121,
390pub const ZigClangStmt_UnaryExprOrTypeTraitExprClass = enum_ZigClangStmtClass.ZigClangStmt_UnaryExprOrTypeTraitExprClass;300 TypeTraitExprClass = 122,
391pub const ZigClangStmt_UnaryOperatorClass = enum_ZigClangStmtClass.ZigClangStmt_UnaryOperatorClass;301 TypoExprClass = 123,
392pub const ZigClangStmt_VAArgExprClass = enum_ZigClangStmtClass.ZigClangStmt_VAArgExprClass;302 UnaryExprOrTypeTraitExprClass = 124,
393pub const ZigClangStmt_ForStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ForStmtClass;303 UnaryOperatorClass = 125,
394pub const ZigClangStmt_GotoStmtClass = enum_ZigClangStmtClass.ZigClangStmt_GotoStmtClass;304 VAArgExprClass = 126,
395pub const ZigClangStmt_IfStmtClass = enum_ZigClangStmtClass.ZigClangStmt_IfStmtClass;305 ForStmtClass = 127,
396pub const ZigClangStmt_IndirectGotoStmtClass = enum_ZigClangStmtClass.ZigClangStmt_IndirectGotoStmtClass;306 GotoStmtClass = 128,
397pub const ZigClangStmt_LabelStmtClass = enum_ZigClangStmtClass.ZigClangStmt_LabelStmtClass;307 IfStmtClass = 129,
398pub const ZigClangStmt_MSDependentExistsStmtClass = enum_ZigClangStmtClass.ZigClangStmt_MSDependentExistsStmtClass;308 IndirectGotoStmtClass = 130,
399pub const ZigClangStmt_NullStmtClass = enum_ZigClangStmtClass.ZigClangStmt_NullStmtClass;309 LabelStmtClass = 131,
400pub const ZigClangStmt_OMPAtomicDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPAtomicDirectiveClass;310 MSDependentExistsStmtClass = 132,
401pub const ZigClangStmt_OMPBarrierDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPBarrierDirectiveClass;311 NullStmtClass = 133,
402pub const ZigClangStmt_OMPCancelDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPCancelDirectiveClass;312 OMPAtomicDirectiveClass = 134,
403pub const ZigClangStmt_OMPCancellationPointDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPCancellationPointDirectiveClass;313 OMPBarrierDirectiveClass = 135,
404pub const ZigClangStmt_OMPCriticalDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPCriticalDirectiveClass;314 OMPCancelDirectiveClass = 136,
405pub const ZigClangStmt_OMPFlushDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPFlushDirectiveClass;315 OMPCancellationPointDirectiveClass = 137,
406pub const ZigClangStmt_OMPDistributeDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPDistributeDirectiveClass;316 OMPCriticalDirectiveClass = 138,
407pub const ZigClangStmt_OMPDistributeParallelForDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPDistributeParallelForDirectiveClass;317 OMPFlushDirectiveClass = 139,
408pub const ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass;318 OMPDistributeDirectiveClass = 140,
409pub const ZigClangStmt_OMPDistributeSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPDistributeSimdDirectiveClass;319 OMPDistributeParallelForDirectiveClass = 141,
410pub const ZigClangStmt_OMPForDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPForDirectiveClass;320 OMPDistributeParallelForSimdDirectiveClass = 142,
411pub const ZigClangStmt_OMPForSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPForSimdDirectiveClass;321 OMPDistributeSimdDirectiveClass = 143,
412pub const ZigClangStmt_OMPParallelForDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPParallelForDirectiveClass;322 OMPForDirectiveClass = 144,
413pub const ZigClangStmt_OMPParallelForSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPParallelForSimdDirectiveClass;323 OMPForSimdDirectiveClass = 145,
414pub const ZigClangStmt_OMPSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPSimdDirectiveClass;324 OMPParallelForDirectiveClass = 146,
415pub const ZigClangStmt_OMPTargetParallelForSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetParallelForSimdDirectiveClass;325 OMPParallelForSimdDirectiveClass = 147,
416pub const ZigClangStmt_OMPTargetSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetSimdDirectiveClass;326 OMPSimdDirectiveClass = 148,
417pub const ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass;327 OMPTargetParallelForSimdDirectiveClass = 149,
418pub const ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass;328 OMPTargetSimdDirectiveClass = 150,
419pub const ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass;329 OMPTargetTeamsDistributeDirectiveClass = 151,
420pub const ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass;330 OMPTargetTeamsDistributeParallelForDirectiveClass = 152,
421pub const ZigClangStmt_OMPTaskLoopDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTaskLoopDirectiveClass;331 OMPTargetTeamsDistributeParallelForSimdDirectiveClass = 153,
422pub const ZigClangStmt_OMPTaskLoopSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTaskLoopSimdDirectiveClass;332 OMPTargetTeamsDistributeSimdDirectiveClass = 154,
423pub const ZigClangStmt_OMPTeamsDistributeDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTeamsDistributeDirectiveClass;333 OMPTaskLoopDirectiveClass = 155,
424pub const ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass;334 OMPTaskLoopSimdDirectiveClass = 156,
425pub const ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass;335 OMPTeamsDistributeDirectiveClass = 157,
426pub const ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass;336 OMPTeamsDistributeParallelForDirectiveClass = 158,
427pub const ZigClangStmt_OMPMasterDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPMasterDirectiveClass;337 OMPTeamsDistributeParallelForSimdDirectiveClass = 159,
428pub const ZigClangStmt_OMPOrderedDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPOrderedDirectiveClass;338 OMPTeamsDistributeSimdDirectiveClass = 160,
429pub const ZigClangStmt_OMPParallelDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPParallelDirectiveClass;339 OMPMasterDirectiveClass = 161,
430pub const ZigClangStmt_OMPParallelSectionsDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPParallelSectionsDirectiveClass;340 OMPOrderedDirectiveClass = 162,
431pub const ZigClangStmt_OMPSectionDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPSectionDirectiveClass;341 OMPParallelDirectiveClass = 163,
432pub const ZigClangStmt_OMPSectionsDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPSectionsDirectiveClass;342 OMPParallelSectionsDirectiveClass = 164,
433pub const ZigClangStmt_OMPSingleDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPSingleDirectiveClass;343 OMPSectionDirectiveClass = 165,
434pub const ZigClangStmt_OMPTargetDataDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetDataDirectiveClass;344 OMPSectionsDirectiveClass = 166,
435pub const ZigClangStmt_OMPTargetDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetDirectiveClass;345 OMPSingleDirectiveClass = 167,
436pub const ZigClangStmt_OMPTargetEnterDataDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetEnterDataDirectiveClass;346 OMPTargetDataDirectiveClass = 168,
437pub const ZigClangStmt_OMPTargetExitDataDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetExitDataDirectiveClass;347 OMPTargetDirectiveClass = 169,
438pub const ZigClangStmt_OMPTargetParallelDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetParallelDirectiveClass;348 OMPTargetEnterDataDirectiveClass = 170,
439pub const ZigClangStmt_OMPTargetParallelForDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetParallelForDirectiveClass;349 OMPTargetExitDataDirectiveClass = 171,
440pub const ZigClangStmt_OMPTargetTeamsDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetTeamsDirectiveClass;350 OMPTargetParallelDirectiveClass = 172,
441pub const ZigClangStmt_OMPTargetUpdateDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetUpdateDirectiveClass;351 OMPTargetParallelForDirectiveClass = 173,
442pub const ZigClangStmt_OMPTaskDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTaskDirectiveClass;352 OMPTargetTeamsDirectiveClass = 174,
443pub const ZigClangStmt_OMPTaskgroupDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTaskgroupDirectiveClass;353 OMPTargetUpdateDirectiveClass = 175,
444pub const ZigClangStmt_OMPTaskwaitDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTaskwaitDirectiveClass;354 OMPTaskDirectiveClass = 176,
445pub const ZigClangStmt_OMPTaskyieldDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTaskyieldDirectiveClass;355 OMPTaskgroupDirectiveClass = 177,
446pub const ZigClangStmt_OMPTeamsDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTeamsDirectiveClass;356 OMPTaskwaitDirectiveClass = 178,
447pub const ZigClangStmt_ObjCAtCatchStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCAtCatchStmtClass;357 OMPTaskyieldDirectiveClass = 179,
448pub const ZigClangStmt_ObjCAtFinallyStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCAtFinallyStmtClass;358 OMPTeamsDirectiveClass = 180,
449pub const ZigClangStmt_ObjCAtSynchronizedStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCAtSynchronizedStmtClass;359 ObjCAtCatchStmtClass = 181,
450pub const ZigClangStmt_ObjCAtThrowStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCAtThrowStmtClass;360 ObjCAtFinallyStmtClass = 182,
451pub const ZigClangStmt_ObjCAtTryStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCAtTryStmtClass;361 ObjCAtSynchronizedStmtClass = 183,
452pub const ZigClangStmt_ObjCAutoreleasePoolStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCAutoreleasePoolStmtClass;362 ObjCAtThrowStmtClass = 184,
453pub const ZigClangStmt_ObjCForCollectionStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCForCollectionStmtClass;363 ObjCAtTryStmtClass = 185,
454pub const ZigClangStmt_ReturnStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ReturnStmtClass;364 ObjCAutoreleasePoolStmtClass = 186,
455pub const ZigClangStmt_SEHExceptStmtClass = enum_ZigClangStmtClass.ZigClangStmt_SEHExceptStmtClass;365 ObjCForCollectionStmtClass = 187,
456pub const ZigClangStmt_SEHFinallyStmtClass = enum_ZigClangStmtClass.ZigClangStmt_SEHFinallyStmtClass;366 ReturnStmtClass = 188,
457pub const ZigClangStmt_SEHLeaveStmtClass = enum_ZigClangStmtClass.ZigClangStmt_SEHLeaveStmtClass;367 SEHExceptStmtClass = 189,
458pub const ZigClangStmt_SEHTryStmtClass = enum_ZigClangStmtClass.ZigClangStmt_SEHTryStmtClass;368 SEHFinallyStmtClass = 190,
459pub const ZigClangStmt_CaseStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CaseStmtClass;369 SEHLeaveStmtClass = 191,
460pub const ZigClangStmt_DefaultStmtClass = enum_ZigClangStmtClass.ZigClangStmt_DefaultStmtClass;370 SEHTryStmtClass = 192,
461pub const ZigClangStmt_SwitchStmtClass = enum_ZigClangStmtClass.ZigClangStmt_SwitchStmtClass;371 CaseStmtClass = 193,
462pub const ZigClangStmt_WhileStmtClass = enum_ZigClangStmtClass.ZigClangStmt_WhileStmtClass;372 DefaultStmtClass = 194,
463pub const enum_ZigClangStmtClass = extern enum {373 SwitchStmtClass = 195,
464 ZigClangStmt_NoStmtClass = 0,374 WhileStmtClass = 196,
465 ZigClangStmt_GCCAsmStmtClass = 1,
466 ZigClangStmt_MSAsmStmtClass = 2,
467 ZigClangStmt_AttributedStmtClass = 3,
468 ZigClangStmt_BreakStmtClass = 4,
469 ZigClangStmt_CXXCatchStmtClass = 5,
470 ZigClangStmt_CXXForRangeStmtClass = 6,
471 ZigClangStmt_CXXTryStmtClass = 7,
472 ZigClangStmt_CapturedStmtClass = 8,
473 ZigClangStmt_CompoundStmtClass = 9,
474 ZigClangStmt_ContinueStmtClass = 10,
475 ZigClangStmt_CoreturnStmtClass = 11,
476 ZigClangStmt_CoroutineBodyStmtClass = 12,
477 ZigClangStmt_DeclStmtClass = 13,
478 ZigClangStmt_DoStmtClass = 14,
479 ZigClangStmt_BinaryConditionalOperatorClass = 15,
480 ZigClangStmt_ConditionalOperatorClass = 16,
481 ZigClangStmt_AddrLabelExprClass = 17,
482 ZigClangStmt_ArrayInitIndexExprClass = 18,
483 ZigClangStmt_ArrayInitLoopExprClass = 19,
484 ZigClangStmt_ArraySubscriptExprClass = 20,
485 ZigClangStmt_ArrayTypeTraitExprClass = 21,
486 ZigClangStmt_AsTypeExprClass = 22,
487 ZigClangStmt_AtomicExprClass = 23,
488 ZigClangStmt_BinaryOperatorClass = 24,
489 ZigClangStmt_CompoundAssignOperatorClass = 25,
490 ZigClangStmt_BlockExprClass = 26,
491 ZigClangStmt_CXXBindTemporaryExprClass = 27,
492 ZigClangStmt_CXXBoolLiteralExprClass = 28,
493 ZigClangStmt_CXXConstructExprClass = 29,
494 ZigClangStmt_CXXTemporaryObjectExprClass = 30,
495 ZigClangStmt_CXXDefaultArgExprClass = 31,
496 ZigClangStmt_CXXDefaultInitExprClass = 32,
497 ZigClangStmt_CXXDeleteExprClass = 33,
498 ZigClangStmt_CXXDependentScopeMemberExprClass = 34,
499 ZigClangStmt_CXXFoldExprClass = 35,
500 ZigClangStmt_CXXInheritedCtorInitExprClass = 36,
501 ZigClangStmt_CXXNewExprClass = 37,
502 ZigClangStmt_CXXNoexceptExprClass = 38,
503 ZigClangStmt_CXXNullPtrLiteralExprClass = 39,
504 ZigClangStmt_CXXPseudoDestructorExprClass = 40,
505 ZigClangStmt_CXXScalarValueInitExprClass = 41,
506 ZigClangStmt_CXXStdInitializerListExprClass = 42,
507 ZigClangStmt_CXXThisExprClass = 43,
508 ZigClangStmt_CXXThrowExprClass = 44,
509 ZigClangStmt_CXXTypeidExprClass = 45,
510 ZigClangStmt_CXXUnresolvedConstructExprClass = 46,
511 ZigClangStmt_CXXUuidofExprClass = 47,
512 ZigClangStmt_CallExprClass = 48,
513 ZigClangStmt_CUDAKernelCallExprClass = 49,
514 ZigClangStmt_CXXMemberCallExprClass = 50,
515 ZigClangStmt_CXXOperatorCallExprClass = 51,
516 ZigClangStmt_UserDefinedLiteralClass = 52,
517 ZigClangStmt_CStyleCastExprClass = 53,
518 ZigClangStmt_CXXFunctionalCastExprClass = 54,
519 ZigClangStmt_CXXConstCastExprClass = 55,
520 ZigClangStmt_CXXDynamicCastExprClass = 56,
521 ZigClangStmt_CXXReinterpretCastExprClass = 57,
522 ZigClangStmt_CXXStaticCastExprClass = 58,
523 ZigClangStmt_ObjCBridgedCastExprClass = 59,
524 ZigClangStmt_ImplicitCastExprClass = 60,
525 ZigClangStmt_CharacterLiteralClass = 61,
526 ZigClangStmt_ChooseExprClass = 62,
527 ZigClangStmt_CompoundLiteralExprClass = 63,
528 ZigClangStmt_ConvertVectorExprClass = 64,
529 ZigClangStmt_CoawaitExprClass = 65,
530 ZigClangStmt_CoyieldExprClass = 66,
531 ZigClangStmt_DeclRefExprClass = 67,
532 ZigClangStmt_DependentCoawaitExprClass = 68,
533 ZigClangStmt_DependentScopeDeclRefExprClass = 69,
534 ZigClangStmt_DesignatedInitExprClass = 70,
535 ZigClangStmt_DesignatedInitUpdateExprClass = 71,
536 ZigClangStmt_ExpressionTraitExprClass = 72,
537 ZigClangStmt_ExtVectorElementExprClass = 73,
538 ZigClangStmt_FixedPointLiteralClass = 74,
539 ZigClangStmt_FloatingLiteralClass = 75,
540 ZigClangStmt_ConstantExprClass = 76,
541 ZigClangStmt_ExprWithCleanupsClass = 77,
542 ZigClangStmt_FunctionParmPackExprClass = 78,
543 ZigClangStmt_GNUNullExprClass = 79,
544 ZigClangStmt_GenericSelectionExprClass = 80,
545 ZigClangStmt_ImaginaryLiteralClass = 81,
546 ZigClangStmt_ImplicitValueInitExprClass = 82,
547 ZigClangStmt_InitListExprClass = 83,
548 ZigClangStmt_IntegerLiteralClass = 84,
549 ZigClangStmt_LambdaExprClass = 85,
550 ZigClangStmt_MSPropertyRefExprClass = 86,
551 ZigClangStmt_MSPropertySubscriptExprClass = 87,
552 ZigClangStmt_MaterializeTemporaryExprClass = 88,
553 ZigClangStmt_MemberExprClass = 89,
554 ZigClangStmt_NoInitExprClass = 90,
555 ZigClangStmt_OMPArraySectionExprClass = 91,
556 ZigClangStmt_ObjCArrayLiteralClass = 92,
557 ZigClangStmt_ObjCAvailabilityCheckExprClass = 93,
558 ZigClangStmt_ObjCBoolLiteralExprClass = 94,
559 ZigClangStmt_ObjCBoxedExprClass = 95,
560 ZigClangStmt_ObjCDictionaryLiteralClass = 96,
561 ZigClangStmt_ObjCEncodeExprClass = 97,
562 ZigClangStmt_ObjCIndirectCopyRestoreExprClass = 98,
563 ZigClangStmt_ObjCIsaExprClass = 99,
564 ZigClangStmt_ObjCIvarRefExprClass = 100,
565 ZigClangStmt_ObjCMessageExprClass = 101,
566 ZigClangStmt_ObjCPropertyRefExprClass = 102,
567 ZigClangStmt_ObjCProtocolExprClass = 103,
568 ZigClangStmt_ObjCSelectorExprClass = 104,
569 ZigClangStmt_ObjCStringLiteralClass = 105,
570 ZigClangStmt_ObjCSubscriptRefExprClass = 106,
571 ZigClangStmt_OffsetOfExprClass = 107,
572 ZigClangStmt_OpaqueValueExprClass = 108,
573 ZigClangStmt_UnresolvedLookupExprClass = 109,
574 ZigClangStmt_UnresolvedMemberExprClass = 110,
575 ZigClangStmt_PackExpansionExprClass = 111,
576 ZigClangStmt_ParenExprClass = 112,
577 ZigClangStmt_ParenListExprClass = 113,
578 ZigClangStmt_PredefinedExprClass = 114,
579 ZigClangStmt_PseudoObjectExprClass = 115,
580 ZigClangStmt_ShuffleVectorExprClass = 116,
581 ZigClangStmt_SizeOfPackExprClass = 117,
582 ZigClangStmt_StmtExprClass = 118,
583 ZigClangStmt_StringLiteralClass = 119,
584 ZigClangStmt_SubstNonTypeTemplateParmExprClass = 120,
585 ZigClangStmt_SubstNonTypeTemplateParmPackExprClass = 121,
586 ZigClangStmt_TypeTraitExprClass = 122,
587 ZigClangStmt_TypoExprClass = 123,
588 ZigClangStmt_UnaryExprOrTypeTraitExprClass = 124,
589 ZigClangStmt_UnaryOperatorClass = 125,
590 ZigClangStmt_VAArgExprClass = 126,
591 ZigClangStmt_ForStmtClass = 127,
592 ZigClangStmt_GotoStmtClass = 128,
593 ZigClangStmt_IfStmtClass = 129,
594 ZigClangStmt_IndirectGotoStmtClass = 130,
595 ZigClangStmt_LabelStmtClass = 131,
596 ZigClangStmt_MSDependentExistsStmtClass = 132,
597 ZigClangStmt_NullStmtClass = 133,
598 ZigClangStmt_OMPAtomicDirectiveClass = 134,
599 ZigClangStmt_OMPBarrierDirectiveClass = 135,
600 ZigClangStmt_OMPCancelDirectiveClass = 136,
601 ZigClangStmt_OMPCancellationPointDirectiveClass = 137,
602 ZigClangStmt_OMPCriticalDirectiveClass = 138,
603 ZigClangStmt_OMPFlushDirectiveClass = 139,
604 ZigClangStmt_OMPDistributeDirectiveClass = 140,
605 ZigClangStmt_OMPDistributeParallelForDirectiveClass = 141,
606 ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass = 142,
607 ZigClangStmt_OMPDistributeSimdDirectiveClass = 143,
608 ZigClangStmt_OMPForDirectiveClass = 144,
609 ZigClangStmt_OMPForSimdDirectiveClass = 145,
610 ZigClangStmt_OMPParallelForDirectiveClass = 146,
611 ZigClangStmt_OMPParallelForSimdDirectiveClass = 147,
612 ZigClangStmt_OMPSimdDirectiveClass = 148,
613 ZigClangStmt_OMPTargetParallelForSimdDirectiveClass = 149,
614 ZigClangStmt_OMPTargetSimdDirectiveClass = 150,
615 ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass = 151,
616 ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass = 152,
617 ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass = 153,
618 ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass = 154,
619 ZigClangStmt_OMPTaskLoopDirectiveClass = 155,
620 ZigClangStmt_OMPTaskLoopSimdDirectiveClass = 156,
621 ZigClangStmt_OMPTeamsDistributeDirectiveClass = 157,
622 ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass = 158,
623 ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass = 159,
624 ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass = 160,
625 ZigClangStmt_OMPMasterDirectiveClass = 161,
626 ZigClangStmt_OMPOrderedDirectiveClass = 162,
627 ZigClangStmt_OMPParallelDirectiveClass = 163,
628 ZigClangStmt_OMPParallelSectionsDirectiveClass = 164,
629 ZigClangStmt_OMPSectionDirectiveClass = 165,
630 ZigClangStmt_OMPSectionsDirectiveClass = 166,
631 ZigClangStmt_OMPSingleDirectiveClass = 167,
632 ZigClangStmt_OMPTargetDataDirectiveClass = 168,
633 ZigClangStmt_OMPTargetDirectiveClass = 169,
634 ZigClangStmt_OMPTargetEnterDataDirectiveClass = 170,
635 ZigClangStmt_OMPTargetExitDataDirectiveClass = 171,
636 ZigClangStmt_OMPTargetParallelDirectiveClass = 172,
637 ZigClangStmt_OMPTargetParallelForDirectiveClass = 173,
638 ZigClangStmt_OMPTargetTeamsDirectiveClass = 174,
639 ZigClangStmt_OMPTargetUpdateDirectiveClass = 175,
640 ZigClangStmt_OMPTaskDirectiveClass = 176,
641 ZigClangStmt_OMPTaskgroupDirectiveClass = 177,
642 ZigClangStmt_OMPTaskwaitDirectiveClass = 178,
643 ZigClangStmt_OMPTaskyieldDirectiveClass = 179,
644 ZigClangStmt_OMPTeamsDirectiveClass = 180,
645 ZigClangStmt_ObjCAtCatchStmtClass = 181,
646 ZigClangStmt_ObjCAtFinallyStmtClass = 182,
647 ZigClangStmt_ObjCAtSynchronizedStmtClass = 183,
648 ZigClangStmt_ObjCAtThrowStmtClass = 184,
649 ZigClangStmt_ObjCAtTryStmtClass = 185,
650 ZigClangStmt_ObjCAutoreleasePoolStmtClass = 186,
651 ZigClangStmt_ObjCForCollectionStmtClass = 187,
652 ZigClangStmt_ReturnStmtClass = 188,
653 ZigClangStmt_SEHExceptStmtClass = 189,
654 ZigClangStmt_SEHFinallyStmtClass = 190,
655 ZigClangStmt_SEHLeaveStmtClass = 191,
656 ZigClangStmt_SEHTryStmtClass = 192,
657 ZigClangStmt_CaseStmtClass = 193,
658 ZigClangStmt_DefaultStmtClass = 194,
659 ZigClangStmt_SwitchStmtClass = 195,
660 ZigClangStmt_WhileStmtClass = 196,
661};375};
662pub const ZigClangCK_Dependent = enum_ZigClangCK._Dependent;376
663pub const ZigClangCK_BitCast = enum_ZigClangCK._BitCast;377pub const ZigClangCK = extern enum {
664pub const ZigClangCK_LValueBitCast = enum_ZigClangCK._LValueBitCast;378 Dependent,
665pub const ZigClangCK_LValueToRValue = enum_ZigClangCK._LValueToRValue;379 BitCast,
666pub const ZigClangCK_NoOp = enum_ZigClangCK._NoOp;380 LValueBitCast,
667pub const ZigClangCK_BaseToDerived = enum_ZigClangCK._BaseToDerived;381 LValueToRValue,
668pub const ZigClangCK_DerivedToBase = enum_ZigClangCK._DerivedToBase;382 NoOp,
669pub const ZigClangCK_UncheckedDerivedToBase = enum_ZigClangCK._UncheckedDerivedToBase;383 BaseToDerived,
670pub const ZigClangCK_Dynamic = enum_ZigClangCK._Dynamic;384 DerivedToBase,
671pub const ZigClangCK_ToUnion = enum_ZigClangCK._ToUnion;385 UncheckedDerivedToBase,
672pub const ZigClangCK_ArrayToPointerDecay = enum_ZigClangCK._ArrayToPointerDecay;386 Dynamic,
673pub const ZigClangCK_FunctionToPointerDecay = enum_ZigClangCK._FunctionToPointerDecay;387 ToUnion,
674pub const ZigClangCK_NullToPointer = enum_ZigClangCK._NullToPointer;388 ArrayToPointerDecay,
675pub const ZigClangCK_NullToMemberPointer = enum_ZigClangCK._NullToMemberPointer;389 FunctionToPointerDecay,
676pub const ZigClangCK_BaseToDerivedMemberPointer = enum_ZigClangCK._BaseToDerivedMemberPointer;390 NullToPointer,
677pub const ZigClangCK_DerivedToBaseMemberPointer = enum_ZigClangCK._DerivedToBaseMemberPointer;391 NullToMemberPointer,
678pub const ZigClangCK_MemberPointerToBoolean = enum_ZigClangCK._MemberPointerToBoolean;392 BaseToDerivedMemberPointer,
679pub const ZigClangCK_ReinterpretMemberPointer = enum_ZigClangCK._ReinterpretMemberPointer;393 DerivedToBaseMemberPointer,
680pub const ZigClangCK_UserDefinedConversion = enum_ZigClangCK._UserDefinedConversion;394 MemberPointerToBoolean,
681pub const ZigClangCK_ConstructorConversion = enum_ZigClangCK._ConstructorConversion;395 ReinterpretMemberPointer,
682pub const ZigClangCK_IntegralToPointer = enum_ZigClangCK._IntegralToPointer;396 UserDefinedConversion,
683pub const ZigClangCK_PointerToIntegral = enum_ZigClangCK._PointerToIntegral;397 ConstructorConversion,
684pub const ZigClangCK_PointerToBoolean = enum_ZigClangCK._PointerToBoolean;398 IntegralToPointer,
685pub const ZigClangCK_ToVoid = enum_ZigClangCK._ToVoid;399 PointerToIntegral,
686pub const ZigClangCK_VectorSplat = enum_ZigClangCK._VectorSplat;400 PointerToBoolean,
687pub const ZigClangCK_IntegralCast = enum_ZigClangCK._IntegralCast;401 ToVoid,
688pub const ZigClangCK_IntegralToBoolean = enum_ZigClangCK._IntegralToBoolean;402 VectorSplat,
689pub const ZigClangCK_IntegralToFloating = enum_ZigClangCK._IntegralToFloating;403 IntegralCast,
690pub const ZigClangCK_FixedPointCast = enum_ZigClangCK._FixedPointCast;404 IntegralToBoolean,
691pub const ZigClangCK_FixedPointToBoolean = enum_ZigClangCK._FixedPointToBoolean;405 IntegralToFloating,
692pub const ZigClangCK_FloatingToIntegral = enum_ZigClangCK._FloatingToIntegral;406 FixedPointCast,
693pub const ZigClangCK_FloatingToBoolean = enum_ZigClangCK._FloatingToBoolean;407 FixedPointToBoolean,
694pub const ZigClangCK_BooleanToSignedIntegral = enum_ZigClangCK._BooleanToSignedIntegral;408 FloatingToIntegral,
695pub const ZigClangCK_FloatingCast = enum_ZigClangCK._FloatingCast;409 FloatingToBoolean,
696pub const ZigClangCK_CPointerToObjCPointerCast = enum_ZigClangCK._CPointerToObjCPointerCast;410 BooleanToSignedIntegral,
697pub const ZigClangCK_BlockPointerToObjCPointerCast = enum_ZigClangCK._BlockPointerToObjCPointerCast;411 FloatingCast,
698pub const ZigClangCK_AnyPointerToBlockPointerCast = enum_ZigClangCK._AnyPointerToBlockPointerCast;412 CPointerToObjCPointerCast,
699pub const ZigClangCK_ObjCObjectLValueCast = enum_ZigClangCK._ObjCObjectLValueCast;413 BlockPointerToObjCPointerCast,
700pub const ZigClangCK_FloatingRealToComplex = enum_ZigClangCK._FloatingRealToComplex;414 AnyPointerToBlockPointerCast,
701pub const ZigClangCK_FloatingComplexToReal = enum_ZigClangCK._FloatingComplexToReal;415 ObjCObjectLValueCast,
702pub const ZigClangCK_FloatingComplexToBoolean = enum_ZigClangCK._FloatingComplexToBoolean;416 FloatingRealToComplex,
703pub const ZigClangCK_FloatingComplexCast = enum_ZigClangCK._FloatingComplexCast;417 FloatingComplexToReal,
704pub const ZigClangCK_FloatingComplexToIntegralComplex = enum_ZigClangCK._FloatingComplexToIntegralComplex;418 FloatingComplexToBoolean,
705pub const ZigClangCK_IntegralRealToComplex = enum_ZigClangCK._IntegralRealToComplex;419 FloatingComplexCast,
706pub const ZigClangCK_IntegralComplexToReal = enum_ZigClangCK._IntegralComplexToReal;420 FloatingComplexToIntegralComplex,
707pub const ZigClangCK_IntegralComplexToBoolean = enum_ZigClangCK._IntegralComplexToBoolean;421 IntegralRealToComplex,
708pub const ZigClangCK_IntegralComplexCast = enum_ZigClangCK._IntegralComplexCast;422 IntegralComplexToReal,
709pub const ZigClangCK_IntegralComplexToFloatingComplex = enum_ZigClangCK._IntegralComplexToFloatingComplex;423 IntegralComplexToBoolean,
710pub const ZigClangCK_ARCProduceObject = enum_ZigClangCK._ARCProduceObject;424 IntegralComplexCast,
711pub const ZigClangCK_ARCConsumeObject = enum_ZigClangCK._ARCConsumeObject;425 IntegralComplexToFloatingComplex,
712pub const ZigClangCK_ARCReclaimReturnedObject = enum_ZigClangCK._ARCReclaimReturnedObject;426 ARCProduceObject,
713pub const ZigClangCK_ARCExtendBlockObject = enum_ZigClangCK._ARCExtendBlockObject;427 ARCConsumeObject,
714pub const ZigClangCK_AtomicToNonAtomic = enum_ZigClangCK._AtomicToNonAtomic;428 ARCReclaimReturnedObject,
715pub const ZigClangCK_NonAtomicToAtomic = enum_ZigClangCK._NonAtomicToAtomic;429 ARCExtendBlockObject,
716pub const ZigClangCK_CopyAndAutoreleaseBlockObject = enum_ZigClangCK._CopyAndAutoreleaseBlockObject;430 AtomicToNonAtomic,
717pub const ZigClangCK_BuiltinFnToFnPtr = enum_ZigClangCK._BuiltinFnToFnPtr;431 NonAtomicToAtomic,
718pub const ZigClangCK_ZeroToOCLOpaqueType = enum_ZigClangCK._ZeroToOCLOpaqueType;432 CopyAndAutoreleaseBlockObject,
719pub const ZigClangCK_AddressSpaceConversion = enum_ZigClangCK._AddressSpaceConversion;433 BuiltinFnToFnPtr,
720pub const ZigClangCK_IntToOCLSampler = enum_ZigClangCK._IntToOCLSampler;434 ZeroToOCLOpaqueType,
721pub const enum_ZigClangCK = extern enum {435 AddressSpaceConversion,
722 _Dependent,436 IntToOCLSampler,
723 _BitCast,
724 _LValueBitCast,
725 _LValueToRValue,
726 _NoOp,
727 _BaseToDerived,
728 _DerivedToBase,
729 _UncheckedDerivedToBase,
730 _Dynamic,
731 _ToUnion,
732 _ArrayToPointerDecay,
733 _FunctionToPointerDecay,
734 _NullToPointer,
735 _NullToMemberPointer,
736 _BaseToDerivedMemberPointer,
737 _DerivedToBaseMemberPointer,
738 _MemberPointerToBoolean,
739 _ReinterpretMemberPointer,
740 _UserDefinedConversion,
741 _ConstructorConversion,
742 _IntegralToPointer,
743 _PointerToIntegral,
744 _PointerToBoolean,
745 _ToVoid,
746 _VectorSplat,
747 _IntegralCast,
748 _IntegralToBoolean,
749 _IntegralToFloating,
750 _FixedPointCast,
751 _FixedPointToBoolean,
752 _FloatingToIntegral,
753 _FloatingToBoolean,
754 _BooleanToSignedIntegral,
755 _FloatingCast,
756 _CPointerToObjCPointerCast,
757 _BlockPointerToObjCPointerCast,
758 _AnyPointerToBlockPointerCast,
759 _ObjCObjectLValueCast,
760 _FloatingRealToComplex,
761 _FloatingComplexToReal,
762 _FloatingComplexToBoolean,
763 _FloatingComplexCast,
764 _FloatingComplexToIntegralComplex,
765 _IntegralRealToComplex,
766 _IntegralComplexToReal,
767 _IntegralComplexToBoolean,
768 _IntegralComplexCast,
769 _IntegralComplexToFloatingComplex,
770 _ARCProduceObject,
771 _ARCConsumeObject,
772 _ARCReclaimReturnedObject,
773 _ARCExtendBlockObject,
774 _AtomicToNonAtomic,
775 _NonAtomicToAtomic,
776 _CopyAndAutoreleaseBlockObject,
777 _BuiltinFnToFnPtr,
778 _ZeroToOCLOpaqueType,
779 _AddressSpaceConversion,
780 _IntToOCLSampler,
781};437};
782pub const ZigClangAPValueUninitialized = enum_ZigClangAPValueKind.ZigClangAPValueUninitialized;438
783pub const ZigClangAPValueInt = enum_ZigClangAPValueKind.ZigClangAPValueInt;439pub const ZigClangAPValueKind = extern enum {
784pub const ZigClangAPValueFloat = enum_ZigClangAPValueKind.ZigClangAPValueFloat;440 Uninitialized,
785pub const ZigClangAPValueComplexInt = enum_ZigClangAPValueKind.ZigClangAPValueComplexInt;441 Int,
786pub const ZigClangAPValueComplexFloat = enum_ZigClangAPValueKind.ZigClangAPValueComplexFloat;442 Float,
787pub const ZigClangAPValueLValue = enum_ZigClangAPValueKind.ZigClangAPValueLValue;443 ComplexInt,
788pub const ZigClangAPValueVector = enum_ZigClangAPValueKind.ZigClangAPValueVector;444 ComplexFloat,
789pub const ZigClangAPValueArray = enum_ZigClangAPValueKind.ZigClangAPValueArray;445 LValue,
790pub const ZigClangAPValueStruct = enum_ZigClangAPValueKind.ZigClangAPValueStruct;446 Vector,
791pub const ZigClangAPValueUnion = enum_ZigClangAPValueKind.ZigClangAPValueUnion;447 Array,
792pub const ZigClangAPValueMemberPointer = enum_ZigClangAPValueKind.ZigClangAPValueMemberPointer;448 Struct,
793pub const ZigClangAPValueAddrLabelDiff = enum_ZigClangAPValueKind.ZigClangAPValueAddrLabelDiff;449 Union,
794pub const enum_ZigClangAPValueKind = extern enum {450 MemberPointer,
795 ZigClangAPValueUninitialized,451 AddrLabelDiff,
796 ZigClangAPValueInt,
797 ZigClangAPValueFloat,
798 ZigClangAPValueComplexInt,
799 ZigClangAPValueComplexFloat,
800 ZigClangAPValueLValue,
801 ZigClangAPValueVector,
802 ZigClangAPValueArray,
803 ZigClangAPValueStruct,
804 ZigClangAPValueUnion,
805 ZigClangAPValueMemberPointer,
806 ZigClangAPValueAddrLabelDiff,
807};452};
453
808pub extern fn ZigClangSourceManager_getSpellingLoc(arg0: ?*const struct_ZigClangSourceManager, Loc: struct_ZigClangSourceLocation) struct_ZigClangSourceLocation;454pub extern fn ZigClangSourceManager_getSpellingLoc(arg0: ?*const struct_ZigClangSourceManager, Loc: struct_ZigClangSourceLocation) struct_ZigClangSourceLocation;
809pub extern fn ZigClangSourceManager_getFilename(self: *const struct_ZigClangSourceManager, SpellingLoc: struct_ZigClangSourceLocation) ?[*]const u8;455pub extern fn ZigClangSourceManager_getFilename(self: *const struct_ZigClangSourceManager, SpellingLoc: struct_ZigClangSourceLocation) ?[*]const u8;
810pub extern fn ZigClangSourceManager_getSpellingLineNumber(arg0: ?*const struct_ZigClangSourceManager, Loc: struct_ZigClangSourceLocation) c_uint;456pub extern fn ZigClangSourceManager_getSpellingLineNumber(arg0: ?*const struct_ZigClangSourceManager, Loc: struct_ZigClangSourceLocation) c_uint;
...@@ -840,16 +486,16 @@ pub extern fn ZigClangQualType_eq(arg0: struct_ZigClangQualType, arg1: struct_Zi...@@ -840,16 +486,16 @@ pub extern fn ZigClangQualType_eq(arg0: struct_ZigClangQualType, arg1: struct_Zi
840pub extern fn ZigClangQualType_isConstQualified(arg0: struct_ZigClangQualType) bool;486pub extern fn ZigClangQualType_isConstQualified(arg0: struct_ZigClangQualType) bool;
841pub extern fn ZigClangQualType_isVolatileQualified(arg0: struct_ZigClangQualType) bool;487pub extern fn ZigClangQualType_isVolatileQualified(arg0: struct_ZigClangQualType) bool;
842pub extern fn ZigClangQualType_isRestrictQualified(arg0: struct_ZigClangQualType) bool;488pub extern fn ZigClangQualType_isRestrictQualified(arg0: struct_ZigClangQualType) bool;
843pub extern fn ZigClangType_getTypeClass(self: ?*const struct_ZigClangType) enum_ZigClangTypeClass;489pub extern fn ZigClangType_getTypeClass(self: ?*const struct_ZigClangType) ZigClangTypeClass;
844pub extern fn ZigClangType_isVoidType(self: ?*const struct_ZigClangType) bool;490pub extern fn ZigClangType_isVoidType(self: ?*const struct_ZigClangType) bool;
845pub extern fn ZigClangType_getTypeClassName(self: *const struct_ZigClangType) [*]const u8;491pub extern fn ZigClangType_getTypeClassName(self: *const struct_ZigClangType) [*]const u8;
846pub extern fn ZigClangStmt_getBeginLoc(self: ?*const struct_ZigClangStmt) struct_ZigClangSourceLocation;492pub extern fn ZigClangStmt_getBeginLoc(self: ?*const struct_ZigClangStmt) struct_ZigClangSourceLocation;
847pub extern fn ZigClangStmt_getStmtClass(self: ?*const struct_ZigClangStmt) enum_ZigClangStmtClass;493pub extern fn ZigClangStmt_getStmtClass(self: ?*const struct_ZigClangStmt) ZigClangStmtClass;
848pub extern fn ZigClangStmt_classof_Expr(self: ?*const struct_ZigClangStmt) bool;494pub extern fn ZigClangStmt_classof_Expr(self: ?*const struct_ZigClangStmt) bool;
849pub extern fn ZigClangExpr_getStmtClass(self: ?*const struct_ZigClangExpr) enum_ZigClangStmtClass;495pub extern fn ZigClangExpr_getStmtClass(self: ?*const struct_ZigClangExpr) ZigClangStmtClass;
850pub extern fn ZigClangExpr_getType(self: ?*const struct_ZigClangExpr) struct_ZigClangQualType;496pub extern fn ZigClangExpr_getType(self: ?*const struct_ZigClangExpr) struct_ZigClangQualType;
851pub extern fn ZigClangExpr_getBeginLoc(self: ?*const struct_ZigClangExpr) struct_ZigClangSourceLocation;497pub extern fn ZigClangExpr_getBeginLoc(self: ?*const struct_ZigClangExpr) struct_ZigClangSourceLocation;
852pub extern fn ZigClangAPValue_getKind(self: ?*const struct_ZigClangAPValue) enum_ZigClangAPValueKind;498pub extern fn ZigClangAPValue_getKind(self: ?*const struct_ZigClangAPValue) ZigClangAPValueKind;
853pub extern fn ZigClangAPValue_getInt(self: ?*const struct_ZigClangAPValue) ?*const struct_ZigClangAPSInt;499pub extern fn ZigClangAPValue_getInt(self: ?*const struct_ZigClangAPValue) ?*const struct_ZigClangAPSInt;
854pub extern fn ZigClangAPValue_getArrayInitializedElts(self: ?*const struct_ZigClangAPValue) c_uint;500pub extern fn ZigClangAPValue_getArrayInitializedElts(self: ?*const struct_ZigClangAPValue) c_uint;
855pub extern fn ZigClangAPValue_getArrayInitializedElt(self: ?*const struct_ZigClangAPValue, i: c_uint) ?*const struct_ZigClangAPValue;501pub extern fn ZigClangAPValue_getArrayInitializedElt(self: ?*const struct_ZigClangAPValue, i: c_uint) ?*const struct_ZigClangAPValue;
...@@ -867,6 +513,11 @@ pub extern fn ZigClangASTUnit_delete(arg0: ?*struct_ZigClangASTUnit) void;...@@ -867,6 +513,11 @@ pub extern fn ZigClangASTUnit_delete(arg0: ?*struct_ZigClangASTUnit) void;
867513
868pub extern fn ZigClangFunctionDecl_getType(self: *const struct_ZigClangFunctionDecl) struct_ZigClangQualType;514pub extern fn ZigClangFunctionDecl_getType(self: *const struct_ZigClangFunctionDecl) struct_ZigClangQualType;
869pub extern fn ZigClangFunctionDecl_getLocation(self: *const struct_ZigClangFunctionDecl) struct_ZigClangSourceLocation;515pub extern fn ZigClangFunctionDecl_getLocation(self: *const struct_ZigClangFunctionDecl) struct_ZigClangSourceLocation;
516pub extern fn ZigClangBuiltinType_getKind(self: *const struct_ZigClangBuiltinType) ZigClangBuiltinTypeKind;
517
518pub extern fn ZigClangFunctionType_getNoReturnAttr(self: *const ZigClangFunctionType) bool;
519pub extern fn ZigClangFunctionType_getCallConv(self: *const ZigClangFunctionType) ZigClangCallingConv;
520pub extern fn ZigClangFunctionType_getReturnType(self: *const ZigClangFunctionType) ZigClangQualType;
870521
871pub const ZigClangSourceLocation = struct_ZigClangSourceLocation;522pub const ZigClangSourceLocation = struct_ZigClangSourceLocation;
872pub const ZigClangQualType = struct_ZigClangQualType;523pub const ZigClangQualType = struct_ZigClangQualType;
...@@ -942,12 +593,6 @@ pub const ZigClangUnaryOperator = struct_ZigClangUnaryOperator;...@@ -942,12 +593,6 @@ pub const ZigClangUnaryOperator = struct_ZigClangUnaryOperator;
942pub const ZigClangValueDecl = struct_ZigClangValueDecl;593pub const ZigClangValueDecl = struct_ZigClangValueDecl;
943pub const ZigClangVarDecl = struct_ZigClangVarDecl;594pub const ZigClangVarDecl = struct_ZigClangVarDecl;
944pub const ZigClangWhileStmt = struct_ZigClangWhileStmt;595pub const ZigClangWhileStmt = struct_ZigClangWhileStmt;
945pub const ZigClangBO = enum_ZigClangBO;
946pub const ZigClangUO = enum_ZigClangUO;
947pub const ZigClangTypeClass = enum_ZigClangTypeClass;
948pub const ZigClangStmtClass = enum_ZigClangStmtClass;
949pub const ZigClangCK = enum_ZigClangCK;
950pub const ZigClangAPValueKind = enum_ZigClangAPValueKind;
951596
952pub const struct_ZigClangSourceLocation = extern struct {597pub const struct_ZigClangSourceLocation = extern struct {
953 ID: c_uint,598 ID: c_uint,
...@@ -1060,3 +705,143 @@ pub const ZigClangDeclKind = extern enum {...@@ -1060,3 +705,143 @@ pub const ZigClangDeclKind = extern enum {
1060pub const struct_ZigClangQualType = extern struct {705pub const struct_ZigClangQualType = extern struct {
1061 ptr: ?*c_void,706 ptr: ?*c_void,
1062};707};
708
709pub const ZigClangBuiltinTypeKind = extern enum {
710 OCLImage1dRO,
711 OCLImage1dArrayRO,
712 OCLImage1dBufferRO,
713 OCLImage2dRO,
714 OCLImage2dArrayRO,
715 OCLImage2dDepthRO,
716 OCLImage2dArrayDepthRO,
717 OCLImage2dMSAARO,
718 OCLImage2dArrayMSAARO,
719 OCLImage2dMSAADepthRO,
720 OCLImage2dArrayMSAADepthRO,
721 OCLImage3dRO,
722 OCLImage1dWO,
723 OCLImage1dArrayWO,
724 OCLImage1dBufferWO,
725 OCLImage2dWO,
726 OCLImage2dArrayWO,
727 OCLImage2dDepthWO,
728 OCLImage2dArrayDepthWO,
729 OCLImage2dMSAAWO,
730 OCLImage2dArrayMSAAWO,
731 OCLImage2dMSAADepthWO,
732 OCLImage2dArrayMSAADepthWO,
733 OCLImage3dWO,
734 OCLImage1dRW,
735 OCLImage1dArrayRW,
736 OCLImage1dBufferRW,
737 OCLImage2dRW,
738 OCLImage2dArrayRW,
739 OCLImage2dDepthRW,
740 OCLImage2dArrayDepthRW,
741 OCLImage2dMSAARW,
742 OCLImage2dArrayMSAARW,
743 OCLImage2dMSAADepthRW,
744 OCLImage2dArrayMSAADepthRW,
745 OCLImage3dRW,
746 OCLIntelSubgroupAVCMcePayload,
747 OCLIntelSubgroupAVCImePayload,
748 OCLIntelSubgroupAVCRefPayload,
749 OCLIntelSubgroupAVCSicPayload,
750 OCLIntelSubgroupAVCMceResult,
751 OCLIntelSubgroupAVCImeResult,
752 OCLIntelSubgroupAVCRefResult,
753 OCLIntelSubgroupAVCSicResult,
754 OCLIntelSubgroupAVCImeResultSingleRefStreamout,
755 OCLIntelSubgroupAVCImeResultDualRefStreamout,
756 OCLIntelSubgroupAVCImeSingleRefStreamin,
757 OCLIntelSubgroupAVCImeDualRefStreamin,
758 Void,
759 Bool,
760 Char_U,
761 UChar,
762 WChar_U,
763 Char8,
764 Char16,
765 Char32,
766 UShort,
767 UInt,
768 ULong,
769 ULongLong,
770 UInt128,
771 Char_S,
772 SChar,
773 WChar_S,
774 Short,
775 Int,
776 Long,
777 LongLong,
778 Int128,
779 ShortAccum,
780 Accum,
781 LongAccum,
782 UShortAccum,
783 UAccum,
784 ULongAccum,
785 ShortFract,
786 Fract,
787 LongFract,
788 UShortFract,
789 UFract,
790 ULongFract,
791 SatShortAccum,
792 SatAccum,
793 SatLongAccum,
794 SatUShortAccum,
795 SatUAccum,
796 SatULongAccum,
797 SatShortFract,
798 SatFract,
799 SatLongFract,
800 SatUShortFract,
801 SatUFract,
802 SatULongFract,
803 Half,
804 Float,
805 Double,
806 LongDouble,
807 Float16,
808 Float128,
809 NullPtr,
810 ObjCId,
811 ObjCClass,
812 ObjCSel,
813 OCLSampler,
814 OCLEvent,
815 OCLClkEvent,
816 OCLQueue,
817 OCLReserveID,
818 Dependent,
819 Overload,
820 BoundMember,
821 PseudoObject,
822 UnknownAny,
823 BuiltinFn,
824 ARCUnbridgedCast,
825 OMPArraySection,
826};
827
828pub const ZigClangCallingConv = extern enum {
829 C,
830 X86StdCall,
831 X86FastCall,
832 X86ThisCall,
833 X86VectorCall,
834 X86Pascal,
835 Win64,
836 X86_64SysV,
837 X86RegCall,
838 AAPCS,
839 AAPCS_VFP,
840 IntelOclBicc,
841 SpirFunction,
842 OpenCLKernel,
843 Swift,
844 PreserveMost,
845 PreserveAll,
846 AArch64VectorCall,
847};
src-self-hosted/translate_c.zig+98-3
...@@ -11,6 +11,15 @@ pub const Mode = enum {...@@ -11,6 +11,15 @@ pub const Mode = enum {
11 translate,11 translate,
12};12};
1313
14// TODO merge with Type.Fn.CallingConvention
15pub const CallingConvention = enum {
16 auto,
17 c,
18 cold,
19 naked,
20 stdcall,
21};
22
14pub const ClangErrMsg = Stage2ErrorMsg;23pub const ClangErrMsg = Stage2ErrorMsg;
1524
16pub const Error = error{25pub const Error = error{
...@@ -165,9 +174,95 @@ fn transQualType(c: *Context, qt: ZigClangQualType, source_loc: ZigClangSourceLo...@@ -165,9 +174,95 @@ fn transQualType(c: *Context, qt: ZigClangQualType, source_loc: ZigClangSourceLo
165}174}
166175
167fn transType(c: *Context, ty: *const ZigClangType, source_loc: ZigClangSourceLocation) !*ast.Node {176fn transType(c: *Context, ty: *const ZigClangType, source_loc: ZigClangSourceLocation) !*ast.Node {
168 const type_name = c.str(ZigClangType_getTypeClassName(ty));177 switch (ZigClangType_getTypeClass(ty)) {
169 try emitWarning(c, source_loc, "unsupported type: '{}'", type_name);178 .Builtin => {
170 return error.UnsupportedType;179 const builtin_ty = @ptrCast(*const ZigClangBuiltinType, ty);
180 switch (ZigClangBuiltinType_getKind(builtin_ty)) {
181 else => {
182 try emitWarning(c, source_loc, "unsupported builtin type");
183 return error.UnsupportedType;
184 },
185 }
186 },
187 .FunctionProto => {
188 const fn_ty = @ptrCast(*const ZigClangFunctionType, ty);
189 const cc = switch (ZigClangFunctionType_getCallConv(fn_ty)) {
190 .C => CallingConvention.c,
191 .X86StdCall => CallingConvention.stdcall,
192 .X86FastCall => {
193 try emitWarning(c, source_loc, "unsupported calling convention: x86 fastcall");
194 return error.UnsupportedType;
195 },
196 .X86ThisCall => {
197 try emitWarning(c, source_loc, "unsupported calling convention: x86 thiscall");
198 return error.UnsupportedType;
199 },
200 .X86VectorCall => {
201 try emitWarning(c, source_loc, "unsupported calling convention: x86 vectorcall");
202 return error.UnsupportedType;
203 },
204 .X86Pascal => {
205 try emitWarning(c, source_loc, "unsupported calling convention: x86 pascal");
206 return error.UnsupportedType;
207 },
208 .Win64 => {
209 try emitWarning(c, source_loc, "unsupported calling convention: win64");
210 return error.UnsupportedType;
211 },
212 .X86_64SysV => {
213 try emitWarning(c, source_loc, "unsupported calling convention: x86 64sysv");
214 return error.UnsupportedType;
215 },
216 .X86RegCall => {
217 try emitWarning(c, source_loc, "unsupported calling convention: x86 reg");
218 return error.UnsupportedType;
219 },
220 .AAPCS => {
221 try emitWarning(c, source_loc, "unsupported calling convention: aapcs");
222 return error.UnsupportedType;
223 },
224 .AAPCS_VFP => {
225 try emitWarning(c, source_loc, "unsupported calling convention: aapcs-vfp");
226 return error.UnsupportedType;
227 },
228 .IntelOclBicc => {
229 try emitWarning(c, source_loc, "unsupported calling convention: intel_ocl_bicc");
230 return error.UnsupportedType;
231 },
232 .SpirFunction => {
233 try emitWarning(c, source_loc, "unsupported calling convention: SPIR function");
234 return error.UnsupportedType;
235 },
236 .OpenCLKernel => {
237 try emitWarning(c, source_loc, "unsupported calling convention: OpenCLKernel");
238 return error.UnsupportedType;
239 },
240 .Swift => {
241 try emitWarning(c, source_loc, "unsupported calling convention: Swift");
242 return error.UnsupportedType;
243 },
244 .PreserveMost => {
245 try emitWarning(c, source_loc, "unsupported calling convention: PreserveMost");
246 return error.UnsupportedType;
247 },
248 .PreserveAll => {
249 try emitWarning(c, source_loc, "unsupported calling convention: PreserveAll");
250 return error.UnsupportedType;
251 },
252 .AArch64VectorCall => {
253 try emitWarning(c, source_loc, "unsupported calling convention: AArch64VectorCall");
254 return error.UnsupportedType;
255 },
256 };
257 try emitWarning(c, source_loc, "TODO: implement transType for FunctionProto");
258 return error.UnsupportedType;
259 },
260 else => {
261 const type_name = c.str(ZigClangType_getTypeClassName(ty));
262 try emitWarning(c, source_loc, "unsupported type: '{}'", type_name);
263 return error.UnsupportedType;
264 },
265 }
171}266}
172267
173fn emitWarning(c: *Context, loc: ZigClangSourceLocation, comptime format: []const u8, args: ...) !void {268fn emitWarning(c: *Context, loc: ZigClangSourceLocation, comptime format: []const u8, args: ...) !void {
src/translate_c.cpp+23-23
...@@ -1061,72 +1061,72 @@ static AstNode *trans_type(Context *c, const ZigClangType *ty, ZigClangSourceLoc...@@ -1061,72 +1061,72 @@ static AstNode *trans_type(Context *c, const ZigClangType *ty, ZigClangSourceLoc
1061 case ZigClangType_FunctionProto:1061 case ZigClangType_FunctionProto:
1062 case ZigClangType_FunctionNoProto:1062 case ZigClangType_FunctionNoProto:
1063 {1063 {
1064 const clang::FunctionType *fn_ty = reinterpret_cast<const clang::FunctionType*>(ty);1064 const ZigClangFunctionType *fn_ty = reinterpret_cast<const ZigClangFunctionType*>(ty);
10651065
1066 AstNode *proto_node = trans_create_node(c, NodeTypeFnProto);1066 AstNode *proto_node = trans_create_node(c, NodeTypeFnProto);
1067 switch (fn_ty->getCallConv()) {1067 switch (ZigClangFunctionType_getCallConv(fn_ty)) {
1068 case clang::CC_C: // __attribute__((cdecl))1068 case ZigClangCallingConv_C: // __attribute__((cdecl))
1069 proto_node->data.fn_proto.cc = CallingConventionC;1069 proto_node->data.fn_proto.cc = CallingConventionC;
1070 proto_node->data.fn_proto.is_extern = true;1070 proto_node->data.fn_proto.is_extern = true;
1071 break;1071 break;
1072 case clang::CC_X86StdCall: // __attribute__((stdcall))1072 case ZigClangCallingConv_X86StdCall: // __attribute__((stdcall))
1073 proto_node->data.fn_proto.cc = CallingConventionStdcall;1073 proto_node->data.fn_proto.cc = CallingConventionStdcall;
1074 break;1074 break;
1075 case clang::CC_X86FastCall: // __attribute__((fastcall))1075 case ZigClangCallingConv_X86FastCall: // __attribute__((fastcall))
1076 emit_warning(c, source_loc, "unsupported calling convention: x86 fastcall");1076 emit_warning(c, source_loc, "unsupported calling convention: x86 fastcall");
1077 return nullptr;1077 return nullptr;
1078 case clang::CC_X86ThisCall: // __attribute__((thiscall))1078 case ZigClangCallingConv_X86ThisCall: // __attribute__((thiscall))
1079 emit_warning(c, source_loc, "unsupported calling convention: x86 thiscall");1079 emit_warning(c, source_loc, "unsupported calling convention: x86 thiscall");
1080 return nullptr;1080 return nullptr;
1081 case clang::CC_X86VectorCall: // __attribute__((vectorcall))1081 case ZigClangCallingConv_X86VectorCall: // __attribute__((vectorcall))
1082 emit_warning(c, source_loc, "unsupported calling convention: x86 vectorcall");1082 emit_warning(c, source_loc, "unsupported calling convention: x86 vectorcall");
1083 return nullptr;1083 return nullptr;
1084 case clang::CC_X86Pascal: // __attribute__((pascal))1084 case ZigClangCallingConv_X86Pascal: // __attribute__((pascal))
1085 emit_warning(c, source_loc, "unsupported calling convention: x86 pascal");1085 emit_warning(c, source_loc, "unsupported calling convention: x86 pascal");
1086 return nullptr;1086 return nullptr;
1087 case clang::CC_Win64: // __attribute__((ms_abi))1087 case ZigClangCallingConv_Win64: // __attribute__((ms_abi))
1088 emit_warning(c, source_loc, "unsupported calling convention: win64");1088 emit_warning(c, source_loc, "unsupported calling convention: win64");
1089 return nullptr;1089 return nullptr;
1090 case clang::CC_X86_64SysV: // __attribute__((sysv_abi))1090 case ZigClangCallingConv_X86_64SysV: // __attribute__((sysv_abi))
1091 emit_warning(c, source_loc, "unsupported calling convention: x86 64sysv");1091 emit_warning(c, source_loc, "unsupported calling convention: x86 64sysv");
1092 return nullptr;1092 return nullptr;
1093 case clang::CC_X86RegCall:1093 case ZigClangCallingConv_X86RegCall:
1094 emit_warning(c, source_loc, "unsupported calling convention: x86 reg");1094 emit_warning(c, source_loc, "unsupported calling convention: x86 reg");
1095 return nullptr;1095 return nullptr;
1096 case clang::CC_AAPCS: // __attribute__((pcs("aapcs")))1096 case ZigClangCallingConv_AAPCS: // __attribute__((pcs("aapcs")))
1097 emit_warning(c, source_loc, "unsupported calling convention: aapcs");1097 emit_warning(c, source_loc, "unsupported calling convention: aapcs");
1098 return nullptr;1098 return nullptr;
1099 case clang::CC_AAPCS_VFP: // __attribute__((pcs("aapcs-vfp")))1099 case ZigClangCallingConv_AAPCS_VFP: // __attribute__((pcs("aapcs-vfp")))
1100 emit_warning(c, source_loc, "unsupported calling convention: aapcs-vfp");1100 emit_warning(c, source_loc, "unsupported calling convention: aapcs-vfp");
1101 return nullptr;1101 return nullptr;
1102 case clang::CC_IntelOclBicc: // __attribute__((intel_ocl_bicc))1102 case ZigClangCallingConv_IntelOclBicc: // __attribute__((intel_ocl_bicc))
1103 emit_warning(c, source_loc, "unsupported calling convention: intel_ocl_bicc");1103 emit_warning(c, source_loc, "unsupported calling convention: intel_ocl_bicc");
1104 return nullptr;1104 return nullptr;
1105 case clang::CC_SpirFunction: // default for OpenCL functions on SPIR target1105 case ZigClangCallingConv_SpirFunction: // default for OpenCL functions on SPIR target
1106 emit_warning(c, source_loc, "unsupported calling convention: SPIR function");1106 emit_warning(c, source_loc, "unsupported calling convention: SPIR function");
1107 return nullptr;1107 return nullptr;
1108 case clang::CC_OpenCLKernel:1108 case ZigClangCallingConv_OpenCLKernel:
1109 emit_warning(c, source_loc, "unsupported calling convention: OpenCLKernel");1109 emit_warning(c, source_loc, "unsupported calling convention: OpenCLKernel");
1110 return nullptr;1110 return nullptr;
1111 case clang::CC_Swift:1111 case ZigClangCallingConv_Swift:
1112 emit_warning(c, source_loc, "unsupported calling convention: Swift");1112 emit_warning(c, source_loc, "unsupported calling convention: Swift");
1113 return nullptr;1113 return nullptr;
1114 case clang::CC_PreserveMost:1114 case ZigClangCallingConv_PreserveMost:
1115 emit_warning(c, source_loc, "unsupported calling convention: PreserveMost");1115 emit_warning(c, source_loc, "unsupported calling convention: PreserveMost");
1116 return nullptr;1116 return nullptr;
1117 case clang::CC_PreserveAll:1117 case ZigClangCallingConv_PreserveAll:
1118 emit_warning(c, source_loc, "unsupported calling convention: PreserveAll");1118 emit_warning(c, source_loc, "unsupported calling convention: PreserveAll");
1119 return nullptr;1119 return nullptr;
1120 case clang::CC_AArch64VectorCall:1120 case ZigClangCallingConv_AArch64VectorCall:
1121 emit_warning(c, source_loc, "unsupported calling convention: AArch64VectorCall");1121 emit_warning(c, source_loc, "unsupported calling convention: AArch64VectorCall");
1122 return nullptr;1122 return nullptr;
1123 }1123 }
11241124
1125 if (fn_ty->getNoReturnAttr()) {1125 if (ZigClangFunctionType_getNoReturnAttr(fn_ty)) {
1126 proto_node->data.fn_proto.return_type = trans_create_node_symbol_str(c, "noreturn");1126 proto_node->data.fn_proto.return_type = trans_create_node_symbol_str(c, "noreturn");
1127 } else {1127 } else {
1128 proto_node->data.fn_proto.return_type = trans_qual_type(c, bitcast(fn_ty->getReturnType()),1128 proto_node->data.fn_proto.return_type = trans_qual_type(c,
1129 source_loc);1129 ZigClangFunctionType_getReturnType(fn_ty), source_loc);
1130 if (proto_node->data.fn_proto.return_type == nullptr) {1130 if (proto_node->data.fn_proto.return_type == nullptr) {
1131 emit_warning(c, source_loc, "unsupported function proto return type");1131 emit_warning(c, source_loc, "unsupported function proto return type");
1132 return nullptr;1132 return nullptr;
src/zig_clang.cpp+58
...@@ -1193,6 +1193,49 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBuiltinFn == clang::B...@@ -1193,6 +1193,49 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBuiltinFn == clang::B
1193static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeARCUnbridgedCast == clang::BuiltinType::ARCUnbridgedCast, "");1193static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeARCUnbridgedCast == clang::BuiltinType::ARCUnbridgedCast, "");
1194static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOMPArraySection == clang::BuiltinType::OMPArraySection, "");1194static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOMPArraySection == clang::BuiltinType::OMPArraySection, "");
11951195
1196void ZigClang_detect_enum_CallingConv(clang::CallingConv x) {
1197 switch (x) {
1198 case clang::CC_C:
1199 case clang::CC_X86StdCall:
1200 case clang::CC_X86FastCall:
1201 case clang::CC_X86ThisCall:
1202 case clang::CC_X86VectorCall:
1203 case clang::CC_X86Pascal:
1204 case clang::CC_Win64:
1205 case clang::CC_X86_64SysV:
1206 case clang::CC_X86RegCall:
1207 case clang::CC_AAPCS:
1208 case clang::CC_AAPCS_VFP:
1209 case clang::CC_IntelOclBicc:
1210 case clang::CC_SpirFunction:
1211 case clang::CC_OpenCLKernel:
1212 case clang::CC_Swift:
1213 case clang::CC_PreserveMost:
1214 case clang::CC_PreserveAll:
1215 case clang::CC_AArch64VectorCall:
1216 break;
1217 }
1218}
1219
1220static_assert((clang::CallingConv)ZigClangCallingConv_C == clang::CC_C, "");
1221static_assert((clang::CallingConv)ZigClangCallingConv_X86StdCall == clang::CC_X86StdCall, "");
1222static_assert((clang::CallingConv)ZigClangCallingConv_X86FastCall == clang::CC_X86FastCall, "");
1223static_assert((clang::CallingConv)ZigClangCallingConv_X86ThisCall == clang::CC_X86ThisCall, "");
1224static_assert((clang::CallingConv)ZigClangCallingConv_X86VectorCall == clang::CC_X86VectorCall, "");
1225static_assert((clang::CallingConv)ZigClangCallingConv_X86Pascal == clang::CC_X86Pascal, "");
1226static_assert((clang::CallingConv)ZigClangCallingConv_Win64 == clang::CC_Win64, "");
1227static_assert((clang::CallingConv)ZigClangCallingConv_X86_64SysV == clang::CC_X86_64SysV, "");
1228static_assert((clang::CallingConv)ZigClangCallingConv_X86RegCall == clang::CC_X86RegCall, "");
1229static_assert((clang::CallingConv)ZigClangCallingConv_AAPCS == clang::CC_AAPCS, "");
1230static_assert((clang::CallingConv)ZigClangCallingConv_AAPCS_VFP == clang::CC_AAPCS_VFP, "");
1231static_assert((clang::CallingConv)ZigClangCallingConv_IntelOclBicc == clang::CC_IntelOclBicc, "");
1232static_assert((clang::CallingConv)ZigClangCallingConv_SpirFunction == clang::CC_SpirFunction, "");
1233static_assert((clang::CallingConv)ZigClangCallingConv_OpenCLKernel == clang::CC_OpenCLKernel, "");
1234static_assert((clang::CallingConv)ZigClangCallingConv_Swift == clang::CC_Swift, "");
1235static_assert((clang::CallingConv)ZigClangCallingConv_PreserveMost == clang::CC_PreserveMost, "");
1236static_assert((clang::CallingConv)ZigClangCallingConv_PreserveAll == clang::CC_PreserveAll, "");
1237static_assert((clang::CallingConv)ZigClangCallingConv_AArch64VectorCall == clang::CC_AArch64VectorCall, "");
1238
11961239
1197static_assert(sizeof(ZigClangSourceLocation) == sizeof(clang::SourceLocation), "");1240static_assert(sizeof(ZigClangSourceLocation) == sizeof(clang::SourceLocation), "");
1198static ZigClangSourceLocation bitcast(clang::SourceLocation src) {1241static ZigClangSourceLocation bitcast(clang::SourceLocation src) {
...@@ -1693,3 +1736,18 @@ enum ZigClangBuiltinTypeKind ZigClangBuiltinType_getKind(const struct ZigClangBu...@@ -1693,3 +1736,18 @@ enum ZigClangBuiltinTypeKind ZigClangBuiltinType_getKind(const struct ZigClangBu
1693 auto casted = reinterpret_cast<const clang::BuiltinType *>(self);1736 auto casted = reinterpret_cast<const clang::BuiltinType *>(self);
1694 return (ZigClangBuiltinTypeKind)casted->getKind();1737 return (ZigClangBuiltinTypeKind)casted->getKind();
1695}1738}
1739
1740bool ZigClangFunctionType_getNoReturnAttr(const struct ZigClangFunctionType *self) {
1741 auto casted = reinterpret_cast<const clang::FunctionType *>(self);
1742 return casted->getNoReturnAttr();
1743}
1744
1745enum ZigClangCallingConv ZigClangFunctionType_getCallConv(const struct ZigClangFunctionType *self) {
1746 auto casted = reinterpret_cast<const clang::FunctionType *>(self);
1747 return (ZigClangCallingConv)casted->getCallConv();
1748}
1749
1750struct ZigClangQualType ZigClangFunctionType_getReturnType(const struct ZigClangFunctionType *self) {
1751 auto casted = reinterpret_cast<const clang::FunctionType *>(self);
1752 return bitcast(casted->getReturnType());
1753}
src/zig_clang.h+26
...@@ -101,6 +101,7 @@ struct ZigClangUnaryOperator;...@@ -101,6 +101,7 @@ struct ZigClangUnaryOperator;
101struct ZigClangValueDecl;101struct ZigClangValueDecl;
102struct ZigClangVarDecl;102struct ZigClangVarDecl;
103struct ZigClangWhileStmt;103struct ZigClangWhileStmt;
104struct ZigClangFunctionType;
104105
105enum ZigClangBO {106enum ZigClangBO {
106 ZigClangBO_PtrMemD,107 ZigClangBO_PtrMemD,
...@@ -678,6 +679,27 @@ enum ZigClangBuiltinTypeKind {...@@ -678,6 +679,27 @@ enum ZigClangBuiltinTypeKind {
678 ZigClangBuiltinTypeOMPArraySection,679 ZigClangBuiltinTypeOMPArraySection,
679};680};
680681
682enum ZigClangCallingConv {
683 ZigClangCallingConv_C, // __attribute__((cdecl))
684 ZigClangCallingConv_X86StdCall, // __attribute__((stdcall))
685 ZigClangCallingConv_X86FastCall, // __attribute__((fastcall))
686 ZigClangCallingConv_X86ThisCall, // __attribute__((thiscall))
687 ZigClangCallingConv_X86VectorCall, // __attribute__((vectorcall))
688 ZigClangCallingConv_X86Pascal, // __attribute__((pascal))
689 ZigClangCallingConv_Win64, // __attribute__((ms_abi))
690 ZigClangCallingConv_X86_64SysV, // __attribute__((sysv_abi))
691 ZigClangCallingConv_X86RegCall, // __attribute__((regcall))
692 ZigClangCallingConv_AAPCS, // __attribute__((pcs("aapcs")))
693 ZigClangCallingConv_AAPCS_VFP, // __attribute__((pcs("aapcs-vfp")))
694 ZigClangCallingConv_IntelOclBicc, // __attribute__((intel_ocl_bicc))
695 ZigClangCallingConv_SpirFunction, // default for OpenCL functions on SPIR target
696 ZigClangCallingConv_OpenCLKernel, // inferred for OpenCL kernels
697 ZigClangCallingConv_Swift, // __attribute__((swiftcall))
698 ZigClangCallingConv_PreserveMost, // __attribute__((preserve_most))
699 ZigClangCallingConv_PreserveAll, // __attribute__((preserve_all))
700 ZigClangCallingConv_AArch64VectorCall, // __attribute__((aarch64_vector_pcs))
701};
702
681ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const struct ZigClangSourceManager *,703ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const struct ZigClangSourceManager *,
682 struct ZigClangSourceLocation Loc);704 struct ZigClangSourceLocation Loc);
683ZIG_EXTERN_C const char *ZigClangSourceManager_getFilename(const struct ZigClangSourceManager *,705ZIG_EXTERN_C const char *ZigClangSourceManager_getFilename(const struct ZigClangSourceManager *,
...@@ -776,4 +798,8 @@ ZIG_EXTERN_C const struct ZigClangExpr *ZigClangAPValueLValueBase_dyn_cast_Expr(...@@ -776,4 +798,8 @@ ZIG_EXTERN_C const struct ZigClangExpr *ZigClangAPValueLValueBase_dyn_cast_Expr(
776798
777ZIG_EXTERN_C enum ZigClangBuiltinTypeKind ZigClangBuiltinType_getKind(const struct ZigClangBuiltinType *self);799ZIG_EXTERN_C enum ZigClangBuiltinTypeKind ZigClangBuiltinType_getKind(const struct ZigClangBuiltinType *self);
778800
801ZIG_EXTERN_C bool ZigClangFunctionType_getNoReturnAttr(const struct ZigClangFunctionType *self);
802ZIG_EXTERN_C enum ZigClangCallingConv ZigClangFunctionType_getCallConv(const struct ZigClangFunctionType *self);
803ZIG_EXTERN_C struct ZigClangQualType ZigClangFunctionType_getReturnType(const struct ZigClangFunctionType *self);
804
779#endif805#endif