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
signature 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();
6969pub const struct_ZigClangValueDecl = @OpaqueType();
7070pub const struct_ZigClangVarDecl = @OpaqueType();
7171pub const struct_ZigClangWhileStmt = @OpaqueType();
72pub const ZigClangBO_PtrMemD = enum_ZigClangBO._PtrMemD;
73pub const ZigClangBO_PtrMemI = enum_ZigClangBO._PtrMemI;
74pub const ZigClangBO_Mul = enum_ZigClangBO._Mul;
75pub const ZigClangBO_Div = enum_ZigClangBO._Div;
76pub const ZigClangBO_Rem = enum_ZigClangBO._Rem;
77pub const ZigClangBO_Add = enum_ZigClangBO._Add;
78pub const ZigClangBO_Sub = enum_ZigClangBO._Sub;
79pub const ZigClangBO_Shl = enum_ZigClangBO._Shl;
80pub const ZigClangBO_Shr = enum_ZigClangBO._Shr;
81pub const ZigClangBO_Cmp = enum_ZigClangBO._Cmp;
82pub const ZigClangBO_LT = enum_ZigClangBO._LT;
83pub const ZigClangBO_GT = enum_ZigClangBO._GT;
84pub const ZigClangBO_LE = enum_ZigClangBO._LE;
85pub const ZigClangBO_GE = enum_ZigClangBO._GE;
86pub const ZigClangBO_EQ = enum_ZigClangBO._EQ;
87pub const ZigClangBO_NE = enum_ZigClangBO._NE;
88pub const ZigClangBO_And = enum_ZigClangBO._And;
89pub const ZigClangBO_Xor = enum_ZigClangBO._Xor;
90pub const ZigClangBO_Or = enum_ZigClangBO._Or;
91pub const ZigClangBO_LAnd = enum_ZigClangBO._LAnd;
92pub const ZigClangBO_LOr = enum_ZigClangBO._LOr;
93pub const ZigClangBO_Assign = enum_ZigClangBO._Assign;
94pub const ZigClangBO_MulAssign = enum_ZigClangBO._MulAssign;
95pub const ZigClangBO_DivAssign = enum_ZigClangBO._DivAssign;
96pub const ZigClangBO_RemAssign = enum_ZigClangBO._RemAssign;
97pub const ZigClangBO_AddAssign = enum_ZigClangBO._AddAssign;
98pub const ZigClangBO_SubAssign = enum_ZigClangBO._SubAssign;
99pub const ZigClangBO_ShlAssign = enum_ZigClangBO._ShlAssign;
100pub const ZigClangBO_ShrAssign = enum_ZigClangBO._ShrAssign;
101pub const ZigClangBO_AndAssign = enum_ZigClangBO._AndAssign;
102pub const ZigClangBO_XorAssign = enum_ZigClangBO._XorAssign;
103pub const ZigClangBO_OrAssign = enum_ZigClangBO._OrAssign;
104pub const ZigClangBO_Comma = enum_ZigClangBO._Comma;
105pub const enum_ZigClangBO = extern enum {
106 _PtrMemD,
107 _PtrMemI,
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,
72pub const ZigClangFunctionType = @OpaqueType();
73
74pub const ZigClangBO = extern enum {
75 PtrMemD,
76 PtrMemI,
77 Mul,
78 Div,
79 Rem,
80 Add,
81 Sub,
82 Shl,
83 Shr,
84 Cmp,
85 LT,
86 GT,
87 LE,
88 GE,
89 EQ,
90 NE,
91 And,
92 Xor,
93 Or,
94 LAnd,
95 LOr,
96 Assign,
97 MulAssign,
98 DivAssign,
99 RemAssign,
100 AddAssign,
101 SubAssign,
102 ShlAssign,
103 ShrAssign,
104 AndAssign,
105 XorAssign,
106 OrAssign,
107 Comma,
139108};
140pub const ZigClangUO_PostInc = enum_ZigClangUO._PostInc;
141pub const ZigClangUO_PostDec = enum_ZigClangUO._PostDec;
142pub const ZigClangUO_PreInc = enum_ZigClangUO._PreInc;
143pub const ZigClangUO_PreDec = enum_ZigClangUO._PreDec;
144pub const ZigClangUO_AddrOf = enum_ZigClangUO._AddrOf;
145pub const ZigClangUO_Deref = enum_ZigClangUO._Deref;
146pub const ZigClangUO_Plus = enum_ZigClangUO._Plus;
147pub const ZigClangUO_Minus = enum_ZigClangUO._Minus;
148pub const ZigClangUO_Not = enum_ZigClangUO._Not;
149pub const ZigClangUO_LNot = enum_ZigClangUO._LNot;
150pub const ZigClangUO_Real = enum_ZigClangUO._Real;
151pub const ZigClangUO_Imag = enum_ZigClangUO._Imag;
152pub const ZigClangUO_Extension = enum_ZigClangUO._Extension;
153pub const ZigClangUO_Coawait = enum_ZigClangUO._Coawait;
154pub const enum_ZigClangUO = extern enum {
155 _PostInc,
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,
109
110pub const ZigClangUO = extern enum {
111 PostInc,
112 PostDec,
113 PreInc,
114 PreDec,
115 AddrOf,
116 Deref,
117 Plus,
118 Minus,
119 Not,
120 LNot,
121 Real,
122 Imag,
123 Extension,
124 Coawait,
169125};
170pub const ZigClangType_Builtin = enum_ZigClangTypeClass.ZigClangType_Builtin;
171pub const ZigClangType_Complex = enum_ZigClangTypeClass.ZigClangType_Complex;
172pub const ZigClangType_Pointer = enum_ZigClangTypeClass.ZigClangType_Pointer;
173pub const ZigClangType_BlockPointer = enum_ZigClangTypeClass.ZigClangType_BlockPointer;
174pub const ZigClangType_LValueReference = enum_ZigClangTypeClass.ZigClangType_LValueReference;
175pub const ZigClangType_RValueReference = enum_ZigClangTypeClass.ZigClangType_RValueReference;
176pub const ZigClangType_MemberPointer = enum_ZigClangTypeClass.ZigClangType_MemberPointer;
177pub const ZigClangType_ConstantArray = enum_ZigClangTypeClass.ZigClangType_ConstantArray;
178pub const ZigClangType_IncompleteArray = enum_ZigClangTypeClass.ZigClangType_IncompleteArray;
179pub const ZigClangType_VariableArray = enum_ZigClangTypeClass.ZigClangType_VariableArray;
180pub const ZigClangType_DependentSizedArray = enum_ZigClangTypeClass.ZigClangType_DependentSizedArray;
181pub const ZigClangType_DependentSizedExtVector = enum_ZigClangTypeClass.ZigClangType_DependentSizedExtVector;
182pub const ZigClangType_DependentAddressSpace = enum_ZigClangTypeClass.ZigClangType_DependentAddressSpace;
183pub const ZigClangType_Vector = enum_ZigClangTypeClass.ZigClangType_Vector;
184pub const ZigClangType_DependentVector = enum_ZigClangTypeClass.ZigClangType_DependentVector;
185pub const ZigClangType_ExtVector = enum_ZigClangTypeClass.ZigClangType_ExtVector;
186pub const ZigClangType_FunctionProto = enum_ZigClangTypeClass.ZigClangType_FunctionProto;
187pub const ZigClangType_FunctionNoProto = enum_ZigClangTypeClass.ZigClangType_FunctionNoProto;
188pub const ZigClangType_UnresolvedUsing = enum_ZigClangTypeClass.ZigClangType_UnresolvedUsing;
189pub const ZigClangType_Paren = enum_ZigClangTypeClass.ZigClangType_Paren;
190pub const ZigClangType_Typedef = enum_ZigClangTypeClass.ZigClangType_Typedef;
191pub const ZigClangType_Adjusted = enum_ZigClangTypeClass.ZigClangType_Adjusted;
192pub const ZigClangType_Decayed = enum_ZigClangTypeClass.ZigClangType_Decayed;
193pub const ZigClangType_TypeOfExpr = enum_ZigClangTypeClass.ZigClangType_TypeOfExpr;
194pub const ZigClangType_TypeOf = enum_ZigClangTypeClass.ZigClangType_TypeOf;
195pub const ZigClangType_Decltype = enum_ZigClangTypeClass.ZigClangType_Decltype;
196pub const ZigClangType_UnaryTransform = enum_ZigClangTypeClass.ZigClangType_UnaryTransform;
197pub const ZigClangType_Record = enum_ZigClangTypeClass.ZigClangType_Record;
198pub const ZigClangType_Enum = enum_ZigClangTypeClass.ZigClangType_Enum;
199pub const ZigClangType_Elaborated = enum_ZigClangTypeClass.ZigClangType_Elaborated;
200pub const ZigClangType_Attributed = enum_ZigClangTypeClass.ZigClangType_Attributed;
201pub const ZigClangType_TemplateTypeParm = enum_ZigClangTypeClass.ZigClangType_TemplateTypeParm;
202pub const ZigClangType_SubstTemplateTypeParm = enum_ZigClangTypeClass.ZigClangType_SubstTemplateTypeParm;
203pub const ZigClangType_SubstTemplateTypeParmPack = enum_ZigClangTypeClass.ZigClangType_SubstTemplateTypeParmPack;
204pub const ZigClangType_TemplateSpecialization = enum_ZigClangTypeClass.ZigClangType_TemplateSpecialization;
205pub const ZigClangType_Auto = enum_ZigClangTypeClass.ZigClangType_Auto;
206pub const ZigClangType_DeducedTemplateSpecialization = enum_ZigClangTypeClass.ZigClangType_DeducedTemplateSpecialization;
207pub const ZigClangType_InjectedClassName = enum_ZigClangTypeClass.ZigClangType_InjectedClassName;
208pub const ZigClangType_DependentName = enum_ZigClangTypeClass.ZigClangType_DependentName;
209pub const ZigClangType_DependentTemplateSpecialization = enum_ZigClangTypeClass.ZigClangType_DependentTemplateSpecialization;
210pub const ZigClangType_PackExpansion = enum_ZigClangTypeClass.ZigClangType_PackExpansion;
211pub const ZigClangType_ObjCTypeParam = enum_ZigClangTypeClass.ZigClangType_ObjCTypeParam;
212pub const ZigClangType_ObjCObject = enum_ZigClangTypeClass.ZigClangType_ObjCObject;
213pub const ZigClangType_ObjCInterface = enum_ZigClangTypeClass.ZigClangType_ObjCInterface;
214pub const ZigClangType_ObjCObjectPointer = enum_ZigClangTypeClass.ZigClangType_ObjCObjectPointer;
215pub const ZigClangType_Pipe = enum_ZigClangTypeClass.ZigClangType_Pipe;
216pub const ZigClangType_Atomic = enum_ZigClangTypeClass.ZigClangType_Atomic;
217pub const enum_ZigClangTypeClass = extern enum {
218 ZigClangType_Builtin,
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,
126
127pub const ZigClangTypeClass = extern enum {
128 Builtin,
129 Complex,
130 Pointer,
131 BlockPointer,
132 LValueReference,
133 RValueReference,
134 MemberPointer,
135 ConstantArray,
136 IncompleteArray,
137 VariableArray,
138 DependentSizedArray,
139 DependentSizedExtVector,
140 DependentAddressSpace,
141 Vector,
142 DependentVector,
143 ExtVector,
144 FunctionProto,
145 FunctionNoProto,
146 UnresolvedUsing,
147 Paren,
148 Typedef,
149 Adjusted,
150 Decayed,
151 TypeOfExpr,
152 TypeOf,
153 Decltype,
154 UnaryTransform,
155 Record,
156 Enum,
157 Elaborated,
158 Attributed,
159 TemplateTypeParm,
160 SubstTemplateTypeParm,
161 SubstTemplateTypeParmPack,
162 TemplateSpecialization,
163 Auto,
164 DeducedTemplateSpecialization,
165 InjectedClassName,
166 DependentName,
167 DependentTemplateSpecialization,
168 PackExpansion,
169 ObjCTypeParam,
170 ObjCObject,
171 ObjCInterface,
172 ObjCObjectPointer,
173 Pipe,
174 Atomic,
265175};
266pub const ZigClangStmt_NoStmtClass = enum_ZigClangStmtClass.ZigClangStmt_NoStmtClass;
267pub const ZigClangStmt_GCCAsmStmtClass = enum_ZigClangStmtClass.ZigClangStmt_GCCAsmStmtClass;
268pub const ZigClangStmt_MSAsmStmtClass = enum_ZigClangStmtClass.ZigClangStmt_MSAsmStmtClass;
269pub const ZigClangStmt_AttributedStmtClass = enum_ZigClangStmtClass.ZigClangStmt_AttributedStmtClass;
270pub const ZigClangStmt_BreakStmtClass = enum_ZigClangStmtClass.ZigClangStmt_BreakStmtClass;
271pub const ZigClangStmt_CXXCatchStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CXXCatchStmtClass;
272pub const ZigClangStmt_CXXForRangeStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CXXForRangeStmtClass;
273pub const ZigClangStmt_CXXTryStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CXXTryStmtClass;
274pub const ZigClangStmt_CapturedStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CapturedStmtClass;
275pub const ZigClangStmt_CompoundStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CompoundStmtClass;
276pub const ZigClangStmt_ContinueStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ContinueStmtClass;
277pub const ZigClangStmt_CoreturnStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CoreturnStmtClass;
278pub const ZigClangStmt_CoroutineBodyStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CoroutineBodyStmtClass;
279pub const ZigClangStmt_DeclStmtClass = enum_ZigClangStmtClass.ZigClangStmt_DeclStmtClass;
280pub const ZigClangStmt_DoStmtClass = enum_ZigClangStmtClass.ZigClangStmt_DoStmtClass;
281pub const ZigClangStmt_BinaryConditionalOperatorClass = enum_ZigClangStmtClass.ZigClangStmt_BinaryConditionalOperatorClass;
282pub const ZigClangStmt_ConditionalOperatorClass = enum_ZigClangStmtClass.ZigClangStmt_ConditionalOperatorClass;
283pub const ZigClangStmt_AddrLabelExprClass = enum_ZigClangStmtClass.ZigClangStmt_AddrLabelExprClass;
284pub const ZigClangStmt_ArrayInitIndexExprClass = enum_ZigClangStmtClass.ZigClangStmt_ArrayInitIndexExprClass;
285pub const ZigClangStmt_ArrayInitLoopExprClass = enum_ZigClangStmtClass.ZigClangStmt_ArrayInitLoopExprClass;
286pub const ZigClangStmt_ArraySubscriptExprClass = enum_ZigClangStmtClass.ZigClangStmt_ArraySubscriptExprClass;
287pub const ZigClangStmt_ArrayTypeTraitExprClass = enum_ZigClangStmtClass.ZigClangStmt_ArrayTypeTraitExprClass;
288pub const ZigClangStmt_AsTypeExprClass = enum_ZigClangStmtClass.ZigClangStmt_AsTypeExprClass;
289pub const ZigClangStmt_AtomicExprClass = enum_ZigClangStmtClass.ZigClangStmt_AtomicExprClass;
290pub const ZigClangStmt_BinaryOperatorClass = enum_ZigClangStmtClass.ZigClangStmt_BinaryOperatorClass;
291pub const ZigClangStmt_CompoundAssignOperatorClass = enum_ZigClangStmtClass.ZigClangStmt_CompoundAssignOperatorClass;
292pub const ZigClangStmt_BlockExprClass = enum_ZigClangStmtClass.ZigClangStmt_BlockExprClass;
293pub const ZigClangStmt_CXXBindTemporaryExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXBindTemporaryExprClass;
294pub const ZigClangStmt_CXXBoolLiteralExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXBoolLiteralExprClass;
295pub const ZigClangStmt_CXXConstructExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXConstructExprClass;
296pub const ZigClangStmt_CXXTemporaryObjectExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXTemporaryObjectExprClass;
297pub const ZigClangStmt_CXXDefaultArgExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXDefaultArgExprClass;
298pub const ZigClangStmt_CXXDefaultInitExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXDefaultInitExprClass;
299pub const ZigClangStmt_CXXDeleteExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXDeleteExprClass;
300pub const ZigClangStmt_CXXDependentScopeMemberExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXDependentScopeMemberExprClass;
301pub const ZigClangStmt_CXXFoldExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXFoldExprClass;
302pub const ZigClangStmt_CXXInheritedCtorInitExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXInheritedCtorInitExprClass;
303pub const ZigClangStmt_CXXNewExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXNewExprClass;
304pub const ZigClangStmt_CXXNoexceptExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXNoexceptExprClass;
305pub const ZigClangStmt_CXXNullPtrLiteralExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXNullPtrLiteralExprClass;
306pub const ZigClangStmt_CXXPseudoDestructorExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXPseudoDestructorExprClass;
307pub const ZigClangStmt_CXXScalarValueInitExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXScalarValueInitExprClass;
308pub const ZigClangStmt_CXXStdInitializerListExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXStdInitializerListExprClass;
309pub const ZigClangStmt_CXXThisExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXThisExprClass;
310pub const ZigClangStmt_CXXThrowExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXThrowExprClass;
311pub const ZigClangStmt_CXXTypeidExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXTypeidExprClass;
312pub const ZigClangStmt_CXXUnresolvedConstructExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXUnresolvedConstructExprClass;
313pub const ZigClangStmt_CXXUuidofExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXUuidofExprClass;
314pub const ZigClangStmt_CallExprClass = enum_ZigClangStmtClass.ZigClangStmt_CallExprClass;
315pub const ZigClangStmt_CUDAKernelCallExprClass = enum_ZigClangStmtClass.ZigClangStmt_CUDAKernelCallExprClass;
316pub const ZigClangStmt_CXXMemberCallExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXMemberCallExprClass;
317pub const ZigClangStmt_CXXOperatorCallExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXOperatorCallExprClass;
318pub const ZigClangStmt_UserDefinedLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_UserDefinedLiteralClass;
319pub const ZigClangStmt_CStyleCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_CStyleCastExprClass;
320pub const ZigClangStmt_CXXFunctionalCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXFunctionalCastExprClass;
321pub const ZigClangStmt_CXXConstCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXConstCastExprClass;
322pub const ZigClangStmt_CXXDynamicCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXDynamicCastExprClass;
323pub const ZigClangStmt_CXXReinterpretCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXReinterpretCastExprClass;
324pub const ZigClangStmt_CXXStaticCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_CXXStaticCastExprClass;
325pub const ZigClangStmt_ObjCBridgedCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCBridgedCastExprClass;
326pub const ZigClangStmt_ImplicitCastExprClass = enum_ZigClangStmtClass.ZigClangStmt_ImplicitCastExprClass;
327pub const ZigClangStmt_CharacterLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_CharacterLiteralClass;
328pub const ZigClangStmt_ChooseExprClass = enum_ZigClangStmtClass.ZigClangStmt_ChooseExprClass;
329pub const ZigClangStmt_CompoundLiteralExprClass = enum_ZigClangStmtClass.ZigClangStmt_CompoundLiteralExprClass;
330pub const ZigClangStmt_ConvertVectorExprClass = enum_ZigClangStmtClass.ZigClangStmt_ConvertVectorExprClass;
331pub const ZigClangStmt_CoawaitExprClass = enum_ZigClangStmtClass.ZigClangStmt_CoawaitExprClass;
332pub const ZigClangStmt_CoyieldExprClass = enum_ZigClangStmtClass.ZigClangStmt_CoyieldExprClass;
333pub const ZigClangStmt_DeclRefExprClass = enum_ZigClangStmtClass.ZigClangStmt_DeclRefExprClass;
334pub const ZigClangStmt_DependentCoawaitExprClass = enum_ZigClangStmtClass.ZigClangStmt_DependentCoawaitExprClass;
335pub const ZigClangStmt_DependentScopeDeclRefExprClass = enum_ZigClangStmtClass.ZigClangStmt_DependentScopeDeclRefExprClass;
336pub const ZigClangStmt_DesignatedInitExprClass = enum_ZigClangStmtClass.ZigClangStmt_DesignatedInitExprClass;
337pub const ZigClangStmt_DesignatedInitUpdateExprClass = enum_ZigClangStmtClass.ZigClangStmt_DesignatedInitUpdateExprClass;
338pub const ZigClangStmt_ExpressionTraitExprClass = enum_ZigClangStmtClass.ZigClangStmt_ExpressionTraitExprClass;
339pub const ZigClangStmt_ExtVectorElementExprClass = enum_ZigClangStmtClass.ZigClangStmt_ExtVectorElementExprClass;
340pub const ZigClangStmt_FixedPointLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_FixedPointLiteralClass;
341pub const ZigClangStmt_FloatingLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_FloatingLiteralClass;
342pub const ZigClangStmt_ConstantExprClass = enum_ZigClangStmtClass.ZigClangStmt_ConstantExprClass;
343pub const ZigClangStmt_ExprWithCleanupsClass = enum_ZigClangStmtClass.ZigClangStmt_ExprWithCleanupsClass;
344pub const ZigClangStmt_FunctionParmPackExprClass = enum_ZigClangStmtClass.ZigClangStmt_FunctionParmPackExprClass;
345pub const ZigClangStmt_GNUNullExprClass = enum_ZigClangStmtClass.ZigClangStmt_GNUNullExprClass;
346pub const ZigClangStmt_GenericSelectionExprClass = enum_ZigClangStmtClass.ZigClangStmt_GenericSelectionExprClass;
347pub const ZigClangStmt_ImaginaryLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_ImaginaryLiteralClass;
348pub const ZigClangStmt_ImplicitValueInitExprClass = enum_ZigClangStmtClass.ZigClangStmt_ImplicitValueInitExprClass;
349pub const ZigClangStmt_InitListExprClass = enum_ZigClangStmtClass.ZigClangStmt_InitListExprClass;
350pub const ZigClangStmt_IntegerLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_IntegerLiteralClass;
351pub const ZigClangStmt_LambdaExprClass = enum_ZigClangStmtClass.ZigClangStmt_LambdaExprClass;
352pub const ZigClangStmt_MSPropertyRefExprClass = enum_ZigClangStmtClass.ZigClangStmt_MSPropertyRefExprClass;
353pub const ZigClangStmt_MSPropertySubscriptExprClass = enum_ZigClangStmtClass.ZigClangStmt_MSPropertySubscriptExprClass;
354pub const ZigClangStmt_MaterializeTemporaryExprClass = enum_ZigClangStmtClass.ZigClangStmt_MaterializeTemporaryExprClass;
355pub const ZigClangStmt_MemberExprClass = enum_ZigClangStmtClass.ZigClangStmt_MemberExprClass;
356pub const ZigClangStmt_NoInitExprClass = enum_ZigClangStmtClass.ZigClangStmt_NoInitExprClass;
357pub const ZigClangStmt_OMPArraySectionExprClass = enum_ZigClangStmtClass.ZigClangStmt_OMPArraySectionExprClass;
358pub const ZigClangStmt_ObjCArrayLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCArrayLiteralClass;
359pub const ZigClangStmt_ObjCAvailabilityCheckExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCAvailabilityCheckExprClass;
360pub const ZigClangStmt_ObjCBoolLiteralExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCBoolLiteralExprClass;
361pub const ZigClangStmt_ObjCBoxedExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCBoxedExprClass;
362pub const ZigClangStmt_ObjCDictionaryLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCDictionaryLiteralClass;
363pub const ZigClangStmt_ObjCEncodeExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCEncodeExprClass;
364pub const ZigClangStmt_ObjCIndirectCopyRestoreExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCIndirectCopyRestoreExprClass;
365pub const ZigClangStmt_ObjCIsaExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCIsaExprClass;
366pub const ZigClangStmt_ObjCIvarRefExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCIvarRefExprClass;
367pub const ZigClangStmt_ObjCMessageExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCMessageExprClass;
368pub const ZigClangStmt_ObjCPropertyRefExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCPropertyRefExprClass;
369pub const ZigClangStmt_ObjCProtocolExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCProtocolExprClass;
370pub const ZigClangStmt_ObjCSelectorExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCSelectorExprClass;
371pub const ZigClangStmt_ObjCStringLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCStringLiteralClass;
372pub const ZigClangStmt_ObjCSubscriptRefExprClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCSubscriptRefExprClass;
373pub const ZigClangStmt_OffsetOfExprClass = enum_ZigClangStmtClass.ZigClangStmt_OffsetOfExprClass;
374pub const ZigClangStmt_OpaqueValueExprClass = enum_ZigClangStmtClass.ZigClangStmt_OpaqueValueExprClass;
375pub const ZigClangStmt_UnresolvedLookupExprClass = enum_ZigClangStmtClass.ZigClangStmt_UnresolvedLookupExprClass;
376pub const ZigClangStmt_UnresolvedMemberExprClass = enum_ZigClangStmtClass.ZigClangStmt_UnresolvedMemberExprClass;
377pub const ZigClangStmt_PackExpansionExprClass = enum_ZigClangStmtClass.ZigClangStmt_PackExpansionExprClass;
378pub const ZigClangStmt_ParenExprClass = enum_ZigClangStmtClass.ZigClangStmt_ParenExprClass;
379pub const ZigClangStmt_ParenListExprClass = enum_ZigClangStmtClass.ZigClangStmt_ParenListExprClass;
380pub const ZigClangStmt_PredefinedExprClass = enum_ZigClangStmtClass.ZigClangStmt_PredefinedExprClass;
381pub const ZigClangStmt_PseudoObjectExprClass = enum_ZigClangStmtClass.ZigClangStmt_PseudoObjectExprClass;
382pub const ZigClangStmt_ShuffleVectorExprClass = enum_ZigClangStmtClass.ZigClangStmt_ShuffleVectorExprClass;
383pub const ZigClangStmt_SizeOfPackExprClass = enum_ZigClangStmtClass.ZigClangStmt_SizeOfPackExprClass;
384pub const ZigClangStmt_StmtExprClass = enum_ZigClangStmtClass.ZigClangStmt_StmtExprClass;
385pub const ZigClangStmt_StringLiteralClass = enum_ZigClangStmtClass.ZigClangStmt_StringLiteralClass;
386pub const ZigClangStmt_SubstNonTypeTemplateParmExprClass = enum_ZigClangStmtClass.ZigClangStmt_SubstNonTypeTemplateParmExprClass;
387pub const ZigClangStmt_SubstNonTypeTemplateParmPackExprClass = enum_ZigClangStmtClass.ZigClangStmt_SubstNonTypeTemplateParmPackExprClass;
388pub const ZigClangStmt_TypeTraitExprClass = enum_ZigClangStmtClass.ZigClangStmt_TypeTraitExprClass;
389pub const ZigClangStmt_TypoExprClass = enum_ZigClangStmtClass.ZigClangStmt_TypoExprClass;
390pub const ZigClangStmt_UnaryExprOrTypeTraitExprClass = enum_ZigClangStmtClass.ZigClangStmt_UnaryExprOrTypeTraitExprClass;
391pub const ZigClangStmt_UnaryOperatorClass = enum_ZigClangStmtClass.ZigClangStmt_UnaryOperatorClass;
392pub const ZigClangStmt_VAArgExprClass = enum_ZigClangStmtClass.ZigClangStmt_VAArgExprClass;
393pub const ZigClangStmt_ForStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ForStmtClass;
394pub const ZigClangStmt_GotoStmtClass = enum_ZigClangStmtClass.ZigClangStmt_GotoStmtClass;
395pub const ZigClangStmt_IfStmtClass = enum_ZigClangStmtClass.ZigClangStmt_IfStmtClass;
396pub const ZigClangStmt_IndirectGotoStmtClass = enum_ZigClangStmtClass.ZigClangStmt_IndirectGotoStmtClass;
397pub const ZigClangStmt_LabelStmtClass = enum_ZigClangStmtClass.ZigClangStmt_LabelStmtClass;
398pub const ZigClangStmt_MSDependentExistsStmtClass = enum_ZigClangStmtClass.ZigClangStmt_MSDependentExistsStmtClass;
399pub const ZigClangStmt_NullStmtClass = enum_ZigClangStmtClass.ZigClangStmt_NullStmtClass;
400pub const ZigClangStmt_OMPAtomicDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPAtomicDirectiveClass;
401pub const ZigClangStmt_OMPBarrierDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPBarrierDirectiveClass;
402pub const ZigClangStmt_OMPCancelDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPCancelDirectiveClass;
403pub const ZigClangStmt_OMPCancellationPointDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPCancellationPointDirectiveClass;
404pub const ZigClangStmt_OMPCriticalDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPCriticalDirectiveClass;
405pub const ZigClangStmt_OMPFlushDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPFlushDirectiveClass;
406pub const ZigClangStmt_OMPDistributeDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPDistributeDirectiveClass;
407pub const ZigClangStmt_OMPDistributeParallelForDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPDistributeParallelForDirectiveClass;
408pub const ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass;
409pub const ZigClangStmt_OMPDistributeSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPDistributeSimdDirectiveClass;
410pub const ZigClangStmt_OMPForDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPForDirectiveClass;
411pub const ZigClangStmt_OMPForSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPForSimdDirectiveClass;
412pub const ZigClangStmt_OMPParallelForDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPParallelForDirectiveClass;
413pub const ZigClangStmt_OMPParallelForSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPParallelForSimdDirectiveClass;
414pub const ZigClangStmt_OMPSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPSimdDirectiveClass;
415pub const ZigClangStmt_OMPTargetParallelForSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetParallelForSimdDirectiveClass;
416pub const ZigClangStmt_OMPTargetSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetSimdDirectiveClass;
417pub const ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass;
418pub const ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass;
419pub const ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass;
420pub const ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass;
421pub const ZigClangStmt_OMPTaskLoopDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTaskLoopDirectiveClass;
422pub const ZigClangStmt_OMPTaskLoopSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTaskLoopSimdDirectiveClass;
423pub const ZigClangStmt_OMPTeamsDistributeDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTeamsDistributeDirectiveClass;
424pub const ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass;
425pub const ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass;
426pub const ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass;
427pub const ZigClangStmt_OMPMasterDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPMasterDirectiveClass;
428pub const ZigClangStmt_OMPOrderedDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPOrderedDirectiveClass;
429pub const ZigClangStmt_OMPParallelDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPParallelDirectiveClass;
430pub const ZigClangStmt_OMPParallelSectionsDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPParallelSectionsDirectiveClass;
431pub const ZigClangStmt_OMPSectionDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPSectionDirectiveClass;
432pub const ZigClangStmt_OMPSectionsDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPSectionsDirectiveClass;
433pub const ZigClangStmt_OMPSingleDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPSingleDirectiveClass;
434pub const ZigClangStmt_OMPTargetDataDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetDataDirectiveClass;
435pub const ZigClangStmt_OMPTargetDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetDirectiveClass;
436pub const ZigClangStmt_OMPTargetEnterDataDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetEnterDataDirectiveClass;
437pub const ZigClangStmt_OMPTargetExitDataDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetExitDataDirectiveClass;
438pub const ZigClangStmt_OMPTargetParallelDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetParallelDirectiveClass;
439pub const ZigClangStmt_OMPTargetParallelForDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetParallelForDirectiveClass;
440pub const ZigClangStmt_OMPTargetTeamsDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetTeamsDirectiveClass;
441pub const ZigClangStmt_OMPTargetUpdateDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTargetUpdateDirectiveClass;
442pub const ZigClangStmt_OMPTaskDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTaskDirectiveClass;
443pub const ZigClangStmt_OMPTaskgroupDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTaskgroupDirectiveClass;
444pub const ZigClangStmt_OMPTaskwaitDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTaskwaitDirectiveClass;
445pub const ZigClangStmt_OMPTaskyieldDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTaskyieldDirectiveClass;
446pub const ZigClangStmt_OMPTeamsDirectiveClass = enum_ZigClangStmtClass.ZigClangStmt_OMPTeamsDirectiveClass;
447pub const ZigClangStmt_ObjCAtCatchStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCAtCatchStmtClass;
448pub const ZigClangStmt_ObjCAtFinallyStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCAtFinallyStmtClass;
449pub const ZigClangStmt_ObjCAtSynchronizedStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCAtSynchronizedStmtClass;
450pub const ZigClangStmt_ObjCAtThrowStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCAtThrowStmtClass;
451pub const ZigClangStmt_ObjCAtTryStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCAtTryStmtClass;
452pub const ZigClangStmt_ObjCAutoreleasePoolStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCAutoreleasePoolStmtClass;
453pub const ZigClangStmt_ObjCForCollectionStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ObjCForCollectionStmtClass;
454pub const ZigClangStmt_ReturnStmtClass = enum_ZigClangStmtClass.ZigClangStmt_ReturnStmtClass;
455pub const ZigClangStmt_SEHExceptStmtClass = enum_ZigClangStmtClass.ZigClangStmt_SEHExceptStmtClass;
456pub const ZigClangStmt_SEHFinallyStmtClass = enum_ZigClangStmtClass.ZigClangStmt_SEHFinallyStmtClass;
457pub const ZigClangStmt_SEHLeaveStmtClass = enum_ZigClangStmtClass.ZigClangStmt_SEHLeaveStmtClass;
458pub const ZigClangStmt_SEHTryStmtClass = enum_ZigClangStmtClass.ZigClangStmt_SEHTryStmtClass;
459pub const ZigClangStmt_CaseStmtClass = enum_ZigClangStmtClass.ZigClangStmt_CaseStmtClass;
460pub const ZigClangStmt_DefaultStmtClass = enum_ZigClangStmtClass.ZigClangStmt_DefaultStmtClass;
461pub const ZigClangStmt_SwitchStmtClass = enum_ZigClangStmtClass.ZigClangStmt_SwitchStmtClass;
462pub const ZigClangStmt_WhileStmtClass = enum_ZigClangStmtClass.ZigClangStmt_WhileStmtClass;
463pub const enum_ZigClangStmtClass = extern enum {
464 ZigClangStmt_NoStmtClass = 0,
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,
176
177pub const ZigClangStmtClass = extern enum {
178 NoStmtClass = 0,
179 GCCAsmStmtClass = 1,
180 MSAsmStmtClass = 2,
181 AttributedStmtClass = 3,
182 BreakStmtClass = 4,
183 CXXCatchStmtClass = 5,
184 CXXForRangeStmtClass = 6,
185 CXXTryStmtClass = 7,
186 CapturedStmtClass = 8,
187 CompoundStmtClass = 9,
188 ContinueStmtClass = 10,
189 CoreturnStmtClass = 11,
190 CoroutineBodyStmtClass = 12,
191 DeclStmtClass = 13,
192 DoStmtClass = 14,
193 BinaryConditionalOperatorClass = 15,
194 ConditionalOperatorClass = 16,
195 AddrLabelExprClass = 17,
196 ArrayInitIndexExprClass = 18,
197 ArrayInitLoopExprClass = 19,
198 ArraySubscriptExprClass = 20,
199 ArrayTypeTraitExprClass = 21,
200 AsTypeExprClass = 22,
201 AtomicExprClass = 23,
202 BinaryOperatorClass = 24,
203 CompoundAssignOperatorClass = 25,
204 BlockExprClass = 26,
205 CXXBindTemporaryExprClass = 27,
206 CXXBoolLiteralExprClass = 28,
207 CXXConstructExprClass = 29,
208 CXXTemporaryObjectExprClass = 30,
209 CXXDefaultArgExprClass = 31,
210 CXXDefaultInitExprClass = 32,
211 CXXDeleteExprClass = 33,
212 CXXDependentScopeMemberExprClass = 34,
213 CXXFoldExprClass = 35,
214 CXXInheritedCtorInitExprClass = 36,
215 CXXNewExprClass = 37,
216 CXXNoexceptExprClass = 38,
217 CXXNullPtrLiteralExprClass = 39,
218 CXXPseudoDestructorExprClass = 40,
219 CXXScalarValueInitExprClass = 41,
220 CXXStdInitializerListExprClass = 42,
221 CXXThisExprClass = 43,
222 CXXThrowExprClass = 44,
223 CXXTypeidExprClass = 45,
224 CXXUnresolvedConstructExprClass = 46,
225 CXXUuidofExprClass = 47,
226 CallExprClass = 48,
227 CUDAKernelCallExprClass = 49,
228 CXXMemberCallExprClass = 50,
229 CXXOperatorCallExprClass = 51,
230 UserDefinedLiteralClass = 52,
231 CStyleCastExprClass = 53,
232 CXXFunctionalCastExprClass = 54,
233 CXXConstCastExprClass = 55,
234 CXXDynamicCastExprClass = 56,
235 CXXReinterpretCastExprClass = 57,
236 CXXStaticCastExprClass = 58,
237 ObjCBridgedCastExprClass = 59,
238 ImplicitCastExprClass = 60,
239 CharacterLiteralClass = 61,
240 ChooseExprClass = 62,
241 CompoundLiteralExprClass = 63,
242 ConvertVectorExprClass = 64,
243 CoawaitExprClass = 65,
244 CoyieldExprClass = 66,
245 DeclRefExprClass = 67,
246 DependentCoawaitExprClass = 68,
247 DependentScopeDeclRefExprClass = 69,
248 DesignatedInitExprClass = 70,
249 DesignatedInitUpdateExprClass = 71,
250 ExpressionTraitExprClass = 72,
251 ExtVectorElementExprClass = 73,
252 FixedPointLiteralClass = 74,
253 FloatingLiteralClass = 75,
254 ConstantExprClass = 76,
255 ExprWithCleanupsClass = 77,
256 FunctionParmPackExprClass = 78,
257 GNUNullExprClass = 79,
258 GenericSelectionExprClass = 80,
259 ImaginaryLiteralClass = 81,
260 ImplicitValueInitExprClass = 82,
261 InitListExprClass = 83,
262 IntegerLiteralClass = 84,
263 LambdaExprClass = 85,
264 MSPropertyRefExprClass = 86,
265 MSPropertySubscriptExprClass = 87,
266 MaterializeTemporaryExprClass = 88,
267 MemberExprClass = 89,
268 NoInitExprClass = 90,
269 OMPArraySectionExprClass = 91,
270 ObjCArrayLiteralClass = 92,
271 ObjCAvailabilityCheckExprClass = 93,
272 ObjCBoolLiteralExprClass = 94,
273 ObjCBoxedExprClass = 95,
274 ObjCDictionaryLiteralClass = 96,
275 ObjCEncodeExprClass = 97,
276 ObjCIndirectCopyRestoreExprClass = 98,
277 ObjCIsaExprClass = 99,
278 ObjCIvarRefExprClass = 100,
279 ObjCMessageExprClass = 101,
280 ObjCPropertyRefExprClass = 102,
281 ObjCProtocolExprClass = 103,
282 ObjCSelectorExprClass = 104,
283 ObjCStringLiteralClass = 105,
284 ObjCSubscriptRefExprClass = 106,
285 OffsetOfExprClass = 107,
286 OpaqueValueExprClass = 108,
287 UnresolvedLookupExprClass = 109,
288 UnresolvedMemberExprClass = 110,
289 PackExpansionExprClass = 111,
290 ParenExprClass = 112,
291 ParenListExprClass = 113,
292 PredefinedExprClass = 114,
293 PseudoObjectExprClass = 115,
294 ShuffleVectorExprClass = 116,
295 SizeOfPackExprClass = 117,
296 StmtExprClass = 118,
297 StringLiteralClass = 119,
298 SubstNonTypeTemplateParmExprClass = 120,
299 SubstNonTypeTemplateParmPackExprClass = 121,
300 TypeTraitExprClass = 122,
301 TypoExprClass = 123,
302 UnaryExprOrTypeTraitExprClass = 124,
303 UnaryOperatorClass = 125,
304 VAArgExprClass = 126,
305 ForStmtClass = 127,
306 GotoStmtClass = 128,
307 IfStmtClass = 129,
308 IndirectGotoStmtClass = 130,
309 LabelStmtClass = 131,
310 MSDependentExistsStmtClass = 132,
311 NullStmtClass = 133,
312 OMPAtomicDirectiveClass = 134,
313 OMPBarrierDirectiveClass = 135,
314 OMPCancelDirectiveClass = 136,
315 OMPCancellationPointDirectiveClass = 137,
316 OMPCriticalDirectiveClass = 138,
317 OMPFlushDirectiveClass = 139,
318 OMPDistributeDirectiveClass = 140,
319 OMPDistributeParallelForDirectiveClass = 141,
320 OMPDistributeParallelForSimdDirectiveClass = 142,
321 OMPDistributeSimdDirectiveClass = 143,
322 OMPForDirectiveClass = 144,
323 OMPForSimdDirectiveClass = 145,
324 OMPParallelForDirectiveClass = 146,
325 OMPParallelForSimdDirectiveClass = 147,
326 OMPSimdDirectiveClass = 148,
327 OMPTargetParallelForSimdDirectiveClass = 149,
328 OMPTargetSimdDirectiveClass = 150,
329 OMPTargetTeamsDistributeDirectiveClass = 151,
330 OMPTargetTeamsDistributeParallelForDirectiveClass = 152,
331 OMPTargetTeamsDistributeParallelForSimdDirectiveClass = 153,
332 OMPTargetTeamsDistributeSimdDirectiveClass = 154,
333 OMPTaskLoopDirectiveClass = 155,
334 OMPTaskLoopSimdDirectiveClass = 156,
335 OMPTeamsDistributeDirectiveClass = 157,
336 OMPTeamsDistributeParallelForDirectiveClass = 158,
337 OMPTeamsDistributeParallelForSimdDirectiveClass = 159,
338 OMPTeamsDistributeSimdDirectiveClass = 160,
339 OMPMasterDirectiveClass = 161,
340 OMPOrderedDirectiveClass = 162,
341 OMPParallelDirectiveClass = 163,
342 OMPParallelSectionsDirectiveClass = 164,
343 OMPSectionDirectiveClass = 165,
344 OMPSectionsDirectiveClass = 166,
345 OMPSingleDirectiveClass = 167,
346 OMPTargetDataDirectiveClass = 168,
347 OMPTargetDirectiveClass = 169,
348 OMPTargetEnterDataDirectiveClass = 170,
349 OMPTargetExitDataDirectiveClass = 171,
350 OMPTargetParallelDirectiveClass = 172,
351 OMPTargetParallelForDirectiveClass = 173,
352 OMPTargetTeamsDirectiveClass = 174,
353 OMPTargetUpdateDirectiveClass = 175,
354 OMPTaskDirectiveClass = 176,
355 OMPTaskgroupDirectiveClass = 177,
356 OMPTaskwaitDirectiveClass = 178,
357 OMPTaskyieldDirectiveClass = 179,
358 OMPTeamsDirectiveClass = 180,
359 ObjCAtCatchStmtClass = 181,
360 ObjCAtFinallyStmtClass = 182,
361 ObjCAtSynchronizedStmtClass = 183,
362 ObjCAtThrowStmtClass = 184,
363 ObjCAtTryStmtClass = 185,
364 ObjCAutoreleasePoolStmtClass = 186,
365 ObjCForCollectionStmtClass = 187,
366 ReturnStmtClass = 188,
367 SEHExceptStmtClass = 189,
368 SEHFinallyStmtClass = 190,
369 SEHLeaveStmtClass = 191,
370 SEHTryStmtClass = 192,
371 CaseStmtClass = 193,
372 DefaultStmtClass = 194,
373 SwitchStmtClass = 195,
374 WhileStmtClass = 196,
661375};
662pub const ZigClangCK_Dependent = enum_ZigClangCK._Dependent;
663pub const ZigClangCK_BitCast = enum_ZigClangCK._BitCast;
664pub const ZigClangCK_LValueBitCast = enum_ZigClangCK._LValueBitCast;
665pub const ZigClangCK_LValueToRValue = enum_ZigClangCK._LValueToRValue;
666pub const ZigClangCK_NoOp = enum_ZigClangCK._NoOp;
667pub const ZigClangCK_BaseToDerived = enum_ZigClangCK._BaseToDerived;
668pub const ZigClangCK_DerivedToBase = enum_ZigClangCK._DerivedToBase;
669pub const ZigClangCK_UncheckedDerivedToBase = enum_ZigClangCK._UncheckedDerivedToBase;
670pub const ZigClangCK_Dynamic = enum_ZigClangCK._Dynamic;
671pub const ZigClangCK_ToUnion = enum_ZigClangCK._ToUnion;
672pub const ZigClangCK_ArrayToPointerDecay = enum_ZigClangCK._ArrayToPointerDecay;
673pub const ZigClangCK_FunctionToPointerDecay = enum_ZigClangCK._FunctionToPointerDecay;
674pub const ZigClangCK_NullToPointer = enum_ZigClangCK._NullToPointer;
675pub const ZigClangCK_NullToMemberPointer = enum_ZigClangCK._NullToMemberPointer;
676pub const ZigClangCK_BaseToDerivedMemberPointer = enum_ZigClangCK._BaseToDerivedMemberPointer;
677pub const ZigClangCK_DerivedToBaseMemberPointer = enum_ZigClangCK._DerivedToBaseMemberPointer;
678pub const ZigClangCK_MemberPointerToBoolean = enum_ZigClangCK._MemberPointerToBoolean;
679pub const ZigClangCK_ReinterpretMemberPointer = enum_ZigClangCK._ReinterpretMemberPointer;
680pub const ZigClangCK_UserDefinedConversion = enum_ZigClangCK._UserDefinedConversion;
681pub const ZigClangCK_ConstructorConversion = enum_ZigClangCK._ConstructorConversion;
682pub const ZigClangCK_IntegralToPointer = enum_ZigClangCK._IntegralToPointer;
683pub const ZigClangCK_PointerToIntegral = enum_ZigClangCK._PointerToIntegral;
684pub const ZigClangCK_PointerToBoolean = enum_ZigClangCK._PointerToBoolean;
685pub const ZigClangCK_ToVoid = enum_ZigClangCK._ToVoid;
686pub const ZigClangCK_VectorSplat = enum_ZigClangCK._VectorSplat;
687pub const ZigClangCK_IntegralCast = enum_ZigClangCK._IntegralCast;
688pub const ZigClangCK_IntegralToBoolean = enum_ZigClangCK._IntegralToBoolean;
689pub const ZigClangCK_IntegralToFloating = enum_ZigClangCK._IntegralToFloating;
690pub const ZigClangCK_FixedPointCast = enum_ZigClangCK._FixedPointCast;
691pub const ZigClangCK_FixedPointToBoolean = enum_ZigClangCK._FixedPointToBoolean;
692pub const ZigClangCK_FloatingToIntegral = enum_ZigClangCK._FloatingToIntegral;
693pub const ZigClangCK_FloatingToBoolean = enum_ZigClangCK._FloatingToBoolean;
694pub const ZigClangCK_BooleanToSignedIntegral = enum_ZigClangCK._BooleanToSignedIntegral;
695pub const ZigClangCK_FloatingCast = enum_ZigClangCK._FloatingCast;
696pub const ZigClangCK_CPointerToObjCPointerCast = enum_ZigClangCK._CPointerToObjCPointerCast;
697pub const ZigClangCK_BlockPointerToObjCPointerCast = enum_ZigClangCK._BlockPointerToObjCPointerCast;
698pub const ZigClangCK_AnyPointerToBlockPointerCast = enum_ZigClangCK._AnyPointerToBlockPointerCast;
699pub const ZigClangCK_ObjCObjectLValueCast = enum_ZigClangCK._ObjCObjectLValueCast;
700pub const ZigClangCK_FloatingRealToComplex = enum_ZigClangCK._FloatingRealToComplex;
701pub const ZigClangCK_FloatingComplexToReal = enum_ZigClangCK._FloatingComplexToReal;
702pub const ZigClangCK_FloatingComplexToBoolean = enum_ZigClangCK._FloatingComplexToBoolean;
703pub const ZigClangCK_FloatingComplexCast = enum_ZigClangCK._FloatingComplexCast;
704pub const ZigClangCK_FloatingComplexToIntegralComplex = enum_ZigClangCK._FloatingComplexToIntegralComplex;
705pub const ZigClangCK_IntegralRealToComplex = enum_ZigClangCK._IntegralRealToComplex;
706pub const ZigClangCK_IntegralComplexToReal = enum_ZigClangCK._IntegralComplexToReal;
707pub const ZigClangCK_IntegralComplexToBoolean = enum_ZigClangCK._IntegralComplexToBoolean;
708pub const ZigClangCK_IntegralComplexCast = enum_ZigClangCK._IntegralComplexCast;
709pub const ZigClangCK_IntegralComplexToFloatingComplex = enum_ZigClangCK._IntegralComplexToFloatingComplex;
710pub const ZigClangCK_ARCProduceObject = enum_ZigClangCK._ARCProduceObject;
711pub const ZigClangCK_ARCConsumeObject = enum_ZigClangCK._ARCConsumeObject;
712pub const ZigClangCK_ARCReclaimReturnedObject = enum_ZigClangCK._ARCReclaimReturnedObject;
713pub const ZigClangCK_ARCExtendBlockObject = enum_ZigClangCK._ARCExtendBlockObject;
714pub const ZigClangCK_AtomicToNonAtomic = enum_ZigClangCK._AtomicToNonAtomic;
715pub const ZigClangCK_NonAtomicToAtomic = enum_ZigClangCK._NonAtomicToAtomic;
716pub const ZigClangCK_CopyAndAutoreleaseBlockObject = enum_ZigClangCK._CopyAndAutoreleaseBlockObject;
717pub const ZigClangCK_BuiltinFnToFnPtr = enum_ZigClangCK._BuiltinFnToFnPtr;
718pub const ZigClangCK_ZeroToOCLOpaqueType = enum_ZigClangCK._ZeroToOCLOpaqueType;
719pub const ZigClangCK_AddressSpaceConversion = enum_ZigClangCK._AddressSpaceConversion;
720pub const ZigClangCK_IntToOCLSampler = enum_ZigClangCK._IntToOCLSampler;
721pub const enum_ZigClangCK = extern enum {
722 _Dependent,
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,
376
377pub const ZigClangCK = extern enum {
378 Dependent,
379 BitCast,
380 LValueBitCast,
381 LValueToRValue,
382 NoOp,
383 BaseToDerived,
384 DerivedToBase,
385 UncheckedDerivedToBase,
386 Dynamic,
387 ToUnion,
388 ArrayToPointerDecay,
389 FunctionToPointerDecay,
390 NullToPointer,
391 NullToMemberPointer,
392 BaseToDerivedMemberPointer,
393 DerivedToBaseMemberPointer,
394 MemberPointerToBoolean,
395 ReinterpretMemberPointer,
396 UserDefinedConversion,
397 ConstructorConversion,
398 IntegralToPointer,
399 PointerToIntegral,
400 PointerToBoolean,
401 ToVoid,
402 VectorSplat,
403 IntegralCast,
404 IntegralToBoolean,
405 IntegralToFloating,
406 FixedPointCast,
407 FixedPointToBoolean,
408 FloatingToIntegral,
409 FloatingToBoolean,
410 BooleanToSignedIntegral,
411 FloatingCast,
412 CPointerToObjCPointerCast,
413 BlockPointerToObjCPointerCast,
414 AnyPointerToBlockPointerCast,
415 ObjCObjectLValueCast,
416 FloatingRealToComplex,
417 FloatingComplexToReal,
418 FloatingComplexToBoolean,
419 FloatingComplexCast,
420 FloatingComplexToIntegralComplex,
421 IntegralRealToComplex,
422 IntegralComplexToReal,
423 IntegralComplexToBoolean,
424 IntegralComplexCast,
425 IntegralComplexToFloatingComplex,
426 ARCProduceObject,
427 ARCConsumeObject,
428 ARCReclaimReturnedObject,
429 ARCExtendBlockObject,
430 AtomicToNonAtomic,
431 NonAtomicToAtomic,
432 CopyAndAutoreleaseBlockObject,
433 BuiltinFnToFnPtr,
434 ZeroToOCLOpaqueType,
435 AddressSpaceConversion,
436 IntToOCLSampler,
781437};
782pub const ZigClangAPValueUninitialized = enum_ZigClangAPValueKind.ZigClangAPValueUninitialized;
783pub const ZigClangAPValueInt = enum_ZigClangAPValueKind.ZigClangAPValueInt;
784pub const ZigClangAPValueFloat = enum_ZigClangAPValueKind.ZigClangAPValueFloat;
785pub const ZigClangAPValueComplexInt = enum_ZigClangAPValueKind.ZigClangAPValueComplexInt;
786pub const ZigClangAPValueComplexFloat = enum_ZigClangAPValueKind.ZigClangAPValueComplexFloat;
787pub const ZigClangAPValueLValue = enum_ZigClangAPValueKind.ZigClangAPValueLValue;
788pub const ZigClangAPValueVector = enum_ZigClangAPValueKind.ZigClangAPValueVector;
789pub const ZigClangAPValueArray = enum_ZigClangAPValueKind.ZigClangAPValueArray;
790pub const ZigClangAPValueStruct = enum_ZigClangAPValueKind.ZigClangAPValueStruct;
791pub const ZigClangAPValueUnion = enum_ZigClangAPValueKind.ZigClangAPValueUnion;
792pub const ZigClangAPValueMemberPointer = enum_ZigClangAPValueKind.ZigClangAPValueMemberPointer;
793pub const ZigClangAPValueAddrLabelDiff = enum_ZigClangAPValueKind.ZigClangAPValueAddrLabelDiff;
794pub const enum_ZigClangAPValueKind = extern enum {
795 ZigClangAPValueUninitialized,
796 ZigClangAPValueInt,
797 ZigClangAPValueFloat,
798 ZigClangAPValueComplexInt,
799 ZigClangAPValueComplexFloat,
800 ZigClangAPValueLValue,
801 ZigClangAPValueVector,
802 ZigClangAPValueArray,
803 ZigClangAPValueStruct,
804 ZigClangAPValueUnion,
805 ZigClangAPValueMemberPointer,
806 ZigClangAPValueAddrLabelDiff,
438
439pub const ZigClangAPValueKind = extern enum {
440 Uninitialized,
441 Int,
442 Float,
443 ComplexInt,
444 ComplexFloat,
445 LValue,
446 Vector,
447 Array,
448 Struct,
449 Union,
450 MemberPointer,
451 AddrLabelDiff,
807452};
453
808454pub extern fn ZigClangSourceManager_getSpellingLoc(arg0: ?*const struct_ZigClangSourceManager, Loc: struct_ZigClangSourceLocation) struct_ZigClangSourceLocation;
809455pub extern fn ZigClangSourceManager_getFilename(self: *const struct_ZigClangSourceManager, SpellingLoc: struct_ZigClangSourceLocation) ?[*]const u8;
810456pub 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
840486pub extern fn ZigClangQualType_isConstQualified(arg0: struct_ZigClangQualType) bool;
841487pub extern fn ZigClangQualType_isVolatileQualified(arg0: struct_ZigClangQualType) bool;
842488pub 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;
844490pub extern fn ZigClangType_isVoidType(self: ?*const struct_ZigClangType) bool;
845491pub extern fn ZigClangType_getTypeClassName(self: *const struct_ZigClangType) [*]const u8;
846492pub 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;
848494pub 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;
850496pub extern fn ZigClangExpr_getType(self: ?*const struct_ZigClangExpr) struct_ZigClangQualType;
851497pub 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;
853499pub extern fn ZigClangAPValue_getInt(self: ?*const struct_ZigClangAPValue) ?*const struct_ZigClangAPSInt;
854500pub extern fn ZigClangAPValue_getArrayInitializedElts(self: ?*const struct_ZigClangAPValue) c_uint;
855501pub 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;
867513
868514pub extern fn ZigClangFunctionDecl_getType(self: *const struct_ZigClangFunctionDecl) struct_ZigClangQualType;
869515pub 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
871522pub const ZigClangSourceLocation = struct_ZigClangSourceLocation;
872523pub const ZigClangQualType = struct_ZigClangQualType;
......@@ -942,12 +593,6 @@ pub const ZigClangUnaryOperator = struct_ZigClangUnaryOperator;
942593pub const ZigClangValueDecl = struct_ZigClangValueDecl;
943594pub const ZigClangVarDecl = struct_ZigClangVarDecl;
944595pub 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
952597pub const struct_ZigClangSourceLocation = extern struct {
953598 ID: c_uint,
......@@ -1060,3 +705,143 @@ pub const ZigClangDeclKind = extern enum {
1060705pub const struct_ZigClangQualType = extern struct {
1061706 ptr: ?*c_void,
1062707};
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 {
1111 translate,
1212};
1313
14// TODO merge with Type.Fn.CallingConvention
15pub const CallingConvention = enum {
16 auto,
17 c,
18 cold,
19 naked,
20 stdcall,
21};
22
1423pub const ClangErrMsg = Stage2ErrorMsg;
1524
1625pub const Error = error{
......@@ -165,9 +174,95 @@ fn transQualType(c: *Context, qt: ZigClangQualType, source_loc: ZigClangSourceLo
165174}
166175
167176fn transType(c: *Context, ty: *const ZigClangType, source_loc: ZigClangSourceLocation) !*ast.Node {
168 const type_name = c.str(ZigClangType_getTypeClassName(ty));
169 try emitWarning(c, source_loc, "unsupported type: '{}'", type_name);
170 return error.UnsupportedType;
177 switch (ZigClangType_getTypeClass(ty)) {
178 .Builtin => {
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 }
171266}
172267
173268fn 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
10611061 case ZigClangType_FunctionProto:
10621062 case ZigClangType_FunctionNoProto:
10631063 {
1064 const clang::FunctionType *fn_ty = reinterpret_cast<const clang::FunctionType*>(ty);
1064 const ZigClangFunctionType *fn_ty = reinterpret_cast<const ZigClangFunctionType*>(ty);
10651065
10661066 AstNode *proto_node = trans_create_node(c, NodeTypeFnProto);
1067 switch (fn_ty->getCallConv()) {
1068 case clang::CC_C: // __attribute__((cdecl))
1067 switch (ZigClangFunctionType_getCallConv(fn_ty)) {
1068 case ZigClangCallingConv_C: // __attribute__((cdecl))
10691069 proto_node->data.fn_proto.cc = CallingConventionC;
10701070 proto_node->data.fn_proto.is_extern = true;
10711071 break;
1072 case clang::CC_X86StdCall: // __attribute__((stdcall))
1072 case ZigClangCallingConv_X86StdCall: // __attribute__((stdcall))
10731073 proto_node->data.fn_proto.cc = CallingConventionStdcall;
10741074 break;
1075 case clang::CC_X86FastCall: // __attribute__((fastcall))
1075 case ZigClangCallingConv_X86FastCall: // __attribute__((fastcall))
10761076 emit_warning(c, source_loc, "unsupported calling convention: x86 fastcall");
10771077 return nullptr;
1078 case clang::CC_X86ThisCall: // __attribute__((thiscall))
1078 case ZigClangCallingConv_X86ThisCall: // __attribute__((thiscall))
10791079 emit_warning(c, source_loc, "unsupported calling convention: x86 thiscall");
10801080 return nullptr;
1081 case clang::CC_X86VectorCall: // __attribute__((vectorcall))
1081 case ZigClangCallingConv_X86VectorCall: // __attribute__((vectorcall))
10821082 emit_warning(c, source_loc, "unsupported calling convention: x86 vectorcall");
10831083 return nullptr;
1084 case clang::CC_X86Pascal: // __attribute__((pascal))
1084 case ZigClangCallingConv_X86Pascal: // __attribute__((pascal))
10851085 emit_warning(c, source_loc, "unsupported calling convention: x86 pascal");
10861086 return nullptr;
1087 case clang::CC_Win64: // __attribute__((ms_abi))
1087 case ZigClangCallingConv_Win64: // __attribute__((ms_abi))
10881088 emit_warning(c, source_loc, "unsupported calling convention: win64");
10891089 return nullptr;
1090 case clang::CC_X86_64SysV: // __attribute__((sysv_abi))
1090 case ZigClangCallingConv_X86_64SysV: // __attribute__((sysv_abi))
10911091 emit_warning(c, source_loc, "unsupported calling convention: x86 64sysv");
10921092 return nullptr;
1093 case clang::CC_X86RegCall:
1093 case ZigClangCallingConv_X86RegCall:
10941094 emit_warning(c, source_loc, "unsupported calling convention: x86 reg");
10951095 return nullptr;
1096 case clang::CC_AAPCS: // __attribute__((pcs("aapcs")))
1096 case ZigClangCallingConv_AAPCS: // __attribute__((pcs("aapcs")))
10971097 emit_warning(c, source_loc, "unsupported calling convention: aapcs");
10981098 return nullptr;
1099 case clang::CC_AAPCS_VFP: // __attribute__((pcs("aapcs-vfp")))
1099 case ZigClangCallingConv_AAPCS_VFP: // __attribute__((pcs("aapcs-vfp")))
11001100 emit_warning(c, source_loc, "unsupported calling convention: aapcs-vfp");
11011101 return nullptr;
1102 case clang::CC_IntelOclBicc: // __attribute__((intel_ocl_bicc))
1102 case ZigClangCallingConv_IntelOclBicc: // __attribute__((intel_ocl_bicc))
11031103 emit_warning(c, source_loc, "unsupported calling convention: intel_ocl_bicc");
11041104 return nullptr;
1105 case clang::CC_SpirFunction: // default for OpenCL functions on SPIR target
1105 case ZigClangCallingConv_SpirFunction: // default for OpenCL functions on SPIR target
11061106 emit_warning(c, source_loc, "unsupported calling convention: SPIR function");
11071107 return nullptr;
1108 case clang::CC_OpenCLKernel:
1108 case ZigClangCallingConv_OpenCLKernel:
11091109 emit_warning(c, source_loc, "unsupported calling convention: OpenCLKernel");
11101110 return nullptr;
1111 case clang::CC_Swift:
1111 case ZigClangCallingConv_Swift:
11121112 emit_warning(c, source_loc, "unsupported calling convention: Swift");
11131113 return nullptr;
1114 case clang::CC_PreserveMost:
1114 case ZigClangCallingConv_PreserveMost:
11151115 emit_warning(c, source_loc, "unsupported calling convention: PreserveMost");
11161116 return nullptr;
1117 case clang::CC_PreserveAll:
1117 case ZigClangCallingConv_PreserveAll:
11181118 emit_warning(c, source_loc, "unsupported calling convention: PreserveAll");
11191119 return nullptr;
1120 case clang::CC_AArch64VectorCall:
1120 case ZigClangCallingConv_AArch64VectorCall:
11211121 emit_warning(c, source_loc, "unsupported calling convention: AArch64VectorCall");
11221122 return nullptr;
11231123 }
11241124
1125 if (fn_ty->getNoReturnAttr()) {
1125 if (ZigClangFunctionType_getNoReturnAttr(fn_ty)) {
11261126 proto_node->data.fn_proto.return_type = trans_create_node_symbol_str(c, "noreturn");
11271127 } else {
1128 proto_node->data.fn_proto.return_type = trans_qual_type(c, bitcast(fn_ty->getReturnType()),
1129 source_loc);
1128 proto_node->data.fn_proto.return_type = trans_qual_type(c,
1129 ZigClangFunctionType_getReturnType(fn_ty), source_loc);
11301130 if (proto_node->data.fn_proto.return_type == nullptr) {
11311131 emit_warning(c, source_loc, "unsupported function proto return type");
11321132 return nullptr;
src/zig_clang.cpp+58
......@@ -1193,6 +1193,49 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBuiltinFn == clang::B
11931193static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeARCUnbridgedCast == clang::BuiltinType::ARCUnbridgedCast, "");
11941194static_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
11971240static_assert(sizeof(ZigClangSourceLocation) == sizeof(clang::SourceLocation), "");
11981241static ZigClangSourceLocation bitcast(clang::SourceLocation src) {
......@@ -1693,3 +1736,18 @@ enum ZigClangBuiltinTypeKind ZigClangBuiltinType_getKind(const struct ZigClangBu
16931736 auto casted = reinterpret_cast<const clang::BuiltinType *>(self);
16941737 return (ZigClangBuiltinTypeKind)casted->getKind();
16951738}
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;
101101struct ZigClangValueDecl;
102102struct ZigClangVarDecl;
103103struct ZigClangWhileStmt;
104struct ZigClangFunctionType;
104105
105106enum ZigClangBO {
106107 ZigClangBO_PtrMemD,
......@@ -678,6 +679,27 @@ enum ZigClangBuiltinTypeKind {
678679 ZigClangBuiltinTypeOMPArraySection,
679680};
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
681703ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const struct ZigClangSourceManager *,
682704 struct ZigClangSourceLocation Loc);
683705ZIG_EXTERN_C const char *ZigClangSourceManager_getFilename(const struct ZigClangSourceManager *,
......@@ -776,4 +798,8 @@ ZIG_EXTERN_C const struct ZigClangExpr *ZigClangAPValueLValueBase_dyn_cast_Expr(
776798
777799ZIG_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
779805#endif