authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-07-17 17:45:24-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-07-17 17:47:39-04:00
loge816d592e8773c03ca92645d978669ec6de5ca0c
tree54c6ba073b75a5740266d4e91fac2e826f337df2
parent8f92a49dfde5e8690525da028844cb7c1188d397
signaturelock-open Commit is signed but in an unrecognized format.

update zig codebase to llvm 9


8 files changed, 422 insertions(+), 343 deletions(-)

cmake/Findllvm.cmake+1
...@@ -59,6 +59,7 @@ NEED_TARGET("Mips")...@@ -59,6 +59,7 @@ NEED_TARGET("Mips")
59NEED_TARGET("MSP430")59NEED_TARGET("MSP430")
60NEED_TARGET("NVPTX")60NEED_TARGET("NVPTX")
61NEED_TARGET("PowerPC")61NEED_TARGET("PowerPC")
62NEED_TARGET("RISCV")
62NEED_TARGET("Sparc")63NEED_TARGET("Sparc")
63NEED_TARGET("SystemZ")64NEED_TARGET("SystemZ")
64NEED_TARGET("WebAssembly")65NEED_TARGET("WebAssembly")
src-self-hosted/clang.zig+211-215
...@@ -148,6 +148,7 @@ pub const ZigClangTypeClass = extern enum {...@@ -148,6 +148,7 @@ pub const ZigClangTypeClass = extern enum {
148 UnresolvedUsing,148 UnresolvedUsing,
149 Paren,149 Paren,
150 Typedef,150 Typedef,
151 MacroQualified,
151 Adjusted,152 Adjusted,
152 Decayed,153 Decayed,
153 TypeOfExpr,154 TypeOfExpr,
...@@ -176,210 +177,213 @@ pub const ZigClangTypeClass = extern enum {...@@ -176,210 +177,213 @@ pub const ZigClangTypeClass = extern enum {
176 Atomic,177 Atomic,
177};178};
178179
179pub const ZigClangStmtClass = extern enum {180const ZigClangStmtClass = extern enum {
180 NoStmtClass = 0,181 NoStmtClass,
181 GCCAsmStmtClass = 1,182 GCCAsmStmtClass,
182 MSAsmStmtClass = 2,183 MSAsmStmtClass,
183 AttributedStmtClass = 3,184 BreakStmtClass,
184 BreakStmtClass = 4,185 CXXCatchStmtClass,
185 CXXCatchStmtClass = 5,186 CXXForRangeStmtClass,
186 CXXForRangeStmtClass = 6,187 CXXTryStmtClass,
187 CXXTryStmtClass = 7,188 CapturedStmtClass,
188 CapturedStmtClass = 8,189 CompoundStmtClass,
189 CompoundStmtClass = 9,190 ContinueStmtClass,
190 ContinueStmtClass = 10,191 CoreturnStmtClass,
191 CoreturnStmtClass = 11,192 CoroutineBodyStmtClass,
192 CoroutineBodyStmtClass = 12,193 DeclStmtClass,
193 DeclStmtClass = 13,194 DoStmtClass,
194 DoStmtClass = 14,195 ForStmtClass,
195 BinaryConditionalOperatorClass = 15,196 GotoStmtClass,
196 ConditionalOperatorClass = 16,197 IfStmtClass,
197 AddrLabelExprClass = 17,198 IndirectGotoStmtClass,
198 ArrayInitIndexExprClass = 18,199 MSDependentExistsStmtClass,
199 ArrayInitLoopExprClass = 19,200 NullStmtClass,
200 ArraySubscriptExprClass = 20,201 OMPAtomicDirectiveClass,
201 ArrayTypeTraitExprClass = 21,202 OMPBarrierDirectiveClass,
202 AsTypeExprClass = 22,203 OMPCancelDirectiveClass,
203 AtomicExprClass = 23,204 OMPCancellationPointDirectiveClass,
204 BinaryOperatorClass = 24,205 OMPCriticalDirectiveClass,
205 CompoundAssignOperatorClass = 25,206 OMPFlushDirectiveClass,
206 BlockExprClass = 26,207 OMPDistributeDirectiveClass,
207 CXXBindTemporaryExprClass = 27,208 OMPDistributeParallelForDirectiveClass,
208 CXXBoolLiteralExprClass = 28,209 OMPDistributeParallelForSimdDirectiveClass,
209 CXXConstructExprClass = 29,210 OMPDistributeSimdDirectiveClass,
210 CXXTemporaryObjectExprClass = 30,211 OMPForDirectiveClass,
211 CXXDefaultArgExprClass = 31,212 OMPForSimdDirectiveClass,
212 CXXDefaultInitExprClass = 32,213 OMPParallelForDirectiveClass,
213 CXXDeleteExprClass = 33,214 OMPParallelForSimdDirectiveClass,
214 CXXDependentScopeMemberExprClass = 34,215 OMPSimdDirectiveClass,
215 CXXFoldExprClass = 35,216 OMPTargetParallelForSimdDirectiveClass,
216 CXXInheritedCtorInitExprClass = 36,217 OMPTargetSimdDirectiveClass,
217 CXXNewExprClass = 37,218 OMPTargetTeamsDistributeDirectiveClass,
218 CXXNoexceptExprClass = 38,219 OMPTargetTeamsDistributeParallelForDirectiveClass,
219 CXXNullPtrLiteralExprClass = 39,220 OMPTargetTeamsDistributeParallelForSimdDirectiveClass,
220 CXXPseudoDestructorExprClass = 40,221 OMPTargetTeamsDistributeSimdDirectiveClass,
221 CXXScalarValueInitExprClass = 41,222 OMPTaskLoopDirectiveClass,
222 CXXStdInitializerListExprClass = 42,223 OMPTaskLoopSimdDirectiveClass,
223 CXXThisExprClass = 43,224 OMPTeamsDistributeDirectiveClass,
224 CXXThrowExprClass = 44,225 OMPTeamsDistributeParallelForDirectiveClass,
225 CXXTypeidExprClass = 45,226 OMPTeamsDistributeParallelForSimdDirectiveClass,
226 CXXUnresolvedConstructExprClass = 46,227 OMPTeamsDistributeSimdDirectiveClass,
227 CXXUuidofExprClass = 47,228 OMPMasterDirectiveClass,
228 CallExprClass = 48,229 OMPOrderedDirectiveClass,
229 CUDAKernelCallExprClass = 49,230 OMPParallelDirectiveClass,
230 CXXMemberCallExprClass = 50,231 OMPParallelSectionsDirectiveClass,
231 CXXOperatorCallExprClass = 51,232 OMPSectionDirectiveClass,
232 UserDefinedLiteralClass = 52,233 OMPSectionsDirectiveClass,
233 CStyleCastExprClass = 53,234 OMPSingleDirectiveClass,
234 CXXFunctionalCastExprClass = 54,235 OMPTargetDataDirectiveClass,
235 CXXConstCastExprClass = 55,236 OMPTargetDirectiveClass,
236 CXXDynamicCastExprClass = 56,237 OMPTargetEnterDataDirectiveClass,
237 CXXReinterpretCastExprClass = 57,238 OMPTargetExitDataDirectiveClass,
238 CXXStaticCastExprClass = 58,239 OMPTargetParallelDirectiveClass,
239 ObjCBridgedCastExprClass = 59,240 OMPTargetParallelForDirectiveClass,
240 ImplicitCastExprClass = 60,241 OMPTargetTeamsDirectiveClass,
241 CharacterLiteralClass = 61,242 OMPTargetUpdateDirectiveClass,
242 ChooseExprClass = 62,243 OMPTaskDirectiveClass,
243 CompoundLiteralExprClass = 63,244 OMPTaskgroupDirectiveClass,
244 ConvertVectorExprClass = 64,245 OMPTaskwaitDirectiveClass,
245 CoawaitExprClass = 65,246 OMPTaskyieldDirectiveClass,
246 CoyieldExprClass = 66,247 OMPTeamsDirectiveClass,
247 DeclRefExprClass = 67,248 ObjCAtCatchStmtClass,
248 DependentCoawaitExprClass = 68,249 ObjCAtFinallyStmtClass,
249 DependentScopeDeclRefExprClass = 69,250 ObjCAtSynchronizedStmtClass,
250 DesignatedInitExprClass = 70,251 ObjCAtThrowStmtClass,
251 DesignatedInitUpdateExprClass = 71,252 ObjCAtTryStmtClass,
252 ExpressionTraitExprClass = 72,253 ObjCAutoreleasePoolStmtClass,
253 ExtVectorElementExprClass = 73,254 ObjCForCollectionStmtClass,
254 FixedPointLiteralClass = 74,255 ReturnStmtClass,
255 FloatingLiteralClass = 75,256 SEHExceptStmtClass,
256 ConstantExprClass = 76,257 SEHFinallyStmtClass,
257 ExprWithCleanupsClass = 77,258 SEHLeaveStmtClass,
258 FunctionParmPackExprClass = 78,259 SEHTryStmtClass,
259 GNUNullExprClass = 79,260 CaseStmtClass,
260 GenericSelectionExprClass = 80,261 DefaultStmtClass,
261 ImaginaryLiteralClass = 81,262 SwitchStmtClass,
262 ImplicitValueInitExprClass = 82,263 AttributedStmtClass,
263 InitListExprClass = 83,264 BinaryConditionalOperatorClass,
264 IntegerLiteralClass = 84,265 ConditionalOperatorClass,
265 LambdaExprClass = 85,266 AddrLabelExprClass,
266 MSPropertyRefExprClass = 86,267 ArrayInitIndexExprClass,
267 MSPropertySubscriptExprClass = 87,268 ArrayInitLoopExprClass,
268 MaterializeTemporaryExprClass = 88,269 ArraySubscriptExprClass,
269 MemberExprClass = 89,270 ArrayTypeTraitExprClass,
270 NoInitExprClass = 90,271 AsTypeExprClass,
271 OMPArraySectionExprClass = 91,272 AtomicExprClass,
272 ObjCArrayLiteralClass = 92,273 BinaryOperatorClass,
273 ObjCAvailabilityCheckExprClass = 93,274 CompoundAssignOperatorClass,
274 ObjCBoolLiteralExprClass = 94,275 BlockExprClass,
275 ObjCBoxedExprClass = 95,276 CXXBindTemporaryExprClass,
276 ObjCDictionaryLiteralClass = 96,277 CXXBoolLiteralExprClass,
277 ObjCEncodeExprClass = 97,278 CXXConstructExprClass,
278 ObjCIndirectCopyRestoreExprClass = 98,279 CXXTemporaryObjectExprClass,
279 ObjCIsaExprClass = 99,280 CXXDefaultArgExprClass,
280 ObjCIvarRefExprClass = 100,281 CXXDefaultInitExprClass,
281 ObjCMessageExprClass = 101,282 CXXDeleteExprClass,
282 ObjCPropertyRefExprClass = 102,283 CXXDependentScopeMemberExprClass,
283 ObjCProtocolExprClass = 103,284 CXXFoldExprClass,
284 ObjCSelectorExprClass = 104,285 CXXInheritedCtorInitExprClass,
285 ObjCStringLiteralClass = 105,286 CXXNewExprClass,
286 ObjCSubscriptRefExprClass = 106,287 CXXNoexceptExprClass,
287 OffsetOfExprClass = 107,288 CXXNullPtrLiteralExprClass,
288 OpaqueValueExprClass = 108,289 CXXPseudoDestructorExprClass,
289 UnresolvedLookupExprClass = 109,290 CXXScalarValueInitExprClass,
290 UnresolvedMemberExprClass = 110,291 CXXStdInitializerListExprClass,
291 PackExpansionExprClass = 111,292 CXXThisExprClass,
292 ParenExprClass = 112,293 CXXThrowExprClass,
293 ParenListExprClass = 113,294 CXXTypeidExprClass,
294 PredefinedExprClass = 114,295 CXXUnresolvedConstructExprClass,
295 PseudoObjectExprClass = 115,296 CXXUuidofExprClass,
296 ShuffleVectorExprClass = 116,297 CallExprClass,
297 SizeOfPackExprClass = 117,298 CUDAKernelCallExprClass,
298 StmtExprClass = 118,299 CXXMemberCallExprClass,
299 StringLiteralClass = 119,300 CXXOperatorCallExprClass,
300 SubstNonTypeTemplateParmExprClass = 120,301 UserDefinedLiteralClass,
301 SubstNonTypeTemplateParmPackExprClass = 121,302 BuiltinBitCastExprClass,
302 TypeTraitExprClass = 122,303 CStyleCastExprClass,
303 TypoExprClass = 123,304 CXXFunctionalCastExprClass,
304 UnaryExprOrTypeTraitExprClass = 124,305 CXXConstCastExprClass,
305 UnaryOperatorClass = 125,306 CXXDynamicCastExprClass,
306 VAArgExprClass = 126,307 CXXReinterpretCastExprClass,
307 ForStmtClass = 127,308 CXXStaticCastExprClass,
308 GotoStmtClass = 128,309 ObjCBridgedCastExprClass,
309 IfStmtClass = 129,310 ImplicitCastExprClass,
310 IndirectGotoStmtClass = 130,311 CharacterLiteralClass,
311 LabelStmtClass = 131,312 ChooseExprClass,
312 MSDependentExistsStmtClass = 132,313 CompoundLiteralExprClass,
313 NullStmtClass = 133,314 ConvertVectorExprClass,
314 OMPAtomicDirectiveClass = 134,315 CoawaitExprClass,
315 OMPBarrierDirectiveClass = 135,316 CoyieldExprClass,
316 OMPCancelDirectiveClass = 136,317 DeclRefExprClass,
317 OMPCancellationPointDirectiveClass = 137,318 DependentCoawaitExprClass,
318 OMPCriticalDirectiveClass = 138,319 DependentScopeDeclRefExprClass,
319 OMPFlushDirectiveClass = 139,320 DesignatedInitExprClass,
320 OMPDistributeDirectiveClass = 140,321 DesignatedInitUpdateExprClass,
321 OMPDistributeParallelForDirectiveClass = 141,322 ExpressionTraitExprClass,
322 OMPDistributeParallelForSimdDirectiveClass = 142,323 ExtVectorElementExprClass,
323 OMPDistributeSimdDirectiveClass = 143,324 FixedPointLiteralClass,
324 OMPForDirectiveClass = 144,325 FloatingLiteralClass,
325 OMPForSimdDirectiveClass = 145,326 ConstantExprClass,
326 OMPParallelForDirectiveClass = 146,327 ExprWithCleanupsClass,
327 OMPParallelForSimdDirectiveClass = 147,328 FunctionParmPackExprClass,
328 OMPSimdDirectiveClass = 148,329 GNUNullExprClass,
329 OMPTargetParallelForSimdDirectiveClass = 149,330 GenericSelectionExprClass,
330 OMPTargetSimdDirectiveClass = 150,331 ImaginaryLiteralClass,
331 OMPTargetTeamsDistributeDirectiveClass = 151,332 ImplicitValueInitExprClass,
332 OMPTargetTeamsDistributeParallelForDirectiveClass = 152,333 InitListExprClass,
333 OMPTargetTeamsDistributeParallelForSimdDirectiveClass = 153,334 IntegerLiteralClass,
334 OMPTargetTeamsDistributeSimdDirectiveClass = 154,335 LambdaExprClass,
335 OMPTaskLoopDirectiveClass = 155,336 MSPropertyRefExprClass,
336 OMPTaskLoopSimdDirectiveClass = 156,337 MSPropertySubscriptExprClass,
337 OMPTeamsDistributeDirectiveClass = 157,338 MaterializeTemporaryExprClass,
338 OMPTeamsDistributeParallelForDirectiveClass = 158,339 MemberExprClass,
339 OMPTeamsDistributeParallelForSimdDirectiveClass = 159,340 NoInitExprClass,
340 OMPTeamsDistributeSimdDirectiveClass = 160,341 OMPArraySectionExprClass,
341 OMPMasterDirectiveClass = 161,342 ObjCArrayLiteralClass,
342 OMPOrderedDirectiveClass = 162,343 ObjCAvailabilityCheckExprClass,
343 OMPParallelDirectiveClass = 163,344 ObjCBoolLiteralExprClass,
344 OMPParallelSectionsDirectiveClass = 164,345 ObjCBoxedExprClass,
345 OMPSectionDirectiveClass = 165,346 ObjCDictionaryLiteralClass,
346 OMPSectionsDirectiveClass = 166,347 ObjCEncodeExprClass,
347 OMPSingleDirectiveClass = 167,348 ObjCIndirectCopyRestoreExprClass,
348 OMPTargetDataDirectiveClass = 168,349 ObjCIsaExprClass,
349 OMPTargetDirectiveClass = 169,350 ObjCIvarRefExprClass,
350 OMPTargetEnterDataDirectiveClass = 170,351 ObjCMessageExprClass,
351 OMPTargetExitDataDirectiveClass = 171,352 ObjCPropertyRefExprClass,
352 OMPTargetParallelDirectiveClass = 172,353 ObjCProtocolExprClass,
353 OMPTargetParallelForDirectiveClass = 173,354 ObjCSelectorExprClass,
354 OMPTargetTeamsDirectiveClass = 174,355 ObjCStringLiteralClass,
355 OMPTargetUpdateDirectiveClass = 175,356 ObjCSubscriptRefExprClass,
356 OMPTaskDirectiveClass = 176,357 OffsetOfExprClass,
357 OMPTaskgroupDirectiveClass = 177,358 OpaqueValueExprClass,
358 OMPTaskwaitDirectiveClass = 178,359 UnresolvedLookupExprClass,
359 OMPTaskyieldDirectiveClass = 179,360 UnresolvedMemberExprClass,
360 OMPTeamsDirectiveClass = 180,361 PackExpansionExprClass,
361 ObjCAtCatchStmtClass = 181,362 ParenExprClass,
362 ObjCAtFinallyStmtClass = 182,363 ParenListExprClass,
363 ObjCAtSynchronizedStmtClass = 183,364 PredefinedExprClass,
364 ObjCAtThrowStmtClass = 184,365 PseudoObjectExprClass,
365 ObjCAtTryStmtClass = 185,366 ShuffleVectorExprClass,
366 ObjCAutoreleasePoolStmtClass = 186,367 SizeOfPackExprClass,
367 ObjCForCollectionStmtClass = 187,368 SourceLocExprClass,
368 ReturnStmtClass = 188,369 StmtExprClass,
369 SEHExceptStmtClass = 189,370 StringLiteralClass,
370 SEHFinallyStmtClass = 190,371 SubstNonTypeTemplateParmExprClass,
371 SEHLeaveStmtClass = 191,372 SubstNonTypeTemplateParmPackExprClass,
372 SEHTryStmtClass = 192,373 TypeTraitExprClass,
373 CaseStmtClass = 193,374 TypoExprClass,
374 DefaultStmtClass = 194,375 UnaryExprOrTypeTraitExprClass,
375 SwitchStmtClass = 195,376 UnaryOperatorClass,
376 WhileStmtClass = 196,377 VAArgExprClass,
378 LabelStmtClass,
379 WhileStmtClass,
377};380};
378381
379pub const ZigClangCK = extern enum {382pub const ZigClangCK = extern enum {
380 Dependent,383 Dependent,
381 BitCast,384 BitCast,
382 LValueBitCast,385 LValueBitCast,
386 LValueToRValueBitCast,
383 LValueToRValue,387 LValueToRValue,
384 NoOp,388 NoOp,
385 BaseToDerived,389 BaseToDerived,
...@@ -406,6 +410,8 @@ pub const ZigClangCK = extern enum {...@@ -406,6 +410,8 @@ pub const ZigClangCK = extern enum {
406 IntegralToBoolean,410 IntegralToBoolean,
407 IntegralToFloating,411 IntegralToFloating,
408 FixedPointCast,412 FixedPointCast,
413 FixedPointToIntegral,
414 IntegralToFixedPoint,
409 FixedPointToBoolean,415 FixedPointToBoolean,
410 FloatingToIntegral,416 FloatingToIntegral,
411 FloatingToBoolean,417 FloatingToBoolean,
...@@ -439,9 +445,11 @@ pub const ZigClangCK = extern enum {...@@ -439,9 +445,11 @@ pub const ZigClangCK = extern enum {
439};445};
440446
441pub const ZigClangAPValueKind = extern enum {447pub const ZigClangAPValueKind = extern enum {
442 Uninitialized,448 None,
449 Indeterminate,
443 Int,450 Int,
444 Float,451 Float,
452 FixedPoint,
445 ComplexInt,453 ComplexInt,
446 ComplexFloat,454 ComplexFloat,
447 LValue,455 LValue,
...@@ -478,6 +486,7 @@ pub const ZigClangDeclKind = extern enum {...@@ -478,6 +486,7 @@ pub const ZigClangDeclKind = extern enum {
478 ObjCMethod,486 ObjCMethod,
479 ObjCProperty,487 ObjCProperty,
480 BuiltinTemplate,488 BuiltinTemplate,
489 Concept,
481 ClassTemplate,490 ClassTemplate,
482 FunctionTemplate,491 FunctionTemplate,
483 TypeAliasTemplate,492 TypeAliasTemplate,
...@@ -519,8 +528,10 @@ pub const ZigClangDeclKind = extern enum {...@@ -519,8 +528,10 @@ pub const ZigClangDeclKind = extern enum {
519 VarTemplatePartialSpecialization,528 VarTemplatePartialSpecialization,
520 EnumConstant,529 EnumConstant,
521 IndirectField,530 IndirectField,
531 OMPDeclareMapper,
522 OMPDeclareReduction,532 OMPDeclareReduction,
523 UnresolvedUsingValue,533 UnresolvedUsingValue,
534 OMPAllocate,
524 OMPRequires,535 OMPRequires,
525 OMPThreadPrivate,536 OMPThreadPrivate,
526 ObjCPropertyImpl,537 ObjCPropertyImpl,
...@@ -939,25 +950,10 @@ pub const struct_ZigClangExprEvalResult = extern struct {...@@ -939,25 +950,10 @@ pub const struct_ZigClangExprEvalResult = extern struct {
939};950};
940951
941pub const struct_ZigClangAPValue = extern struct {952pub const struct_ZigClangAPValue = extern struct {
942 Kind: ZigClangAPValue_ValueKind,953 Kind: ZigClangAPValueKind,
943 Data: if (builtin.os == .windows and builtin.abi == .msvc) [52]u8 else [68]u8,954 Data: if (builtin.os == .windows and builtin.abi == .msvc) [52]u8 else [68]u8,
944};955};
945956
946pub const ZigClangAPValue_ValueKind = extern enum {
947 ZigClangAPValue_ValueKind_Uninitialized,
948 ZigClangAPValue_ValueKind_Int,
949 ZigClangAPValue_ValueKind_Float,
950 ZigClangAPValue_ValueKind_ComplexInt,
951 ZigClangAPValue_ValueKind_ComplexFloat,
952 ZigClangAPValue_ValueKind_LValue,
953 ZigClangAPValue_ValueKind_Vector,
954 ZigClangAPValue_ValueKind_Array,
955 ZigClangAPValue_ValueKind_Struct,
956 ZigClangAPValue_ValueKind_Union,
957 ZigClangAPValue_ValueKind_MemberPointer,
958 ZigClangAPValue_ValueKind_AddrLabelDiff,
959};
960
961pub extern fn ZigClangIntegerLiteral_EvaluateAsInt(*const ZigClangIntegerLiteral, *ZigClangExprEvalResult, *const ZigClangASTContext) bool;957pub extern fn ZigClangIntegerLiteral_EvaluateAsInt(*const ZigClangIntegerLiteral, *ZigClangExprEvalResult, *const ZigClangASTContext) bool;
962pub extern fn ZigClangIntegerLiteral_getBeginLoc(*const ZigClangIntegerLiteral) ZigClangSourceLocation;958pub extern fn ZigClangIntegerLiteral_getBeginLoc(*const ZigClangIntegerLiteral) ZigClangSourceLocation;
963959
src/link.cpp+1
...@@ -2520,6 +2520,7 @@ static void construct_linker_job_macho(LinkJob *lj) {...@@ -2520,6 +2520,7 @@ static void construct_linker_job_macho(LinkJob *lj) {
2520static void construct_linker_job(LinkJob *lj) {2520static void construct_linker_job(LinkJob *lj) {
2521 switch (target_object_format(lj->codegen->zig_target)) {2521 switch (target_object_format(lj->codegen->zig_target)) {
2522 case ZigLLVM_UnknownObjectFormat:2522 case ZigLLVM_UnknownObjectFormat:
2523 case ZigLLVM_XCOFF:
2523 zig_unreachable();2524 zig_unreachable();
25242525
2525 case ZigLLVM_COFF:2526 case ZigLLVM_COFF:
src/target.cpp+55-11
...@@ -235,6 +235,7 @@ const char *target_oformat_name(ZigLLVM_ObjectFormatType oformat) {...@@ -235,6 +235,7 @@ const char *target_oformat_name(ZigLLVM_ObjectFormatType oformat) {
235 case ZigLLVM_ELF: return "elf";235 case ZigLLVM_ELF: return "elf";
236 case ZigLLVM_MachO: return "macho";236 case ZigLLVM_MachO: return "macho";
237 case ZigLLVM_Wasm: return "wasm";237 case ZigLLVM_Wasm: return "wasm";
238 case ZigLLVM_XCOFF: return "xcoff";
238 }239 }
239 zig_unreachable();240 zig_unreachable();
240}241}
...@@ -337,6 +338,8 @@ ZigLLVM_OSType get_llvm_os_type(Os os_type) {...@@ -337,6 +338,8 @@ ZigLLVM_OSType get_llvm_os_type(Os os_type) {
337 return ZigLLVM_Hurd;338 return ZigLLVM_Hurd;
338 case OsWASI:339 case OsWASI:
339 return ZigLLVM_WASI;340 return ZigLLVM_WASI;
341 case OsEmscripten:
342 return ZigLLVM_Emscripten;
340 }343 }
341 zig_unreachable();344 zig_unreachable();
342}345}
...@@ -412,6 +415,8 @@ static Os get_zig_os_type(ZigLLVM_OSType os_type) {...@@ -412,6 +415,8 @@ static Os get_zig_os_type(ZigLLVM_OSType os_type) {
412 return OsHurd;415 return OsHurd;
413 case ZigLLVM_WASI:416 case ZigLLVM_WASI:
414 return OsWASI;417 return OsWASI;
418 case ZigLLVM_Emscripten:
419 return OsEmscripten;
415 }420 }
416 zig_unreachable();421 zig_unreachable();
417}422}
...@@ -457,6 +462,7 @@ const char *target_os_name(Os os_type) {...@@ -457,6 +462,7 @@ const char *target_os_name(Os os_type) {
457 case OsHermitCore:462 case OsHermitCore:
458 case OsHurd:463 case OsHurd:
459 case OsWASI:464 case OsWASI:
465 case OsEmscripten:
460 return ZigLLVMGetOSTypeName(get_llvm_os_type(os_type));466 return ZigLLVMGetOSTypeName(get_llvm_os_type(os_type));
461 }467 }
462 zig_unreachable();468 zig_unreachable();
...@@ -569,6 +575,7 @@ SubArchList target_subarch_list(ZigLLVM_ArchType arch) {...@@ -569,6 +575,7 @@ SubArchList target_subarch_list(ZigLLVM_ArchType arch) {
569575
570 case ZigLLVM_aarch64:576 case ZigLLVM_aarch64:
571 case ZigLLVM_aarch64_be:577 case ZigLLVM_aarch64_be:
578 case ZigLLVM_aarch64_32:
572 return SubArchListArm64;579 return SubArchListArm64;
573580
574 case ZigLLVM_kalimba:581 case ZigLLVM_kalimba:
...@@ -843,6 +850,7 @@ uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) {...@@ -843,6 +850,7 @@ uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) {
843 case ZigLLVM_shave:850 case ZigLLVM_shave:
844 case ZigLLVM_wasm32:851 case ZigLLVM_wasm32:
845 case ZigLLVM_renderscript32:852 case ZigLLVM_renderscript32:
853 case ZigLLVM_aarch64_32:
846 return 32;854 return 32;
847855
848 case ZigLLVM_aarch64:856 case ZigLLVM_aarch64:
...@@ -916,6 +924,7 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) {...@@ -916,6 +924,7 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) {
916 case OsNetBSD:924 case OsNetBSD:
917 case OsOpenBSD:925 case OsOpenBSD:
918 case OsWASI:926 case OsWASI:
927 case OsEmscripten:
919 switch (id) {928 switch (id) {
920 case CIntTypeShort:929 case CIntTypeShort:
921 case CIntTypeUShort:930 case CIntTypeUShort:
...@@ -1091,7 +1100,40 @@ static bool is_64_bit(ZigLLVM_ArchType arch) {...@@ -1091,7 +1100,40 @@ static bool is_64_bit(ZigLLVM_ArchType arch) {
1091 return target_arch_pointer_bit_width(arch) == 64;1100 return target_arch_pointer_bit_width(arch) == 64;
1092}1101}
10931102
1103bool target_is_android(const ZigTarget *target) {
1104 return target->abi == ZigLLVM_Android;
1105}
1106
1094const char *target_dynamic_linker(const ZigTarget *target) {1107const char *target_dynamic_linker(const ZigTarget *target) {
1108 if (target_is_android(target)) {
1109 return is_64_bit(target->arch) ? "/system/bin/linker64" : "/system/bin/linker";
1110 }
1111
1112 if (target_is_musl(target)) {
1113 Buf buf = BUF_INIT;
1114 buf_init_from_str(&buf, "/lib/ld-musl-");
1115 bool is_arm = false;
1116 switch (target->arch) {
1117 case ZigLLVM_arm:
1118 case ZigLLVM_thumb:
1119 buf_append_str(&buf, "arm");
1120 is_arm = true;
1121 break;
1122 case ZigLLVM_armeb:
1123 case ZigLLVM_thumbeb:
1124 buf_append_str(&buf, "armeb");
1125 is_arm = true;
1126 break;
1127 default:
1128 buf_append_str(&buf, target_arch_name(target->arch));
1129 }
1130 if (is_arm && get_float_abi(target) == FloatAbiHard) {
1131 buf_append_str(&buf, "hf");
1132 }
1133 buf_append_str(&buf, ".so.1");
1134 return buf_ptr(&buf);
1135 }
1136
1095 switch (target->os) {1137 switch (target->os) {
1096 case OsFreeBSD:1138 case OsFreeBSD:
1097 return "/libexec/ld-elf.so.1";1139 return "/libexec/ld-elf.so.1";
...@@ -1099,14 +1141,6 @@ const char *target_dynamic_linker(const ZigTarget *target) {...@@ -1099,14 +1141,6 @@ const char *target_dynamic_linker(const ZigTarget *target) {
1099 return "/libexec/ld.elf_so";1141 return "/libexec/ld.elf_so";
1100 case OsLinux: {1142 case OsLinux: {
1101 const ZigLLVM_EnvironmentType abi = target->abi;1143 const ZigLLVM_EnvironmentType abi = target->abi;
1102 if (abi == ZigLLVM_Android) {
1103 if (is_64_bit(target->arch)) {
1104 return "/system/bin/linker64";
1105 } else {
1106 return "/system/bin/linker";
1107 }
1108 }
1109
1110 switch (target->arch) {1144 switch (target->arch) {
1111 case ZigLLVM_UnknownArch:1145 case ZigLLVM_UnknownArch:
1112 zig_unreachable();1146 zig_unreachable();
...@@ -1121,6 +1155,9 @@ const char *target_dynamic_linker(const ZigTarget *target) {...@@ -1121,6 +1155,9 @@ const char *target_dynamic_linker(const ZigTarget *target) {
1121 case ZigLLVM_aarch64_be:1155 case ZigLLVM_aarch64_be:
1122 return "/lib/ld-linux-aarch64_be.so.1";1156 return "/lib/ld-linux-aarch64_be.so.1";
11231157
1158 case ZigLLVM_aarch64_32:
1159 return "/lib/ld-linux-aarch64_32.so.1";
1160
1124 case ZigLLVM_arm:1161 case ZigLLVM_arm:
1125 case ZigLLVM_thumb:1162 case ZigLLVM_thumb:
1126 if (get_float_abi(target) == FloatAbiHard) {1163 if (get_float_abi(target) == FloatAbiHard) {
...@@ -1213,6 +1250,7 @@ const char *target_dynamic_linker(const ZigTarget *target) {...@@ -1213,6 +1250,7 @@ const char *target_dynamic_linker(const ZigTarget *target) {
1213 case OsMacOSX:1250 case OsMacOSX:
1214 case OsUefi:1251 case OsUefi:
1215 case OsWindows:1252 case OsWindows:
1253 case OsEmscripten:
1216 return nullptr;1254 return nullptr;
12171255
1218 case OsAnanas:1256 case OsAnanas:
...@@ -1280,11 +1318,12 @@ const char *arch_stack_pointer_register_name(ZigLLVM_ArchType arch) {...@@ -1280,11 +1318,12 @@ const char *arch_stack_pointer_register_name(ZigLLVM_ArchType arch) {
1280 case ZigLLVM_x86_64:1318 case ZigLLVM_x86_64:
1281 return "rsp";1319 return "rsp";
1282 case ZigLLVM_aarch64:1320 case ZigLLVM_aarch64:
1321 case ZigLLVM_aarch64_be:
1322 case ZigLLVM_aarch64_32:
1283 return "sp";1323 return "sp";
12841324
1285 case ZigLLVM_arm:1325 case ZigLLVM_arm:
1286 case ZigLLVM_thumb:1326 case ZigLLVM_thumb:
1287 case ZigLLVM_aarch64_be:
1288 case ZigLLVM_amdgcn:1327 case ZigLLVM_amdgcn:
1289 case ZigLLVM_amdil:1328 case ZigLLVM_amdil:
1290 case ZigLLVM_amdil64:1329 case ZigLLVM_amdil64:
...@@ -1338,10 +1377,11 @@ bool target_is_arm(const ZigTarget *target) {...@@ -1338,10 +1377,11 @@ bool target_is_arm(const ZigTarget *target) {
1338 case ZigLLVM_UnknownArch:1377 case ZigLLVM_UnknownArch:
1339 zig_unreachable();1378 zig_unreachable();
1340 case ZigLLVM_aarch64:1379 case ZigLLVM_aarch64:
1341 case ZigLLVM_arm:
1342 case ZigLLVM_thumb:
1343 case ZigLLVM_aarch64_be:1380 case ZigLLVM_aarch64_be:
1381 case ZigLLVM_aarch64_32:
1382 case ZigLLVM_arm:
1344 case ZigLLVM_armeb:1383 case ZigLLVM_armeb:
1384 case ZigLLVM_thumb:
1345 case ZigLLVM_thumbeb:1385 case ZigLLVM_thumbeb:
1346 return true;1386 return true;
13471387
...@@ -1490,6 +1530,7 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) {...@@ -1490,6 +1530,7 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) {
1490 return ZigLLVM_MSVC;1530 return ZigLLVM_MSVC;
1491 case OsLinux:1531 case OsLinux:
1492 case OsWASI:1532 case OsWASI:
1533 case OsEmscripten:
1493 return ZigLLVM_Musl;1534 return ZigLLVM_Musl;
1494 }1535 }
1495 zig_unreachable();1536 zig_unreachable();
...@@ -1607,12 +1648,15 @@ const char *target_libc_generic_name(const ZigTarget *target) {...@@ -1607,12 +1648,15 @@ const char *target_libc_generic_name(const ZigTarget *target) {
1607 case ZigLLVM_CODE16:1648 case ZigLLVM_CODE16:
1608 case ZigLLVM_EABI:1649 case ZigLLVM_EABI:
1609 case ZigLLVM_EABIHF:1650 case ZigLLVM_EABIHF:
1651 case ZigLLVM_ELFv1:
1652 case ZigLLVM_ELFv2:
1610 case ZigLLVM_Android:1653 case ZigLLVM_Android:
1611 case ZigLLVM_MSVC:1654 case ZigLLVM_MSVC:
1612 case ZigLLVM_Itanium:1655 case ZigLLVM_Itanium:
1613 case ZigLLVM_Cygnus:1656 case ZigLLVM_Cygnus:
1614 case ZigLLVM_CoreCLR:1657 case ZigLLVM_CoreCLR:
1615 case ZigLLVM_Simulator:1658 case ZigLLVM_Simulator:
1659 case ZigLLVM_MacABI:
1616 zig_unreachable();1660 zig_unreachable();
1617 }1661 }
1618 zig_unreachable();1662 zig_unreachable();
src/target.hpp+1
...@@ -186,6 +186,7 @@ bool target_abi_is_musl(ZigLLVM_EnvironmentType abi);...@@ -186,6 +186,7 @@ bool target_abi_is_musl(ZigLLVM_EnvironmentType abi);
186bool target_is_glibc(const ZigTarget *target);186bool target_is_glibc(const ZigTarget *target);
187bool target_is_musl(const ZigTarget *target);187bool target_is_musl(const ZigTarget *target);
188bool target_is_wasm(const ZigTarget *target);188bool target_is_wasm(const ZigTarget *target);
189bool target_is_android(const ZigTarget *target);
189bool target_is_single_threaded(const ZigTarget *target);190bool target_is_single_threaded(const ZigTarget *target);
190bool target_supports_stack_probing(const ZigTarget *target);191bool target_supports_stack_probing(const ZigTarget *target);
191bool target_has_debug_info(const ZigTarget *target);192bool target_has_debug_info(const ZigTarget *target);
src/translate_c.cpp+33-1
...@@ -1301,6 +1301,7 @@ static AstNode *trans_type(Context *c, const ZigClangType *ty, ZigClangSourceLoc...@@ -1301,6 +1301,7 @@ static AstNode *trans_type(Context *c, const ZigClangType *ty, ZigClangSourceLoc
1301 case ZigClangType_DeducedTemplateSpecialization:1301 case ZigClangType_DeducedTemplateSpecialization:
1302 case ZigClangType_DependentAddressSpace:1302 case ZigClangType_DependentAddressSpace:
1303 case ZigClangType_DependentVector:1303 case ZigClangType_DependentVector:
1304 case ZigClangType_MacroQualified:
1304 emit_warning(c, source_loc, "unsupported type: '%s'", ZigClangType_getTypeClassName(ty));1305 emit_warning(c, source_loc, "unsupported type: '%s'", ZigClangType_getTypeClassName(ty));
1305 return nullptr;1306 return nullptr;
1306 }1307 }
...@@ -2188,6 +2189,15 @@ static AstNode *trans_implicit_cast_expr(Context *c, ResultUsed result_used, Tra...@@ -2188,6 +2189,15 @@ static AstNode *trans_implicit_cast_expr(Context *c, ResultUsed result_used, Tra
2188 case ZigClangCK_IntToOCLSampler:2189 case ZigClangCK_IntToOCLSampler:
2189 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CK_IntToOCLSampler");2190 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CK_IntToOCLSampler");
2190 return nullptr;2191 return nullptr;
2192 case ZigClangCK_LValueToRValueBitCast:
2193 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CK_LValueToRValueBitCast");
2194 return nullptr;
2195 case ZigClangCK_FixedPointToIntegral:
2196 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CK_FixedPointToIntegral");
2197 return nullptr;
2198 case ZigClangCK_IntegralToFixedPoint:
2199 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C CK_IntegralToFixedPointral");
2200 return nullptr;
2191 }2201 }
2192 zig_unreachable();2202 zig_unreachable();
2193}2203}
...@@ -2671,6 +2681,15 @@ static int trans_local_declaration(Context *c, TransScope *scope, const clang::D...@@ -2671,6 +2681,15 @@ static int trans_local_declaration(Context *c, TransScope *scope, const clang::D
2671 case clang::Decl::TranslationUnit:2681 case clang::Decl::TranslationUnit:
2672 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C TranslationUnit");2682 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C TranslationUnit");
2673 return ErrorUnexpected;2683 return ErrorUnexpected;
2684 case clang::Decl::Concept:
2685 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C Concept");
2686 return ErrorUnexpected;
2687 case clang::Decl::OMPDeclareMapper:
2688 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPDeclareMapper");
2689 return ErrorUnexpected;
2690 case clang::Decl::OMPAllocate:
2691 emit_warning(c, bitcast(stmt->getBeginLoc()), "TODO handle C OMPAllocate");
2692 return ErrorUnexpected;
2674 }2693 }
2675 zig_unreachable();2694 zig_unreachable();
2676 }2695 }
...@@ -2946,6 +2965,7 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *...@@ -2946,6 +2965,7 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *
2946 case ZigClangType_DeducedTemplateSpecialization:2965 case ZigClangType_DeducedTemplateSpecialization:
2947 case ZigClangType_DependentAddressSpace:2966 case ZigClangType_DependentAddressSpace:
2948 case ZigClangType_DependentVector:2967 case ZigClangType_DependentVector:
2968 case ZigClangType_MacroQualified:
2949 return res;2969 return res;
2950 }2970 }
2951 zig_unreachable();2971 zig_unreachable();
...@@ -4031,6 +4051,12 @@ static int trans_stmt_extra(Context *c, TransScope *scope, const ZigClangStmt *s...@@ -4031,6 +4051,12 @@ static int trans_stmt_extra(Context *c, TransScope *scope, const ZigClangStmt *s
4031 case ZigClangStmt_SEHTryStmtClass:4051 case ZigClangStmt_SEHTryStmtClass:
4032 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SEHTryStmtClass");4052 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SEHTryStmtClass");
4033 return ErrorUnexpected;4053 return ErrorUnexpected;
4054 case ZigClangStmt_BuiltinBitCastExprClass:
4055 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C BuiltinBitCastExprClass");
4056 return ErrorUnexpected;
4057 case ZigClangStmt_SourceLocExprClass:
4058 emit_warning(c, ZigClangStmt_getBeginLoc(stmt), "TODO handle C SourceLocExprClass");
4059 return ErrorUnexpected;
4034 }4060 }
4035 zig_unreachable();4061 zig_unreachable();
4036}4062}
...@@ -4448,7 +4474,7 @@ static AstNode *trans_ap_value(Context *c, const ZigClangAPValue *ap_value, ZigC...@@ -4448,7 +4474,7 @@ static AstNode *trans_ap_value(Context *c, const ZigClangAPValue *ap_value, ZigC
4448 switch (ZigClangAPValue_getKind(ap_value)) {4474 switch (ZigClangAPValue_getKind(ap_value)) {
4449 case ZigClangAPValueInt:4475 case ZigClangAPValueInt:
4450 return trans_create_node_apint(c, ZigClangAPValue_getInt(ap_value));4476 return trans_create_node_apint(c, ZigClangAPValue_getInt(ap_value));
4451 case ZigClangAPValueUninitialized:4477 case ZigClangAPValueNone:
4452 return trans_create_node(c, NodeTypeUndefinedLiteral);4478 return trans_create_node(c, NodeTypeUndefinedLiteral);
4453 case ZigClangAPValueArray: {4479 case ZigClangAPValueArray: {
4454 emit_warning(c, source_loc, "TODO add a test case for this code");4480 emit_warning(c, source_loc, "TODO add a test case for this code");
...@@ -4539,6 +4565,12 @@ static AstNode *trans_ap_value(Context *c, const ZigClangAPValue *ap_value, ZigC...@@ -4539,6 +4565,12 @@ static AstNode *trans_ap_value(Context *c, const ZigClangAPValue *ap_value, ZigC
4539 case ZigClangAPValueAddrLabelDiff:4565 case ZigClangAPValueAddrLabelDiff:
4540 emit_warning(c, source_loc, "unsupported initializer value kind: AddrLabelDiff");4566 emit_warning(c, source_loc, "unsupported initializer value kind: AddrLabelDiff");
4541 return nullptr;4567 return nullptr;
4568 case ZigClangAPValueIndeterminate:
4569 emit_warning(c, source_loc, "unsupported initializer value kind: Indeterminate");
4570 return nullptr;
4571 case ZigClangAPValueFixedPoint:
4572 emit_warning(c, source_loc, "unsupported initializer value kind: FixedPoint");
4573 return nullptr;
4542 }4574 }
4543 zig_unreachable();4575 zig_unreachable();
4544}4576}
src/zig_clang.cpp+25-17
...@@ -182,6 +182,7 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {...@@ -182,6 +182,7 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {
182 case clang::CK_IntegralToFloating:182 case clang::CK_IntegralToFloating:
183 case clang::CK_IntegralToPointer:183 case clang::CK_IntegralToPointer:
184 case clang::CK_LValueBitCast:184 case clang::CK_LValueBitCast:
185 case clang::CK_LValueToRValueBitCast:
185 case clang::CK_LValueToRValue:186 case clang::CK_LValueToRValue:
186 case clang::CK_MemberPointerToBoolean:187 case clang::CK_MemberPointerToBoolean:
187 case clang::CK_NoOp:188 case clang::CK_NoOp:
...@@ -199,6 +200,8 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {...@@ -199,6 +200,8 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {
199 case clang::CK_VectorSplat:200 case clang::CK_VectorSplat:
200 case clang::CK_ZeroToOCLOpaqueType:201 case clang::CK_ZeroToOCLOpaqueType:
201 case clang::CK_FixedPointCast:202 case clang::CK_FixedPointCast:
203 case clang::CK_FixedPointToIntegral:
204 case clang::CK_IntegralToFixedPoint:
202 case clang::CK_FixedPointToBoolean:205 case clang::CK_FixedPointToBoolean:
203 break;206 break;
204 }207 }
...@@ -207,6 +210,7 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {...@@ -207,6 +210,7 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {
207static_assert((clang::CastKind)ZigClangCK_Dependent == clang::CK_Dependent, "");210static_assert((clang::CastKind)ZigClangCK_Dependent == clang::CK_Dependent, "");
208static_assert((clang::CastKind)ZigClangCK_BitCast == clang::CK_BitCast, "");211static_assert((clang::CastKind)ZigClangCK_BitCast == clang::CK_BitCast, "");
209static_assert((clang::CastKind)ZigClangCK_LValueBitCast == clang::CK_LValueBitCast, "");212static_assert((clang::CastKind)ZigClangCK_LValueBitCast == clang::CK_LValueBitCast, "");
213static_assert((clang::CastKind)ZigClangCK_LValueToRValueBitCast == clang::CK_LValueToRValueBitCast, "");
210static_assert((clang::CastKind)ZigClangCK_LValueToRValue == clang::CK_LValueToRValue, "");214static_assert((clang::CastKind)ZigClangCK_LValueToRValue == clang::CK_LValueToRValue, "");
211static_assert((clang::CastKind)ZigClangCK_NoOp == clang::CK_NoOp, "");215static_assert((clang::CastKind)ZigClangCK_NoOp == clang::CK_NoOp, "");
212static_assert((clang::CastKind)ZigClangCK_BaseToDerived == clang::CK_BaseToDerived, "");216static_assert((clang::CastKind)ZigClangCK_BaseToDerived == clang::CK_BaseToDerived, "");
...@@ -233,6 +237,8 @@ static_assert((clang::CastKind)ZigClangCK_IntegralCast == clang::CK_IntegralCast...@@ -233,6 +237,8 @@ static_assert((clang::CastKind)ZigClangCK_IntegralCast == clang::CK_IntegralCast
233static_assert((clang::CastKind)ZigClangCK_IntegralToBoolean == clang::CK_IntegralToBoolean, "");237static_assert((clang::CastKind)ZigClangCK_IntegralToBoolean == clang::CK_IntegralToBoolean, "");
234static_assert((clang::CastKind)ZigClangCK_IntegralToFloating == clang::CK_IntegralToFloating, "");238static_assert((clang::CastKind)ZigClangCK_IntegralToFloating == clang::CK_IntegralToFloating, "");
235static_assert((clang::CastKind)ZigClangCK_FixedPointCast == clang::CK_FixedPointCast, "");239static_assert((clang::CastKind)ZigClangCK_FixedPointCast == clang::CK_FixedPointCast, "");
240static_assert((clang::CastKind)ZigClangCK_FixedPointToIntegral == clang::CK_FixedPointToIntegral, "");
241static_assert((clang::CastKind)ZigClangCK_IntegralToFixedPoint == clang::CK_IntegralToFixedPoint, "");
236static_assert((clang::CastKind)ZigClangCK_FixedPointToBoolean == clang::CK_FixedPointToBoolean, "");242static_assert((clang::CastKind)ZigClangCK_FixedPointToBoolean == clang::CK_FixedPointToBoolean, "");
237static_assert((clang::CastKind)ZigClangCK_FloatingToIntegral == clang::CK_FloatingToIntegral, "");243static_assert((clang::CastKind)ZigClangCK_FloatingToIntegral == clang::CK_FloatingToIntegral, "");
238static_assert((clang::CastKind)ZigClangCK_FloatingToBoolean == clang::CK_FloatingToBoolean, "");244static_assert((clang::CastKind)ZigClangCK_FloatingToBoolean == clang::CK_FloatingToBoolean, "");
...@@ -288,6 +294,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {...@@ -288,6 +294,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
288 case clang::Type::UnresolvedUsing:294 case clang::Type::UnresolvedUsing:
289 case clang::Type::Paren:295 case clang::Type::Paren:
290 case clang::Type::Typedef:296 case clang::Type::Typedef:
297 case clang::Type::MacroQualified:
291 case clang::Type::Adjusted:298 case clang::Type::Adjusted:
292 case clang::Type::Decayed:299 case clang::Type::Decayed:
293 case clang::Type::TypeOfExpr:300 case clang::Type::TypeOfExpr:
...@@ -339,6 +346,7 @@ static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Typ...@@ -339,6 +346,7 @@ static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Typ
339static_assert((clang::Type::TypeClass)ZigClangType_UnresolvedUsing == clang::Type::UnresolvedUsing, "");346static_assert((clang::Type::TypeClass)ZigClangType_UnresolvedUsing == clang::Type::UnresolvedUsing, "");
340static_assert((clang::Type::TypeClass)ZigClangType_Paren == clang::Type::Paren, "");347static_assert((clang::Type::TypeClass)ZigClangType_Paren == clang::Type::Paren, "");
341static_assert((clang::Type::TypeClass)ZigClangType_Typedef == clang::Type::Typedef, "");348static_assert((clang::Type::TypeClass)ZigClangType_Typedef == clang::Type::Typedef, "");
349static_assert((clang::Type::TypeClass)ZigClangType_MacroQualified == clang::Type::MacroQualified, "");
342static_assert((clang::Type::TypeClass)ZigClangType_Adjusted == clang::Type::Adjusted, "");350static_assert((clang::Type::TypeClass)ZigClangType_Adjusted == clang::Type::Adjusted, "");
343static_assert((clang::Type::TypeClass)ZigClangType_Decayed == clang::Type::Decayed, "");351static_assert((clang::Type::TypeClass)ZigClangType_Decayed == clang::Type::Decayed, "");
344static_assert((clang::Type::TypeClass)ZigClangType_TypeOfExpr == clang::Type::TypeOfExpr, "");352static_assert((clang::Type::TypeClass)ZigClangType_TypeOfExpr == clang::Type::TypeOfExpr, "");
...@@ -423,6 +431,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {...@@ -423,6 +431,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
423 case clang::Stmt::ConditionalOperatorClass:431 case clang::Stmt::ConditionalOperatorClass:
424 case clang::Stmt::BinaryConditionalOperatorClass:432 case clang::Stmt::BinaryConditionalOperatorClass:
425 case clang::Stmt::ImplicitCastExprClass:433 case clang::Stmt::ImplicitCastExprClass:
434 case clang::Stmt::BuiltinBitCastExprClass:
426 case clang::Stmt::CStyleCastExprClass:435 case clang::Stmt::CStyleCastExprClass:
427 case clang::Stmt::CompoundLiteralExprClass:436 case clang::Stmt::CompoundLiteralExprClass:
428 case clang::Stmt::ExtVectorElementExprClass:437 case clang::Stmt::ExtVectorElementExprClass:
...@@ -479,6 +488,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {...@@ -479,6 +488,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
479 case clang::Stmt::CXXNoexceptExprClass:488 case clang::Stmt::CXXNoexceptExprClass:
480 case clang::Stmt::PackExpansionExprClass:489 case clang::Stmt::PackExpansionExprClass:
481 case clang::Stmt::SizeOfPackExprClass:490 case clang::Stmt::SizeOfPackExprClass:
491 case clang::Stmt::SourceLocExprClass:
482 case clang::Stmt::SubstNonTypeTemplateParmExprClass:492 case clang::Stmt::SubstNonTypeTemplateParmExprClass:
483 case clang::Stmt::SubstNonTypeTemplateParmPackExprClass:493 case clang::Stmt::SubstNonTypeTemplateParmPackExprClass:
484 case clang::Stmt::FunctionParmPackExprClass:494 case clang::Stmt::FunctionParmPackExprClass:
...@@ -624,6 +634,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_CompoundAssignOperatorClass =...@@ -624,6 +634,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_CompoundAssignOperatorClass =
624static_assert((clang::Stmt::StmtClass)ZigClangStmt_ConditionalOperatorClass == clang::Stmt::ConditionalOperatorClass, "");634static_assert((clang::Stmt::StmtClass)ZigClangStmt_ConditionalOperatorClass == clang::Stmt::ConditionalOperatorClass, "");
625static_assert((clang::Stmt::StmtClass)ZigClangStmt_BinaryConditionalOperatorClass == clang::Stmt::BinaryConditionalOperatorClass, "");635static_assert((clang::Stmt::StmtClass)ZigClangStmt_BinaryConditionalOperatorClass == clang::Stmt::BinaryConditionalOperatorClass, "");
626static_assert((clang::Stmt::StmtClass)ZigClangStmt_ImplicitCastExprClass == clang::Stmt::ImplicitCastExprClass, "");636static_assert((clang::Stmt::StmtClass)ZigClangStmt_ImplicitCastExprClass == clang::Stmt::ImplicitCastExprClass, "");
637static_assert((clang::Stmt::StmtClass)ZigClangStmt_BuiltinBitCastExprClass == clang::Stmt::BuiltinBitCastExprClass, "");
627static_assert((clang::Stmt::StmtClass)ZigClangStmt_CStyleCastExprClass == clang::Stmt::CStyleCastExprClass, "");638static_assert((clang::Stmt::StmtClass)ZigClangStmt_CStyleCastExprClass == clang::Stmt::CStyleCastExprClass, "");
628static_assert((clang::Stmt::StmtClass)ZigClangStmt_CompoundLiteralExprClass == clang::Stmt::CompoundLiteralExprClass, "");639static_assert((clang::Stmt::StmtClass)ZigClangStmt_CompoundLiteralExprClass == clang::Stmt::CompoundLiteralExprClass, "");
629static_assert((clang::Stmt::StmtClass)ZigClangStmt_ExtVectorElementExprClass == clang::Stmt::ExtVectorElementExprClass, "");640static_assert((clang::Stmt::StmtClass)ZigClangStmt_ExtVectorElementExprClass == clang::Stmt::ExtVectorElementExprClass, "");
...@@ -680,6 +691,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnresolvedMemberExprClass ==...@@ -680,6 +691,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnresolvedMemberExprClass ==
680static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXNoexceptExprClass == clang::Stmt::CXXNoexceptExprClass, "");691static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXNoexceptExprClass == clang::Stmt::CXXNoexceptExprClass, "");
681static_assert((clang::Stmt::StmtClass)ZigClangStmt_PackExpansionExprClass == clang::Stmt::PackExpansionExprClass, "");692static_assert((clang::Stmt::StmtClass)ZigClangStmt_PackExpansionExprClass == clang::Stmt::PackExpansionExprClass, "");
682static_assert((clang::Stmt::StmtClass)ZigClangStmt_SizeOfPackExprClass == clang::Stmt::SizeOfPackExprClass, "");693static_assert((clang::Stmt::StmtClass)ZigClangStmt_SizeOfPackExprClass == clang::Stmt::SizeOfPackExprClass, "");
694static_assert((clang::Stmt::StmtClass)ZigClangStmt_SourceLocExprClass == clang::Stmt::SourceLocExprClass, "");
683static_assert((clang::Stmt::StmtClass)ZigClangStmt_SubstNonTypeTemplateParmExprClass == clang::Stmt::SubstNonTypeTemplateParmExprClass, "");695static_assert((clang::Stmt::StmtClass)ZigClangStmt_SubstNonTypeTemplateParmExprClass == clang::Stmt::SubstNonTypeTemplateParmExprClass, "");
684static_assert((clang::Stmt::StmtClass)ZigClangStmt_SubstNonTypeTemplateParmPackExprClass == clang::Stmt::SubstNonTypeTemplateParmPackExprClass, "");696static_assert((clang::Stmt::StmtClass)ZigClangStmt_SubstNonTypeTemplateParmPackExprClass == clang::Stmt::SubstNonTypeTemplateParmPackExprClass, "");
685static_assert((clang::Stmt::StmtClass)ZigClangStmt_FunctionParmPackExprClass == clang::Stmt::FunctionParmPackExprClass, "");697static_assert((clang::Stmt::StmtClass)ZigClangStmt_FunctionParmPackExprClass == clang::Stmt::FunctionParmPackExprClass, "");
...@@ -770,9 +782,11 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDistributeSimdD...@@ -770,9 +782,11 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTargetTeamsDistributeSimdD
770782
771void ZigClang_detect_enum_APValueKind(clang::APValue::ValueKind x) {783void ZigClang_detect_enum_APValueKind(clang::APValue::ValueKind x) {
772 switch (x) {784 switch (x) {
773 case clang::APValue::Uninitialized:785 case clang::APValue::None:
786 case clang::APValue::Indeterminate:
774 case clang::APValue::Int:787 case clang::APValue::Int:
775 case clang::APValue::Float:788 case clang::APValue::Float:
789 case clang::APValue::FixedPoint:
776 case clang::APValue::ComplexInt:790 case clang::APValue::ComplexInt:
777 case clang::APValue::ComplexFloat:791 case clang::APValue::ComplexFloat:
778 case clang::APValue::LValue:792 case clang::APValue::LValue:
...@@ -786,9 +800,11 @@ void ZigClang_detect_enum_APValueKind(clang::APValue::ValueKind x) {...@@ -786,9 +800,11 @@ void ZigClang_detect_enum_APValueKind(clang::APValue::ValueKind x) {
786 }800 }
787}801}
788802
789static_assert((clang::APValue::ValueKind)ZigClangAPValueUninitialized == clang::APValue::Uninitialized, "");803static_assert((clang::APValue::ValueKind)ZigClangAPValueNone == clang::APValue::None, "");
804static_assert((clang::APValue::ValueKind)ZigClangAPValueIndeterminate == clang::APValue::Indeterminate, "");
790static_assert((clang::APValue::ValueKind)ZigClangAPValueInt == clang::APValue::Int, "");805static_assert((clang::APValue::ValueKind)ZigClangAPValueInt == clang::APValue::Int, "");
791static_assert((clang::APValue::ValueKind)ZigClangAPValueFloat == clang::APValue::Float, "");806static_assert((clang::APValue::ValueKind)ZigClangAPValueFloat == clang::APValue::Float, "");
807static_assert((clang::APValue::ValueKind)ZigClangAPValueFixedPoint == clang::APValue::FixedPoint, "");
792static_assert((clang::APValue::ValueKind)ZigClangAPValueComplexInt == clang::APValue::ComplexInt, "");808static_assert((clang::APValue::ValueKind)ZigClangAPValueComplexInt == clang::APValue::ComplexInt, "");
793static_assert((clang::APValue::ValueKind)ZigClangAPValueComplexFloat == clang::APValue::ComplexFloat, "");809static_assert((clang::APValue::ValueKind)ZigClangAPValueComplexFloat == clang::APValue::ComplexFloat, "");
794static_assert((clang::APValue::ValueKind)ZigClangAPValueLValue == clang::APValue::LValue, "");810static_assert((clang::APValue::ValueKind)ZigClangAPValueLValue == clang::APValue::LValue, "");
...@@ -826,6 +842,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {...@@ -826,6 +842,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
826 case clang::Decl::ObjCMethod:842 case clang::Decl::ObjCMethod:
827 case clang::Decl::ObjCProperty:843 case clang::Decl::ObjCProperty:
828 case clang::Decl::BuiltinTemplate:844 case clang::Decl::BuiltinTemplate:
845 case clang::Decl::Concept:
829 case clang::Decl::ClassTemplate:846 case clang::Decl::ClassTemplate:
830 case clang::Decl::FunctionTemplate:847 case clang::Decl::FunctionTemplate:
831 case clang::Decl::TypeAliasTemplate:848 case clang::Decl::TypeAliasTemplate:
...@@ -867,8 +884,10 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {...@@ -867,8 +884,10 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
867 case clang::Decl::VarTemplatePartialSpecialization:884 case clang::Decl::VarTemplatePartialSpecialization:
868 case clang::Decl::EnumConstant:885 case clang::Decl::EnumConstant:
869 case clang::Decl::IndirectField:886 case clang::Decl::IndirectField:
887 case clang::Decl::OMPDeclareMapper:
870 case clang::Decl::OMPDeclareReduction:888 case clang::Decl::OMPDeclareReduction:
871 case clang::Decl::UnresolvedUsingValue:889 case clang::Decl::UnresolvedUsingValue:
890 case clang::Decl::OMPAllocate:
872 case clang::Decl::OMPRequires:891 case clang::Decl::OMPRequires:
873 case clang::Decl::OMPThreadPrivate:892 case clang::Decl::OMPThreadPrivate:
874 case clang::Decl::ObjCPropertyImpl:893 case clang::Decl::ObjCPropertyImpl:
...@@ -904,6 +923,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclObjCProtocol == clang::Decl::ObjCPr...@@ -904,6 +923,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclObjCProtocol == clang::Decl::ObjCPr
904static_assert((clang::Decl::Kind)ZigClangDeclObjCMethod == clang::Decl::ObjCMethod, "");923static_assert((clang::Decl::Kind)ZigClangDeclObjCMethod == clang::Decl::ObjCMethod, "");
905static_assert((clang::Decl::Kind)ZigClangDeclObjCProperty == clang::Decl::ObjCProperty, "");924static_assert((clang::Decl::Kind)ZigClangDeclObjCProperty == clang::Decl::ObjCProperty, "");
906static_assert((clang::Decl::Kind)ZigClangDeclBuiltinTemplate == clang::Decl::BuiltinTemplate, "");925static_assert((clang::Decl::Kind)ZigClangDeclBuiltinTemplate == clang::Decl::BuiltinTemplate, "");
926static_assert((clang::Decl::Kind)ZigClangDeclConcept == clang::Decl::Concept, "");
907static_assert((clang::Decl::Kind)ZigClangDeclClassTemplate == clang::Decl::ClassTemplate, "");927static_assert((clang::Decl::Kind)ZigClangDeclClassTemplate == clang::Decl::ClassTemplate, "");
908static_assert((clang::Decl::Kind)ZigClangDeclFunctionTemplate == clang::Decl::FunctionTemplate, "");928static_assert((clang::Decl::Kind)ZigClangDeclFunctionTemplate == clang::Decl::FunctionTemplate, "");
909static_assert((clang::Decl::Kind)ZigClangDeclTypeAliasTemplate == clang::Decl::TypeAliasTemplate, "");929static_assert((clang::Decl::Kind)ZigClangDeclTypeAliasTemplate == clang::Decl::TypeAliasTemplate, "");
...@@ -919,6 +939,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclObjCTypeParam == clang::Decl::ObjCT...@@ -919,6 +939,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclObjCTypeParam == clang::Decl::ObjCT
919static_assert((clang::Decl::Kind)ZigClangDeclTypeAlias == clang::Decl::TypeAlias, "");939static_assert((clang::Decl::Kind)ZigClangDeclTypeAlias == clang::Decl::TypeAlias, "");
920static_assert((clang::Decl::Kind)ZigClangDeclTypedef == clang::Decl::Typedef, "");940static_assert((clang::Decl::Kind)ZigClangDeclTypedef == clang::Decl::Typedef, "");
921static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingTypename == clang::Decl::UnresolvedUsingTypename, "");941static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingTypename == clang::Decl::UnresolvedUsingTypename, "");
942static_assert((clang::Decl::Kind)ZigClangDeclOMPAllocate == clang::Decl::OMPAllocate, "");
922static_assert((clang::Decl::Kind)ZigClangDeclUsing == clang::Decl::Using, "");943static_assert((clang::Decl::Kind)ZigClangDeclUsing == clang::Decl::Using, "");
923static_assert((clang::Decl::Kind)ZigClangDeclUsingDirective == clang::Decl::UsingDirective, "");944static_assert((clang::Decl::Kind)ZigClangDeclUsingDirective == clang::Decl::UsingDirective, "");
924static_assert((clang::Decl::Kind)ZigClangDeclUsingPack == clang::Decl::UsingPack, "");945static_assert((clang::Decl::Kind)ZigClangDeclUsingPack == clang::Decl::UsingPack, "");
...@@ -945,6 +966,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclVarTemplateSpecialization == clang:...@@ -945,6 +966,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclVarTemplateSpecialization == clang:
945static_assert((clang::Decl::Kind)ZigClangDeclVarTemplatePartialSpecialization == clang::Decl::VarTemplatePartialSpecialization, "");966static_assert((clang::Decl::Kind)ZigClangDeclVarTemplatePartialSpecialization == clang::Decl::VarTemplatePartialSpecialization, "");
946static_assert((clang::Decl::Kind)ZigClangDeclEnumConstant == clang::Decl::EnumConstant, "");967static_assert((clang::Decl::Kind)ZigClangDeclEnumConstant == clang::Decl::EnumConstant, "");
947static_assert((clang::Decl::Kind)ZigClangDeclIndirectField == clang::Decl::IndirectField, "");968static_assert((clang::Decl::Kind)ZigClangDeclIndirectField == clang::Decl::IndirectField, "");
969static_assert((clang::Decl::Kind)ZigClangDeclOMPDeclareMapper == clang::Decl::OMPDeclareMapper, "");
948static_assert((clang::Decl::Kind)ZigClangDeclOMPDeclareReduction == clang::Decl::OMPDeclareReduction, "");970static_assert((clang::Decl::Kind)ZigClangDeclOMPDeclareReduction == clang::Decl::OMPDeclareReduction, "");
949static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingValue == clang::Decl::UnresolvedUsingValue, "");971static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingValue == clang::Decl::UnresolvedUsingValue, "");
950static_assert((clang::Decl::Kind)ZigClangDeclOMPRequires == clang::Decl::OMPRequires, "");972static_assert((clang::Decl::Kind)ZigClangDeclOMPRequires == clang::Decl::OMPRequires, "");
...@@ -1288,19 +1310,6 @@ static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind...@@ -1288,19 +1310,6 @@ static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind
1288static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind_UTF16 == clang::StringLiteral::UTF16, "");1310static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind_UTF16 == clang::StringLiteral::UTF16, "");
1289static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind_UTF32 == clang::StringLiteral::UTF32, "");1311static_assert((clang::StringLiteral::StringKind)ZigClangStringLiteral_StringKind_UTF32 == clang::StringLiteral::UTF32, "");
12901312
1291static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_Uninitialized == clang::APValue::ValueKind::Uninitialized, "");
1292static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_Int == clang::APValue::ValueKind::Int, "");
1293static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_Float == clang::APValue::ValueKind::Float, "");
1294static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_ComplexInt == clang::APValue::ValueKind::ComplexInt, "");
1295static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_ComplexFloat == clang::APValue::ValueKind::ComplexFloat, "");
1296static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_LValue == clang::APValue::ValueKind::LValue, "");
1297static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_Vector == clang::APValue::ValueKind::Vector, "");
1298static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_Array == clang::APValue::ValueKind::Array, "");
1299static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_Struct == clang::APValue::ValueKind::Struct, "");
1300static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_Union == clang::APValue::ValueKind::Union, "");
1301static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_MemberPointer == clang::APValue::ValueKind::MemberPointer, "");
1302static_assert((clang::APValue::ValueKind)ZigClangAPValue_ValueKind_AddrLabelDiff == clang::APValue::ValueKind::AddrLabelDiff, "");
1303
1304static_assert(sizeof(ZigClangAPValue) == sizeof(clang::APValue), "");1313static_assert(sizeof(ZigClangAPValue) == sizeof(clang::APValue), "");
13051314
1306static_assert(sizeof(ZigClangSourceLocation) == sizeof(clang::SourceLocation), "");1315static_assert(sizeof(ZigClangSourceLocation) == sizeof(clang::SourceLocation), "");
...@@ -1744,7 +1753,6 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char...@@ -1744,7 +1753,6 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char
1744 std::shared_ptr<clang::PCHContainerOperations> pch_container_ops = std::make_shared<clang::PCHContainerOperations>();1753 std::shared_ptr<clang::PCHContainerOperations> pch_container_ops = std::make_shared<clang::PCHContainerOperations>();
17451754
1746 bool only_local_decls = true;1755 bool only_local_decls = true;
1747 bool capture_diagnostics = true;
1748 bool user_files_are_volatile = true;1756 bool user_files_are_volatile = true;
1749 bool allow_pch_with_compiler_errors = false;1757 bool allow_pch_with_compiler_errors = false;
1750 bool single_file_parse = false;1758 bool single_file_parse = false;
...@@ -1753,7 +1761,7 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char...@@ -1753,7 +1761,7 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char
1753 clang::ASTUnit *ast_unit = clang::ASTUnit::LoadFromCommandLine(1761 clang::ASTUnit *ast_unit = clang::ASTUnit::LoadFromCommandLine(
1754 args_begin, args_end,1762 args_begin, args_end,
1755 pch_container_ops, diags, resources_path,1763 pch_container_ops, diags, resources_path,
1756 only_local_decls, capture_diagnostics, clang::None, true, 0, clang::TU_Complete,1764 only_local_decls, clang::CaptureDiagsKind::All, clang::None, true, 0, clang::TU_Complete,
1757 false, false, allow_pch_with_compiler_errors, clang::SkipFunctionBodiesScope::None,1765 false, false, allow_pch_with_compiler_errors, clang::SkipFunctionBodiesScope::None,
1758 single_file_parse, user_files_are_volatile, for_serialization, clang::None, err_unit,1766 single_file_parse, user_files_are_volatile, for_serialization, clang::None, err_unit,
1759 nullptr);1767 nullptr);
src/zig_clang.h+95-99
...@@ -30,23 +30,25 @@ struct ZigClangAPValueLValueBase {...@@ -30,23 +30,25 @@ struct ZigClangAPValueLValueBase {
30 unsigned Version;30 unsigned Version;
31};31};
3232
33enum ZigClangAPValue_ValueKind {33enum ZigClangAPValueKind {
34 ZigClangAPValue_ValueKind_Uninitialized,34 ZigClangAPValueNone,
35 ZigClangAPValue_ValueKind_Int,35 ZigClangAPValueIndeterminate,
36 ZigClangAPValue_ValueKind_Float,36 ZigClangAPValueInt,
37 ZigClangAPValue_ValueKind_ComplexInt,37 ZigClangAPValueFloat,
38 ZigClangAPValue_ValueKind_ComplexFloat,38 ZigClangAPValueFixedPoint,
39 ZigClangAPValue_ValueKind_LValue,39 ZigClangAPValueComplexInt,
40 ZigClangAPValue_ValueKind_Vector,40 ZigClangAPValueComplexFloat,
41 ZigClangAPValue_ValueKind_Array,41 ZigClangAPValueLValue,
42 ZigClangAPValue_ValueKind_Struct,42 ZigClangAPValueVector,
43 ZigClangAPValue_ValueKind_Union,43 ZigClangAPValueArray,
44 ZigClangAPValue_ValueKind_MemberPointer,44 ZigClangAPValueStruct,
45 ZigClangAPValue_ValueKind_AddrLabelDiff45 ZigClangAPValueUnion,
46 ZigClangAPValueMemberPointer,
47 ZigClangAPValueAddrLabelDiff,
46};48};
4749
48struct ZigClangAPValue {50struct ZigClangAPValue {
49 enum ZigClangAPValue_ValueKind Kind;51 enum ZigClangAPValueKind Kind;
50 // experimentally-derived size of clang::APValue::DataType52 // experimentally-derived size of clang::APValue::DataType
51#if defined(WIN32) && defined(_MSC_VER)53#if defined(WIN32) && defined(_MSC_VER)
52 char Data[52];54 char Data[52];
...@@ -214,6 +216,7 @@ enum ZigClangTypeClass {...@@ -214,6 +216,7 @@ enum ZigClangTypeClass {
214 ZigClangType_UnresolvedUsing,216 ZigClangType_UnresolvedUsing,
215 ZigClangType_Paren,217 ZigClangType_Paren,
216 ZigClangType_Typedef,218 ZigClangType_Typedef,
219 ZigClangType_MacroQualified,
217 ZigClangType_Adjusted,220 ZigClangType_Adjusted,
218 ZigClangType_Decayed,221 ZigClangType_Decayed,
219 ZigClangType_TypeOfExpr,222 ZigClangType_TypeOfExpr,
...@@ -243,10 +246,9 @@ enum ZigClangTypeClass {...@@ -243,10 +246,9 @@ enum ZigClangTypeClass {
243};246};
244247
245enum ZigClangStmtClass {248enum ZigClangStmtClass {
246 ZigClangStmt_NoStmtClass = 0,249 ZigClangStmt_NoStmtClass,
247 ZigClangStmt_GCCAsmStmtClass,250 ZigClangStmt_GCCAsmStmtClass,
248 ZigClangStmt_MSAsmStmtClass,251 ZigClangStmt_MSAsmStmtClass,
249 ZigClangStmt_AttributedStmtClass,
250 ZigClangStmt_BreakStmtClass,252 ZigClangStmt_BreakStmtClass,
251 ZigClangStmt_CXXCatchStmtClass,253 ZigClangStmt_CXXCatchStmtClass,
252 ZigClangStmt_CXXForRangeStmtClass,254 ZigClangStmt_CXXForRangeStmtClass,
...@@ -258,6 +260,75 @@ enum ZigClangStmtClass {...@@ -258,6 +260,75 @@ enum ZigClangStmtClass {
258 ZigClangStmt_CoroutineBodyStmtClass,260 ZigClangStmt_CoroutineBodyStmtClass,
259 ZigClangStmt_DeclStmtClass,261 ZigClangStmt_DeclStmtClass,
260 ZigClangStmt_DoStmtClass,262 ZigClangStmt_DoStmtClass,
263 ZigClangStmt_ForStmtClass,
264 ZigClangStmt_GotoStmtClass,
265 ZigClangStmt_IfStmtClass,
266 ZigClangStmt_IndirectGotoStmtClass,
267 ZigClangStmt_MSDependentExistsStmtClass,
268 ZigClangStmt_NullStmtClass,
269 ZigClangStmt_OMPAtomicDirectiveClass,
270 ZigClangStmt_OMPBarrierDirectiveClass,
271 ZigClangStmt_OMPCancelDirectiveClass,
272 ZigClangStmt_OMPCancellationPointDirectiveClass,
273 ZigClangStmt_OMPCriticalDirectiveClass,
274 ZigClangStmt_OMPFlushDirectiveClass,
275 ZigClangStmt_OMPDistributeDirectiveClass,
276 ZigClangStmt_OMPDistributeParallelForDirectiveClass,
277 ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass,
278 ZigClangStmt_OMPDistributeSimdDirectiveClass,
279 ZigClangStmt_OMPForDirectiveClass,
280 ZigClangStmt_OMPForSimdDirectiveClass,
281 ZigClangStmt_OMPParallelForDirectiveClass,
282 ZigClangStmt_OMPParallelForSimdDirectiveClass,
283 ZigClangStmt_OMPSimdDirectiveClass,
284 ZigClangStmt_OMPTargetParallelForSimdDirectiveClass,
285 ZigClangStmt_OMPTargetSimdDirectiveClass,
286 ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass,
287 ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass,
288 ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass,
289 ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass,
290 ZigClangStmt_OMPTaskLoopDirectiveClass,
291 ZigClangStmt_OMPTaskLoopSimdDirectiveClass,
292 ZigClangStmt_OMPTeamsDistributeDirectiveClass,
293 ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass,
294 ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass,
295 ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass,
296 ZigClangStmt_OMPMasterDirectiveClass,
297 ZigClangStmt_OMPOrderedDirectiveClass,
298 ZigClangStmt_OMPParallelDirectiveClass,
299 ZigClangStmt_OMPParallelSectionsDirectiveClass,
300 ZigClangStmt_OMPSectionDirectiveClass,
301 ZigClangStmt_OMPSectionsDirectiveClass,
302 ZigClangStmt_OMPSingleDirectiveClass,
303 ZigClangStmt_OMPTargetDataDirectiveClass,
304 ZigClangStmt_OMPTargetDirectiveClass,
305 ZigClangStmt_OMPTargetEnterDataDirectiveClass,
306 ZigClangStmt_OMPTargetExitDataDirectiveClass,
307 ZigClangStmt_OMPTargetParallelDirectiveClass,
308 ZigClangStmt_OMPTargetParallelForDirectiveClass,
309 ZigClangStmt_OMPTargetTeamsDirectiveClass,
310 ZigClangStmt_OMPTargetUpdateDirectiveClass,
311 ZigClangStmt_OMPTaskDirectiveClass,
312 ZigClangStmt_OMPTaskgroupDirectiveClass,
313 ZigClangStmt_OMPTaskwaitDirectiveClass,
314 ZigClangStmt_OMPTaskyieldDirectiveClass,
315 ZigClangStmt_OMPTeamsDirectiveClass,
316 ZigClangStmt_ObjCAtCatchStmtClass,
317 ZigClangStmt_ObjCAtFinallyStmtClass,
318 ZigClangStmt_ObjCAtSynchronizedStmtClass,
319 ZigClangStmt_ObjCAtThrowStmtClass,
320 ZigClangStmt_ObjCAtTryStmtClass,
321 ZigClangStmt_ObjCAutoreleasePoolStmtClass,
322 ZigClangStmt_ObjCForCollectionStmtClass,
323 ZigClangStmt_ReturnStmtClass,
324 ZigClangStmt_SEHExceptStmtClass,
325 ZigClangStmt_SEHFinallyStmtClass,
326 ZigClangStmt_SEHLeaveStmtClass,
327 ZigClangStmt_SEHTryStmtClass,
328 ZigClangStmt_CaseStmtClass,
329 ZigClangStmt_DefaultStmtClass,
330 ZigClangStmt_SwitchStmtClass,
331 ZigClangStmt_AttributedStmtClass,
261 ZigClangStmt_BinaryConditionalOperatorClass,332 ZigClangStmt_BinaryConditionalOperatorClass,
262 ZigClangStmt_ConditionalOperatorClass,333 ZigClangStmt_ConditionalOperatorClass,
263 ZigClangStmt_AddrLabelExprClass,334 ZigClangStmt_AddrLabelExprClass,
...@@ -296,6 +367,7 @@ enum ZigClangStmtClass {...@@ -296,6 +367,7 @@ enum ZigClangStmtClass {
296 ZigClangStmt_CXXMemberCallExprClass,367 ZigClangStmt_CXXMemberCallExprClass,
297 ZigClangStmt_CXXOperatorCallExprClass,368 ZigClangStmt_CXXOperatorCallExprClass,
298 ZigClangStmt_UserDefinedLiteralClass,369 ZigClangStmt_UserDefinedLiteralClass,
370 ZigClangStmt_BuiltinBitCastExprClass,
299 ZigClangStmt_CStyleCastExprClass,371 ZigClangStmt_CStyleCastExprClass,
300 ZigClangStmt_CXXFunctionalCastExprClass,372 ZigClangStmt_CXXFunctionalCastExprClass,
301 ZigClangStmt_CXXConstCastExprClass,373 ZigClangStmt_CXXConstCastExprClass,
...@@ -361,6 +433,7 @@ enum ZigClangStmtClass {...@@ -361,6 +433,7 @@ enum ZigClangStmtClass {
361 ZigClangStmt_PseudoObjectExprClass,433 ZigClangStmt_PseudoObjectExprClass,
362 ZigClangStmt_ShuffleVectorExprClass,434 ZigClangStmt_ShuffleVectorExprClass,
363 ZigClangStmt_SizeOfPackExprClass,435 ZigClangStmt_SizeOfPackExprClass,
436 ZigClangStmt_SourceLocExprClass,
364 ZigClangStmt_StmtExprClass,437 ZigClangStmt_StmtExprClass,
365 ZigClangStmt_StringLiteralClass,438 ZigClangStmt_StringLiteralClass,
366 ZigClangStmt_SubstNonTypeTemplateParmExprClass,439 ZigClangStmt_SubstNonTypeTemplateParmExprClass,
...@@ -370,75 +443,7 @@ enum ZigClangStmtClass {...@@ -370,75 +443,7 @@ enum ZigClangStmtClass {
370 ZigClangStmt_UnaryExprOrTypeTraitExprClass,443 ZigClangStmt_UnaryExprOrTypeTraitExprClass,
371 ZigClangStmt_UnaryOperatorClass,444 ZigClangStmt_UnaryOperatorClass,
372 ZigClangStmt_VAArgExprClass,445 ZigClangStmt_VAArgExprClass,
373 ZigClangStmt_ForStmtClass,
374 ZigClangStmt_GotoStmtClass,
375 ZigClangStmt_IfStmtClass,
376 ZigClangStmt_IndirectGotoStmtClass,
377 ZigClangStmt_LabelStmtClass,446 ZigClangStmt_LabelStmtClass,
378 ZigClangStmt_MSDependentExistsStmtClass,
379 ZigClangStmt_NullStmtClass,
380 ZigClangStmt_OMPAtomicDirectiveClass,
381 ZigClangStmt_OMPBarrierDirectiveClass,
382 ZigClangStmt_OMPCancelDirectiveClass,
383 ZigClangStmt_OMPCancellationPointDirectiveClass,
384 ZigClangStmt_OMPCriticalDirectiveClass,
385 ZigClangStmt_OMPFlushDirectiveClass,
386 ZigClangStmt_OMPDistributeDirectiveClass,
387 ZigClangStmt_OMPDistributeParallelForDirectiveClass,
388 ZigClangStmt_OMPDistributeParallelForSimdDirectiveClass,
389 ZigClangStmt_OMPDistributeSimdDirectiveClass,
390 ZigClangStmt_OMPForDirectiveClass,
391 ZigClangStmt_OMPForSimdDirectiveClass,
392 ZigClangStmt_OMPParallelForDirectiveClass,
393 ZigClangStmt_OMPParallelForSimdDirectiveClass,
394 ZigClangStmt_OMPSimdDirectiveClass,
395 ZigClangStmt_OMPTargetParallelForSimdDirectiveClass,
396 ZigClangStmt_OMPTargetSimdDirectiveClass,
397 ZigClangStmt_OMPTargetTeamsDistributeDirectiveClass,
398 ZigClangStmt_OMPTargetTeamsDistributeParallelForDirectiveClass,
399 ZigClangStmt_OMPTargetTeamsDistributeParallelForSimdDirectiveClass,
400 ZigClangStmt_OMPTargetTeamsDistributeSimdDirectiveClass,
401 ZigClangStmt_OMPTaskLoopDirectiveClass,
402 ZigClangStmt_OMPTaskLoopSimdDirectiveClass,
403 ZigClangStmt_OMPTeamsDistributeDirectiveClass,
404 ZigClangStmt_OMPTeamsDistributeParallelForDirectiveClass,
405 ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass,
406 ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass,
407 ZigClangStmt_OMPMasterDirectiveClass,
408 ZigClangStmt_OMPOrderedDirectiveClass,
409 ZigClangStmt_OMPParallelDirectiveClass,
410 ZigClangStmt_OMPParallelSectionsDirectiveClass,
411 ZigClangStmt_OMPSectionDirectiveClass,
412 ZigClangStmt_OMPSectionsDirectiveClass,
413 ZigClangStmt_OMPSingleDirectiveClass,
414 ZigClangStmt_OMPTargetDataDirectiveClass,
415 ZigClangStmt_OMPTargetDirectiveClass,
416 ZigClangStmt_OMPTargetEnterDataDirectiveClass,
417 ZigClangStmt_OMPTargetExitDataDirectiveClass,
418 ZigClangStmt_OMPTargetParallelDirectiveClass,
419 ZigClangStmt_OMPTargetParallelForDirectiveClass,
420 ZigClangStmt_OMPTargetTeamsDirectiveClass,
421 ZigClangStmt_OMPTargetUpdateDirectiveClass,
422 ZigClangStmt_OMPTaskDirectiveClass,
423 ZigClangStmt_OMPTaskgroupDirectiveClass,
424 ZigClangStmt_OMPTaskwaitDirectiveClass,
425 ZigClangStmt_OMPTaskyieldDirectiveClass,
426 ZigClangStmt_OMPTeamsDirectiveClass,
427 ZigClangStmt_ObjCAtCatchStmtClass,
428 ZigClangStmt_ObjCAtFinallyStmtClass,
429 ZigClangStmt_ObjCAtSynchronizedStmtClass,
430 ZigClangStmt_ObjCAtThrowStmtClass,
431 ZigClangStmt_ObjCAtTryStmtClass,
432 ZigClangStmt_ObjCAutoreleasePoolStmtClass,
433 ZigClangStmt_ObjCForCollectionStmtClass,
434 ZigClangStmt_ReturnStmtClass,
435 ZigClangStmt_SEHExceptStmtClass,
436 ZigClangStmt_SEHFinallyStmtClass,
437 ZigClangStmt_SEHLeaveStmtClass,
438 ZigClangStmt_SEHTryStmtClass,
439 ZigClangStmt_CaseStmtClass,
440 ZigClangStmt_DefaultStmtClass,
441 ZigClangStmt_SwitchStmtClass,
442 ZigClangStmt_WhileStmtClass,447 ZigClangStmt_WhileStmtClass,
443};448};
444449
...@@ -446,6 +451,7 @@ enum ZigClangCK {...@@ -446,6 +451,7 @@ enum ZigClangCK {
446 ZigClangCK_Dependent,451 ZigClangCK_Dependent,
447 ZigClangCK_BitCast,452 ZigClangCK_BitCast,
448 ZigClangCK_LValueBitCast,453 ZigClangCK_LValueBitCast,
454 ZigClangCK_LValueToRValueBitCast,
449 ZigClangCK_LValueToRValue,455 ZigClangCK_LValueToRValue,
450 ZigClangCK_NoOp,456 ZigClangCK_NoOp,
451 ZigClangCK_BaseToDerived,457 ZigClangCK_BaseToDerived,
...@@ -472,6 +478,8 @@ enum ZigClangCK {...@@ -472,6 +478,8 @@ enum ZigClangCK {
472 ZigClangCK_IntegralToBoolean,478 ZigClangCK_IntegralToBoolean,
473 ZigClangCK_IntegralToFloating,479 ZigClangCK_IntegralToFloating,
474 ZigClangCK_FixedPointCast,480 ZigClangCK_FixedPointCast,
481 ZigClangCK_FixedPointToIntegral,
482 ZigClangCK_IntegralToFixedPoint,
475 ZigClangCK_FixedPointToBoolean,483 ZigClangCK_FixedPointToBoolean,
476 ZigClangCK_FloatingToIntegral,484 ZigClangCK_FloatingToIntegral,
477 ZigClangCK_FloatingToBoolean,485 ZigClangCK_FloatingToBoolean,
...@@ -504,21 +512,6 @@ enum ZigClangCK {...@@ -504,21 +512,6 @@ enum ZigClangCK {
504 ZigClangCK_IntToOCLSampler,512 ZigClangCK_IntToOCLSampler,
505};513};
506514
507enum ZigClangAPValueKind {
508 ZigClangAPValueUninitialized,
509 ZigClangAPValueInt,
510 ZigClangAPValueFloat,
511 ZigClangAPValueComplexInt,
512 ZigClangAPValueComplexFloat,
513 ZigClangAPValueLValue,
514 ZigClangAPValueVector,
515 ZigClangAPValueArray,
516 ZigClangAPValueStruct,
517 ZigClangAPValueUnion,
518 ZigClangAPValueMemberPointer,
519 ZigClangAPValueAddrLabelDiff,
520};
521
522enum ZigClangDeclKind {515enum ZigClangDeclKind {
523 ZigClangDeclAccessSpec,516 ZigClangDeclAccessSpec,
524 ZigClangDeclBlock,517 ZigClangDeclBlock,
...@@ -544,6 +537,7 @@ enum ZigClangDeclKind {...@@ -544,6 +537,7 @@ enum ZigClangDeclKind {
544 ZigClangDeclObjCMethod,537 ZigClangDeclObjCMethod,
545 ZigClangDeclObjCProperty,538 ZigClangDeclObjCProperty,
546 ZigClangDeclBuiltinTemplate,539 ZigClangDeclBuiltinTemplate,
540 ZigClangDeclConcept,
547 ZigClangDeclClassTemplate,541 ZigClangDeclClassTemplate,
548 ZigClangDeclFunctionTemplate,542 ZigClangDeclFunctionTemplate,
549 ZigClangDeclTypeAliasTemplate,543 ZigClangDeclTypeAliasTemplate,
...@@ -585,8 +579,10 @@ enum ZigClangDeclKind {...@@ -585,8 +579,10 @@ enum ZigClangDeclKind {
585 ZigClangDeclVarTemplatePartialSpecialization,579 ZigClangDeclVarTemplatePartialSpecialization,
586 ZigClangDeclEnumConstant,580 ZigClangDeclEnumConstant,
587 ZigClangDeclIndirectField,581 ZigClangDeclIndirectField,
582 ZigClangDeclOMPDeclareMapper,
588 ZigClangDeclOMPDeclareReduction,583 ZigClangDeclOMPDeclareReduction,
589 ZigClangDeclUnresolvedUsingValue,584 ZigClangDeclUnresolvedUsingValue,
585 ZigClangDeclOMPAllocate,
590 ZigClangDeclOMPRequires,586 ZigClangDeclOMPRequires,
591 ZigClangDeclOMPThreadPrivate,587 ZigClangDeclOMPThreadPrivate,
592 ZigClangDeclObjCPropertyImpl,588 ZigClangDeclObjCPropertyImpl,