authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-07-16 13:06:02+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-08-30 06:36:41+02:00
log7e6cb7c7a5cd8d443336de9bf969a90a7cc6b863
treea92bda85e0dd08c56d056be3b668e0affce3b2b7
parentac2050609055d76a58b058b064f0b0c4d54e2faa
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

compiler: respond to API changes in LLVM 21


5 files changed, 72 insertions(+), 25 deletions(-)

src/clang.zig+14-4
...@@ -973,7 +973,10 @@ pub const TypedefNameDecl = opaque {...@@ -973,7 +973,10 @@ pub const TypedefNameDecl = opaque {
973973
974pub const FileScopeAsmDecl = opaque {974pub const FileScopeAsmDecl = opaque {
975 pub const getAsmString = ZigClangFileScopeAsmDecl_getAsmString;975 pub const getAsmString = ZigClangFileScopeAsmDecl_getAsmString;
976 extern fn ZigClangFileScopeAsmDecl_getAsmString(*const FileScopeAsmDecl) *const StringLiteral;976 extern fn ZigClangFileScopeAsmDecl_getAsmString(*const FileScopeAsmDecl) [*:0]const u8;
977
978 pub const freeAsmString = ZigClangFileScopeAsmDecl_freeAsmString;
979 extern fn ZigClangFileScopeAsmDecl_freeAsmString([*:0]const u8) void;
977};980};
978981
979pub const TypedefType = opaque {982pub const TypedefType = opaque {
...@@ -1170,6 +1173,7 @@ pub const TypeClass = enum(c_int) {...@@ -1170,6 +1173,7 @@ pub const TypeClass = enum(c_int) {
1170 FunctionNoProto,1173 FunctionNoProto,
1171 FunctionProto,1174 FunctionProto,
1172 HLSLAttributedResource,1175 HLSLAttributedResource,
1176 HLSLInlineSpirv,
1173 InjectedClassName,1177 InjectedClassName,
1174 MacroQualified,1178 MacroQualified,
1175 ConstantMatrix,1179 ConstantMatrix,
...@@ -1209,7 +1213,6 @@ const StmtClass = enum(c_int) {...@@ -1209,7 +1213,6 @@ const StmtClass = enum(c_int) {
1209 VAArgExprClass,1213 VAArgExprClass,
1210 UnaryOperatorClass,1214 UnaryOperatorClass,
1211 UnaryExprOrTypeTraitExprClass,1215 UnaryExprOrTypeTraitExprClass,
1212 TypoExprClass,
1213 TypeTraitExprClass,1216 TypeTraitExprClass,
1214 SubstNonTypeTemplateParmPackExprClass,1217 SubstNonTypeTemplateParmPackExprClass,
1215 SubstNonTypeTemplateParmExprClass,1218 SubstNonTypeTemplateParmExprClass,
...@@ -1351,11 +1354,13 @@ const StmtClass = enum(c_int) {...@@ -1351,11 +1354,13 @@ const StmtClass = enum(c_int) {
1351 OpenACCInitConstructClass,1354 OpenACCInitConstructClass,
1352 OpenACCExitDataConstructClass,1355 OpenACCExitDataConstructClass,
1353 OpenACCEnterDataConstructClass,1356 OpenACCEnterDataConstructClass,
1357 OpenACCCacheConstructClass,
1354 OpenACCLoopConstructClass,1358 OpenACCLoopConstructClass,
1355 OpenACCHostDataConstructClass,1359 OpenACCHostDataConstructClass,
1356 OpenACCDataConstructClass,1360 OpenACCDataConstructClass,
1357 OpenACCComputeConstructClass,1361 OpenACCComputeConstructClass,
1358 OpenACCCombinedConstructClass,1362 OpenACCCombinedConstructClass,
1363 OpenACCAtomicConstructClass,
1359 ObjCForCollectionStmtClass,1364 ObjCForCollectionStmtClass,
1360 ObjCAutoreleasePoolStmtClass,1365 ObjCAutoreleasePoolStmtClass,
1361 ObjCAtTryStmtClass,1366 ObjCAtTryStmtClass,
...@@ -1391,6 +1396,7 @@ const StmtClass = enum(c_int) {...@@ -1391,6 +1396,7 @@ const StmtClass = enum(c_int) {
1391 OMPMaskedDirectiveClass,1396 OMPMaskedDirectiveClass,
1392 OMPUnrollDirectiveClass,1397 OMPUnrollDirectiveClass,
1393 OMPTileDirectiveClass,1398 OMPTileDirectiveClass,
1399 OMPStripeDirectiveClass,
1394 OMPReverseDirectiveClass,1400 OMPReverseDirectiveClass,
1395 OMPInterchangeDirectiveClass,1401 OMPInterchangeDirectiveClass,
1396 OMPTeamsGenericLoopDirectiveClass,1402 OMPTeamsGenericLoopDirectiveClass,
...@@ -1541,6 +1547,8 @@ pub const DeclKind = enum(c_int) {...@@ -1541,6 +1547,8 @@ pub const DeclKind = enum(c_int) {
1541 StaticAssert,1547 StaticAssert,
1542 PragmaDetectMismatch,1548 PragmaDetectMismatch,
1543 PragmaComment,1549 PragmaComment,
1550 OpenACCRoutine,
1551 OpenACCDeclare,
1544 ObjCPropertyImpl,1552 ObjCPropertyImpl,
1545 OMPThreadPrivate,1553 OMPThreadPrivate,
1546 OMPRequires,1554 OMPRequires,
...@@ -1606,6 +1614,7 @@ pub const DeclKind = enum(c_int) {...@@ -1606,6 +1614,7 @@ pub const DeclKind = enum(c_int) {
1606 ObjCCompatibleAlias,1614 ObjCCompatibleAlias,
1607 NamespaceAlias,1615 NamespaceAlias,
1608 Label,1616 Label,
1617 HLSLRootSignature,
1609 UsingEnum,1618 UsingEnum,
1610 Using,1619 Using,
1611 LifetimeExtendedTemporary,1620 LifetimeExtendedTemporary,
...@@ -1724,6 +1733,7 @@ pub const BuiltinTypeKind = enum(c_int) {...@@ -1724,6 +1733,7 @@ pub const BuiltinTypeKind = enum(c_int) {
1724 SveBoolx4,1733 SveBoolx4,
1725 SveCount,1734 SveCount,
1726 MFloat8,1735 MFloat8,
1736 DMR1024,
1727 VectorQuad,1737 VectorQuad,
1728 VectorPair,1738 VectorPair,
1729 RvvInt8mf8,1739 RvvInt8mf8,
...@@ -2143,14 +2153,13 @@ pub const CallingConv = enum(c_int) {...@@ -2143,14 +2153,13 @@ pub const CallingConv = enum(c_int) {
2143 AAPCS_VFP,2153 AAPCS_VFP,
2144 IntelOclBicc,2154 IntelOclBicc,
2145 SpirFunction,2155 SpirFunction,
2146 OpenCLKernel,2156 DeviceKernel,
2147 Swift,2157 Swift,
2148 SwiftAsync,2158 SwiftAsync,
2149 PreserveMost,2159 PreserveMost,
2150 PreserveAll,2160 PreserveAll,
2151 AArch64VectorCall,2161 AArch64VectorCall,
2152 AArch64SVEPCS,2162 AArch64SVEPCS,
2153 AMDGPUKernelCall,
2154 M68kRTD,2163 M68kRTD,
2155 PreserveNone,2164 PreserveNone,
2156 RISCVVectorCall,2165 RISCVVectorCall,
...@@ -2216,6 +2225,7 @@ pub const Expr_ConstantExprKind = enum(c_int) {...@@ -2216,6 +2225,7 @@ pub const Expr_ConstantExprKind = enum(c_int) {
2216pub const UnaryExprOrTypeTrait_Kind = enum(c_int) {2225pub const UnaryExprOrTypeTrait_Kind = enum(c_int) {
2217 SizeOf,2226 SizeOf,
2218 DataSizeOf,2227 DataSizeOf,
2228 CountOf,
2219 AlignOf,2229 AlignOf,
2220 PreferredAlignOf,2230 PreferredAlignOf,
2221 PtrAuthTypeDiscriminator,2231 PtrAuthTypeDiscriminator,
src/translate_c.zig+4-4
...@@ -353,11 +353,10 @@ fn declVisitor(c: *Context, decl: *const clang.Decl) Error!void {...@@ -353,11 +353,10 @@ fn declVisitor(c: *Context, decl: *const clang.Decl) Error!void {
353}353}
354354
355fn transFileScopeAsm(c: *Context, scope: *Scope, file_scope_asm: *const clang.FileScopeAsmDecl) Error!void {355fn transFileScopeAsm(c: *Context, scope: *Scope, file_scope_asm: *const clang.FileScopeAsmDecl) Error!void {
356 const asm_string = file_scope_asm.getAsmString();356 const asm_string = std.mem.span(file_scope_asm.getAsmString());
357 var len: usize = undefined;357 defer clang.FileScopeAsmDecl.freeAsmString(asm_string.ptr);
358 const bytes_ptr = asm_string.getString_bytes_begin_size(&len);
359358
360 const str = try std.fmt.allocPrint(c.arena, "\"{f}\"", .{std.zig.fmtString(bytes_ptr[0..len])});359 const str = try std.fmt.allocPrint(c.arena, "\"{f}\"", .{std.zig.fmtString(asm_string)});
361 const str_node = try Tag.string_literal.create(c.arena, str);360 const str_node = try Tag.string_literal.create(c.arena, str);
362361
363 const asm_node = try Tag.asm_simple.create(c.arena, str_node);362 const asm_node = try Tag.asm_simple.create(c.arena, str_node);
...@@ -3696,6 +3695,7 @@ fn transUnaryExprOrTypeTraitExpr(...@@ -3696,6 +3695,7 @@ fn transUnaryExprOrTypeTraitExpr(
3696 .SizeOf => try Tag.sizeof.create(c.arena, type_node),3695 .SizeOf => try Tag.sizeof.create(c.arena, type_node),
3697 .AlignOf => try Tag.alignof.create(c.arena, type_node),3696 .AlignOf => try Tag.alignof.create(c.arena, type_node),
3698 .DataSizeOf,3697 .DataSizeOf,
3698 .CountOf,
3699 .PreferredAlignOf,3699 .PreferredAlignOf,
3700 .PtrAuthTypeDiscriminator,3700 .PtrAuthTypeDiscriminator,
3701 .VecStep,3701 .VecStep,
src/zig_clang.cpp+32-11
...@@ -330,6 +330,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {...@@ -330,6 +330,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
330 case clang::Type::Auto:330 case clang::Type::Auto:
331 case clang::Type::DeducedTemplateSpecialization:331 case clang::Type::DeducedTemplateSpecialization:
332 case clang::Type::HLSLAttributedResource:332 case clang::Type::HLSLAttributedResource:
333 case clang::Type::HLSLInlineSpirv:
333 case clang::Type::InjectedClassName:334 case clang::Type::InjectedClassName:
334 case clang::Type::DependentName:335 case clang::Type::DependentName:
335 case clang::Type::DependentTemplateSpecialization:336 case clang::Type::DependentTemplateSpecialization:
...@@ -373,6 +374,7 @@ static_assert((clang::Type::TypeClass)ZigClangType_Elaborated == clang::Type::El...@@ -373,6 +374,7 @@ static_assert((clang::Type::TypeClass)ZigClangType_Elaborated == clang::Type::El
373static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Type::FunctionNoProto, "");374static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Type::FunctionNoProto, "");
374static_assert((clang::Type::TypeClass)ZigClangType_FunctionProto == clang::Type::FunctionProto, "");375static_assert((clang::Type::TypeClass)ZigClangType_FunctionProto == clang::Type::FunctionProto, "");
375static_assert((clang::Type::TypeClass)ZigClangType_HLSLAttributedResource == clang::Type::HLSLAttributedResource, "");376static_assert((clang::Type::TypeClass)ZigClangType_HLSLAttributedResource == clang::Type::HLSLAttributedResource, "");
377static_assert((clang::Type::TypeClass)ZigClangType_HLSLInlineSpirv == clang::Type::HLSLInlineSpirv, "");
376static_assert((clang::Type::TypeClass)ZigClangType_InjectedClassName == clang::Type::InjectedClassName, "");378static_assert((clang::Type::TypeClass)ZigClangType_InjectedClassName == clang::Type::InjectedClassName, "");
377static_assert((clang::Type::TypeClass)ZigClangType_MacroQualified == clang::Type::MacroQualified, "");379static_assert((clang::Type::TypeClass)ZigClangType_MacroQualified == clang::Type::MacroQualified, "");
378static_assert((clang::Type::TypeClass)ZigClangType_ConstantMatrix == clang::Type::ConstantMatrix, "");380static_assert((clang::Type::TypeClass)ZigClangType_ConstantMatrix == clang::Type::ConstantMatrix, "");
...@@ -413,7 +415,6 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {...@@ -413,7 +415,6 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
413 case clang::Stmt::VAArgExprClass:415 case clang::Stmt::VAArgExprClass:
414 case clang::Stmt::UnaryOperatorClass:416 case clang::Stmt::UnaryOperatorClass:
415 case clang::Stmt::UnaryExprOrTypeTraitExprClass:417 case clang::Stmt::UnaryExprOrTypeTraitExprClass:
416 case clang::Stmt::TypoExprClass:
417 case clang::Stmt::TypeTraitExprClass:418 case clang::Stmt::TypeTraitExprClass:
418 case clang::Stmt::SubstNonTypeTemplateParmPackExprClass:419 case clang::Stmt::SubstNonTypeTemplateParmPackExprClass:
419 case clang::Stmt::SubstNonTypeTemplateParmExprClass:420 case clang::Stmt::SubstNonTypeTemplateParmExprClass:
...@@ -555,11 +556,13 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {...@@ -555,11 +556,13 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
555 case clang::Stmt::OpenACCInitConstructClass:556 case clang::Stmt::OpenACCInitConstructClass:
556 case clang::Stmt::OpenACCExitDataConstructClass:557 case clang::Stmt::OpenACCExitDataConstructClass:
557 case clang::Stmt::OpenACCEnterDataConstructClass:558 case clang::Stmt::OpenACCEnterDataConstructClass:
559 case clang::Stmt::OpenACCCacheConstructClass:
558 case clang::Stmt::OpenACCLoopConstructClass:560 case clang::Stmt::OpenACCLoopConstructClass:
559 case clang::Stmt::OpenACCHostDataConstructClass:561 case clang::Stmt::OpenACCHostDataConstructClass:
560 case clang::Stmt::OpenACCDataConstructClass:562 case clang::Stmt::OpenACCDataConstructClass:
561 case clang::Stmt::OpenACCComputeConstructClass:563 case clang::Stmt::OpenACCComputeConstructClass:
562 case clang::Stmt::OpenACCCombinedConstructClass:564 case clang::Stmt::OpenACCCombinedConstructClass:
565 case clang::Stmt::OpenACCAtomicConstructClass:
563 case clang::Stmt::ObjCForCollectionStmtClass:566 case clang::Stmt::ObjCForCollectionStmtClass:
564 case clang::Stmt::ObjCAutoreleasePoolStmtClass:567 case clang::Stmt::ObjCAutoreleasePoolStmtClass:
565 case clang::Stmt::ObjCAtTryStmtClass:568 case clang::Stmt::ObjCAtTryStmtClass:
...@@ -595,6 +598,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {...@@ -595,6 +598,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
595 case clang::Stmt::OMPMaskedDirectiveClass:598 case clang::Stmt::OMPMaskedDirectiveClass:
596 case clang::Stmt::OMPUnrollDirectiveClass:599 case clang::Stmt::OMPUnrollDirectiveClass:
597 case clang::Stmt::OMPTileDirectiveClass:600 case clang::Stmt::OMPTileDirectiveClass:
601 case clang::Stmt::OMPStripeDirectiveClass:
598 case clang::Stmt::OMPReverseDirectiveClass:602 case clang::Stmt::OMPReverseDirectiveClass:
599 case clang::Stmt::OMPInterchangeDirectiveClass:603 case clang::Stmt::OMPInterchangeDirectiveClass:
600 case clang::Stmt::OMPTeamsGenericLoopDirectiveClass:604 case clang::Stmt::OMPTeamsGenericLoopDirectiveClass:
...@@ -672,7 +676,6 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_LabelStmtClass == clang::Stmt...@@ -672,7 +676,6 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_LabelStmtClass == clang::Stmt
672static_assert((clang::Stmt::StmtClass)ZigClangStmt_VAArgExprClass == clang::Stmt::VAArgExprClass, "");676static_assert((clang::Stmt::StmtClass)ZigClangStmt_VAArgExprClass == clang::Stmt::VAArgExprClass, "");
673static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnaryOperatorClass == clang::Stmt::UnaryOperatorClass, "");677static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnaryOperatorClass == clang::Stmt::UnaryOperatorClass, "");
674static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnaryExprOrTypeTraitExprClass == clang::Stmt::UnaryExprOrTypeTraitExprClass, "");678static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnaryExprOrTypeTraitExprClass == clang::Stmt::UnaryExprOrTypeTraitExprClass, "");
675static_assert((clang::Stmt::StmtClass)ZigClangStmt_TypoExprClass == clang::Stmt::TypoExprClass, "");
676static_assert((clang::Stmt::StmtClass)ZigClangStmt_TypeTraitExprClass == clang::Stmt::TypeTraitExprClass, "");679static_assert((clang::Stmt::StmtClass)ZigClangStmt_TypeTraitExprClass == clang::Stmt::TypeTraitExprClass, "");
677static_assert((clang::Stmt::StmtClass)ZigClangStmt_SubstNonTypeTemplateParmPackExprClass == clang::Stmt::SubstNonTypeTemplateParmPackExprClass, "");680static_assert((clang::Stmt::StmtClass)ZigClangStmt_SubstNonTypeTemplateParmPackExprClass == clang::Stmt::SubstNonTypeTemplateParmPackExprClass, "");
678static_assert((clang::Stmt::StmtClass)ZigClangStmt_SubstNonTypeTemplateParmExprClass == clang::Stmt::SubstNonTypeTemplateParmExprClass, "");681static_assert((clang::Stmt::StmtClass)ZigClangStmt_SubstNonTypeTemplateParmExprClass == clang::Stmt::SubstNonTypeTemplateParmExprClass, "");
...@@ -814,11 +817,13 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCSetConstructClass == c...@@ -814,11 +817,13 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCSetConstructClass == c
814static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCInitConstructClass == clang::Stmt::OpenACCInitConstructClass, "");817static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCInitConstructClass == clang::Stmt::OpenACCInitConstructClass, "");
815static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCExitDataConstructClass == clang::Stmt::OpenACCExitDataConstructClass, "");818static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCExitDataConstructClass == clang::Stmt::OpenACCExitDataConstructClass, "");
816static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCEnterDataConstructClass == clang::Stmt::OpenACCEnterDataConstructClass, "");819static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCEnterDataConstructClass == clang::Stmt::OpenACCEnterDataConstructClass, "");
820static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCCacheConstructClass == clang::Stmt::OpenACCCacheConstructClass, "");
817static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCLoopConstructClass == clang::Stmt::OpenACCLoopConstructClass, "");821static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCLoopConstructClass == clang::Stmt::OpenACCLoopConstructClass, "");
818static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCHostDataConstructClass == clang::Stmt::OpenACCHostDataConstructClass, "");822static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCHostDataConstructClass == clang::Stmt::OpenACCHostDataConstructClass, "");
819static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCDataConstructClass == clang::Stmt::OpenACCDataConstructClass, "");823static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCDataConstructClass == clang::Stmt::OpenACCDataConstructClass, "");
820static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCComputeConstructClass == clang::Stmt::OpenACCComputeConstructClass, "");824static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCComputeConstructClass == clang::Stmt::OpenACCComputeConstructClass, "");
821static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCCombinedConstructClass == clang::Stmt::OpenACCCombinedConstructClass, "");825static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCCombinedConstructClass == clang::Stmt::OpenACCCombinedConstructClass, "");
826static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCAtomicConstructClass == clang::Stmt::OpenACCAtomicConstructClass, "");
822static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCForCollectionStmtClass == clang::Stmt::ObjCForCollectionStmtClass, "");827static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCForCollectionStmtClass == clang::Stmt::ObjCForCollectionStmtClass, "");
823static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAutoreleasePoolStmtClass == clang::Stmt::ObjCAutoreleasePoolStmtClass, "");828static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAutoreleasePoolStmtClass == clang::Stmt::ObjCAutoreleasePoolStmtClass, "");
824static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAtTryStmtClass == clang::Stmt::ObjCAtTryStmtClass, "");829static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAtTryStmtClass == clang::Stmt::ObjCAtTryStmtClass, "");
...@@ -854,6 +859,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterDirectiveClass == cl...@@ -854,6 +859,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterDirectiveClass == cl
854static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMaskedDirectiveClass == clang::Stmt::OMPMaskedDirectiveClass, "");859static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMaskedDirectiveClass == clang::Stmt::OMPMaskedDirectiveClass, "");
855static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPUnrollDirectiveClass == clang::Stmt::OMPUnrollDirectiveClass, "");860static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPUnrollDirectiveClass == clang::Stmt::OMPUnrollDirectiveClass, "");
856static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTileDirectiveClass == clang::Stmt::OMPTileDirectiveClass, "");861static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTileDirectiveClass == clang::Stmt::OMPTileDirectiveClass, "");
862static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPStripeDirectiveClass == clang::Stmt::OMPStripeDirectiveClass, "");
857static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPReverseDirectiveClass == clang::Stmt::OMPReverseDirectiveClass, "");863static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPReverseDirectiveClass == clang::Stmt::OMPReverseDirectiveClass, "");
858static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPInterchangeDirectiveClass == clang::Stmt::OMPInterchangeDirectiveClass, "");864static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPInterchangeDirectiveClass == clang::Stmt::OMPInterchangeDirectiveClass, "");
859static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsGenericLoopDirectiveClass == clang::Stmt::OMPTeamsGenericLoopDirectiveClass, "");865static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsGenericLoopDirectiveClass == clang::Stmt::OMPTeamsGenericLoopDirectiveClass, "");
...@@ -972,6 +978,8 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {...@@ -972,6 +978,8 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
972 case clang::Decl::StaticAssert:978 case clang::Decl::StaticAssert:
973 case clang::Decl::PragmaDetectMismatch:979 case clang::Decl::PragmaDetectMismatch:
974 case clang::Decl::PragmaComment:980 case clang::Decl::PragmaComment:
981 case clang::Decl::OpenACCRoutine:
982 case clang::Decl::OpenACCDeclare:
975 case clang::Decl::ObjCPropertyImpl:983 case clang::Decl::ObjCPropertyImpl:
976 case clang::Decl::OMPThreadPrivate:984 case clang::Decl::OMPThreadPrivate:
977 case clang::Decl::OMPRequires:985 case clang::Decl::OMPRequires:
...@@ -1037,6 +1045,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {...@@ -1037,6 +1045,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
1037 case clang::Decl::ObjCCompatibleAlias:1045 case clang::Decl::ObjCCompatibleAlias:
1038 case clang::Decl::NamespaceAlias:1046 case clang::Decl::NamespaceAlias:
1039 case clang::Decl::Label:1047 case clang::Decl::Label:
1048 case clang::Decl::HLSLRootSignature:
1040 case clang::Decl::UsingEnum:1049 case clang::Decl::UsingEnum:
1041 case clang::Decl::Using:1050 case clang::Decl::Using:
1042 case clang::Decl::LifetimeExtendedTemporary:1051 case clang::Decl::LifetimeExtendedTemporary:
...@@ -1063,6 +1072,8 @@ static_assert((clang::Decl::Kind)ZigClangDeclBlock == clang::Decl::Block, "");...@@ -1063,6 +1072,8 @@ static_assert((clang::Decl::Kind)ZigClangDeclBlock == clang::Decl::Block, "");
1063static_assert((clang::Decl::Kind)ZigClangDeclStaticAssert == clang::Decl::StaticAssert, "");1072static_assert((clang::Decl::Kind)ZigClangDeclStaticAssert == clang::Decl::StaticAssert, "");
1064static_assert((clang::Decl::Kind)ZigClangDeclPragmaDetectMismatch == clang::Decl::PragmaDetectMismatch, "");1073static_assert((clang::Decl::Kind)ZigClangDeclPragmaDetectMismatch == clang::Decl::PragmaDetectMismatch, "");
1065static_assert((clang::Decl::Kind)ZigClangDeclPragmaComment == clang::Decl::PragmaComment, "");1074static_assert((clang::Decl::Kind)ZigClangDeclPragmaComment == clang::Decl::PragmaComment, "");
1075static_assert((clang::Decl::Kind)ZigClangDeclOpenACCRoutine == clang::Decl::OpenACCRoutine, "");
1076static_assert((clang::Decl::Kind)ZigClangDeclOpenACCDeclare == clang::Decl::OpenACCDeclare, "");
1066static_assert((clang::Decl::Kind)ZigClangDeclObjCPropertyImpl == clang::Decl::ObjCPropertyImpl, "");1077static_assert((clang::Decl::Kind)ZigClangDeclObjCPropertyImpl == clang::Decl::ObjCPropertyImpl, "");
1067static_assert((clang::Decl::Kind)ZigClangDeclOMPThreadPrivate == clang::Decl::OMPThreadPrivate, "");1078static_assert((clang::Decl::Kind)ZigClangDeclOMPThreadPrivate == clang::Decl::OMPThreadPrivate, "");
1068static_assert((clang::Decl::Kind)ZigClangDeclOMPRequires == clang::Decl::OMPRequires, "");1079static_assert((clang::Decl::Kind)ZigClangDeclOMPRequires == clang::Decl::OMPRequires, "");
...@@ -1128,6 +1139,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclObjCProperty == clang::Decl::ObjCPr...@@ -1128,6 +1139,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclObjCProperty == clang::Decl::ObjCPr
1128static_assert((clang::Decl::Kind)ZigClangDeclObjCCompatibleAlias == clang::Decl::ObjCCompatibleAlias, "");1139static_assert((clang::Decl::Kind)ZigClangDeclObjCCompatibleAlias == clang::Decl::ObjCCompatibleAlias, "");
1129static_assert((clang::Decl::Kind)ZigClangDeclNamespaceAlias == clang::Decl::NamespaceAlias, "");1140static_assert((clang::Decl::Kind)ZigClangDeclNamespaceAlias == clang::Decl::NamespaceAlias, "");
1130static_assert((clang::Decl::Kind)ZigClangDeclLabel == clang::Decl::Label, "");1141static_assert((clang::Decl::Kind)ZigClangDeclLabel == clang::Decl::Label, "");
1142static_assert((clang::Decl::Kind)ZigClangDeclHLSLRootSignature == clang::Decl::HLSLRootSignature, "");
1131static_assert((clang::Decl::Kind)ZigClangDeclUsingEnum == clang::Decl::UsingEnum, "");1143static_assert((clang::Decl::Kind)ZigClangDeclUsingEnum == clang::Decl::UsingEnum, "");
1132static_assert((clang::Decl::Kind)ZigClangDeclUsing == clang::Decl::Using, "");1144static_assert((clang::Decl::Kind)ZigClangDeclUsing == clang::Decl::Using, "");
1133static_assert((clang::Decl::Kind)ZigClangDeclLifetimeExtendedTemporary == clang::Decl::LifetimeExtendedTemporary, "");1145static_assert((clang::Decl::Kind)ZigClangDeclLifetimeExtendedTemporary == clang::Decl::LifetimeExtendedTemporary, "");
...@@ -1246,6 +1258,7 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {...@@ -1246,6 +1258,7 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
1246 case clang::BuiltinType::SveBoolx4:1258 case clang::BuiltinType::SveBoolx4:
1247 case clang::BuiltinType::SveCount:1259 case clang::BuiltinType::SveCount:
1248 case clang::BuiltinType::MFloat8:1260 case clang::BuiltinType::MFloat8:
1261 case clang::BuiltinType::DMR1024:
1249 case clang::BuiltinType::VectorQuad:1262 case clang::BuiltinType::VectorQuad:
1250 case clang::BuiltinType::VectorPair:1263 case clang::BuiltinType::VectorPair:
1251 case clang::BuiltinType::RvvInt8mf8:1264 case clang::BuiltinType::RvvInt8mf8:
...@@ -1758,6 +1771,7 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBoolx2 == clang::B...@@ -1758,6 +1771,7 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBoolx2 == clang::B
1758static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBoolx4 == clang::BuiltinType::SveBoolx4, "");1771static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBoolx4 == clang::BuiltinType::SveBoolx4, "");
1759static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveCount == clang::BuiltinType::SveCount, "");1772static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveCount == clang::BuiltinType::SveCount, "");
1760static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeMFloat8 == clang::BuiltinType::MFloat8, "");1773static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeMFloat8 == clang::BuiltinType::MFloat8, "");
1774static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeDMR1024 == clang::BuiltinType::DMR1024, "");
1761static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorQuad == clang::BuiltinType::VectorQuad, "");1775static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorQuad == clang::BuiltinType::VectorQuad, "");
1762static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorPair == clang::BuiltinType::VectorPair, "");1776static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorPair == clang::BuiltinType::VectorPair, "");
1763static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8mf8 == clang::BuiltinType::RvvInt8mf8, "");1777static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8mf8 == clang::BuiltinType::RvvInt8mf8, "");
...@@ -2176,14 +2190,13 @@ void ZigClang_detect_enum_CallingConv(clang::CallingConv x) {...@@ -2176,14 +2190,13 @@ void ZigClang_detect_enum_CallingConv(clang::CallingConv x) {
2176 case clang::CC_AAPCS_VFP:2190 case clang::CC_AAPCS_VFP:
2177 case clang::CC_IntelOclBicc:2191 case clang::CC_IntelOclBicc:
2178 case clang::CC_SpirFunction:2192 case clang::CC_SpirFunction:
2179 case clang::CC_OpenCLKernel:2193 case clang::CC_DeviceKernel:
2180 case clang::CC_Swift:2194 case clang::CC_Swift:
2181 case clang::CC_SwiftAsync:2195 case clang::CC_SwiftAsync:
2182 case clang::CC_PreserveMost:2196 case clang::CC_PreserveMost:
2183 case clang::CC_PreserveAll:2197 case clang::CC_PreserveAll:
2184 case clang::CC_AArch64VectorCall:2198 case clang::CC_AArch64VectorCall:
2185 case clang::CC_AArch64SVEPCS:2199 case clang::CC_AArch64SVEPCS:
2186 case clang::CC_AMDGPUKernelCall:
2187 case clang::CC_M68kRTD:2200 case clang::CC_M68kRTD:
2188 case clang::CC_PreserveNone:2201 case clang::CC_PreserveNone:
2189 case clang::CC_RISCVVectorCall:2202 case clang::CC_RISCVVectorCall:
...@@ -2204,14 +2217,13 @@ static_assert((clang::CallingConv)ZigClangCallingConv_AAPCS == clang::CC_AAPCS,...@@ -2204,14 +2217,13 @@ static_assert((clang::CallingConv)ZigClangCallingConv_AAPCS == clang::CC_AAPCS,
2204static_assert((clang::CallingConv)ZigClangCallingConv_AAPCS_VFP == clang::CC_AAPCS_VFP, "");2217static_assert((clang::CallingConv)ZigClangCallingConv_AAPCS_VFP == clang::CC_AAPCS_VFP, "");
2205static_assert((clang::CallingConv)ZigClangCallingConv_IntelOclBicc == clang::CC_IntelOclBicc, "");2218static_assert((clang::CallingConv)ZigClangCallingConv_IntelOclBicc == clang::CC_IntelOclBicc, "");
2206static_assert((clang::CallingConv)ZigClangCallingConv_SpirFunction == clang::CC_SpirFunction, "");2219static_assert((clang::CallingConv)ZigClangCallingConv_SpirFunction == clang::CC_SpirFunction, "");
2207static_assert((clang::CallingConv)ZigClangCallingConv_OpenCLKernel == clang::CC_OpenCLKernel, "");2220static_assert((clang::CallingConv)ZigClangCallingConv_DeviceKernel == clang::CC_DeviceKernel, "");
2208static_assert((clang::CallingConv)ZigClangCallingConv_Swift == clang::CC_Swift, "");2221static_assert((clang::CallingConv)ZigClangCallingConv_Swift == clang::CC_Swift, "");
2209static_assert((clang::CallingConv)ZigClangCallingConv_SwiftAsync == clang::CC_SwiftAsync, "");2222static_assert((clang::CallingConv)ZigClangCallingConv_SwiftAsync == clang::CC_SwiftAsync, "");
2210static_assert((clang::CallingConv)ZigClangCallingConv_PreserveMost == clang::CC_PreserveMost, "");2223static_assert((clang::CallingConv)ZigClangCallingConv_PreserveMost == clang::CC_PreserveMost, "");
2211static_assert((clang::CallingConv)ZigClangCallingConv_PreserveAll == clang::CC_PreserveAll, "");2224static_assert((clang::CallingConv)ZigClangCallingConv_PreserveAll == clang::CC_PreserveAll, "");
2212static_assert((clang::CallingConv)ZigClangCallingConv_AArch64VectorCall == clang::CC_AArch64VectorCall, "");2225static_assert((clang::CallingConv)ZigClangCallingConv_AArch64VectorCall == clang::CC_AArch64VectorCall, "");
2213static_assert((clang::CallingConv)ZigClangCallingConv_AArch64SVEPCS == clang::CC_AArch64SVEPCS, "");2226static_assert((clang::CallingConv)ZigClangCallingConv_AArch64SVEPCS == clang::CC_AArch64SVEPCS, "");
2214static_assert((clang::CallingConv)ZigClangCallingConv_AMDGPUKernelCall == clang::CC_AMDGPUKernelCall, "");
2215static_assert((clang::CallingConv)ZigClangCallingConv_M68kRTD == clang::CC_M68kRTD, "");2227static_assert((clang::CallingConv)ZigClangCallingConv_M68kRTD == clang::CC_M68kRTD, "");
2216static_assert((clang::CallingConv)ZigClangCallingConv_PreserveNone == clang::CC_PreserveNone, "");2228static_assert((clang::CallingConv)ZigClangCallingConv_PreserveNone == clang::CC_PreserveNone, "");
2217static_assert((clang::CallingConv)ZigClangCallingConv_RISCVVectorCall == clang::CC_RISCVVectorCall, "");2229static_assert((clang::CallingConv)ZigClangCallingConv_RISCVVectorCall == clang::CC_RISCVVectorCall, "");
...@@ -2322,6 +2334,7 @@ static_assert((clang::Expr::ConstantExprKind)ZigClangExpr_ConstantExprKind_Immed...@@ -2322,6 +2334,7 @@ static_assert((clang::Expr::ConstantExprKind)ZigClangExpr_ConstantExprKind_Immed
23222334
2323static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindSizeOf == clang::UnaryExprOrTypeTrait::UETT_SizeOf, "");2335static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindSizeOf == clang::UnaryExprOrTypeTrait::UETT_SizeOf, "");
2324static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindDataSizeOf == clang::UnaryExprOrTypeTrait::UETT_DataSizeOf, "");2336static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindDataSizeOf == clang::UnaryExprOrTypeTrait::UETT_DataSizeOf, "");
2337static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindCountOf == clang::UnaryExprOrTypeTrait::UETT_CountOf, "");
2325static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindAlignOf == clang::UnaryExprOrTypeTrait::UETT_AlignOf, "");2338static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindAlignOf == clang::UnaryExprOrTypeTrait::UETT_AlignOf, "");
2326static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindPreferredAlignOf == clang::UnaryExprOrTypeTrait::UETT_PreferredAlignOf, "");2339static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindPreferredAlignOf == clang::UnaryExprOrTypeTrait::UETT_PreferredAlignOf, "");
2327static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindPtrAuthTypeDiscriminator == clang::UnaryExprOrTypeTrait::UETT_PtrAuthTypeDiscriminator, "");2340static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindPtrAuthTypeDiscriminator == clang::UnaryExprOrTypeTrait::UETT_PtrAuthTypeDiscriminator, "");
...@@ -2622,9 +2635,15 @@ const ZigClangEnumDecl *ZigClangEnumDecl_getDefinition(const ZigClangEnumDecl *z...@@ -2622,9 +2635,15 @@ const ZigClangEnumDecl *ZigClangEnumDecl_getDefinition(const ZigClangEnumDecl *z
2622 return reinterpret_cast<const ZigClangEnumDecl *>(definition);2635 return reinterpret_cast<const ZigClangEnumDecl *>(definition);
2623}2636}
26242637
2625const ZigClangStringLiteral *ZigClangFileScopeAsmDecl_getAsmString(const ZigClangFileScopeAsmDecl *self) {2638const char *ZigClangFileScopeAsmDecl_getAsmString(const ZigClangFileScopeAsmDecl *self) {
2626 const clang::StringLiteral *result = reinterpret_cast<const clang::FileScopeAsmDecl*>(self)->getAsmString();2639 std::string str = reinterpret_cast<const clang::FileScopeAsmDecl*>(self)->getAsmString();
2627 return reinterpret_cast<const ZigClangStringLiteral *>(result);2640 char *result = new char[str.size() + 1];
2641 strcpy(result, str.c_str());
2642 return result;
2643}
2644
2645void ZigClangFileScopeAsmDecl_freeAsmString(const char *str) {
2646 delete[] str;
2628}2647}
26292648
2630bool ZigClangRecordDecl_isUnion(const ZigClangRecordDecl *record_decl) {2649bool ZigClangRecordDecl_isUnion(const ZigClangRecordDecl *record_decl) {
...@@ -3122,7 +3141,8 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char...@@ -3122,7 +3141,8 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char
3122 struct Stage2ErrorMsg **errors_ptr, size_t *errors_len, const char *resources_path)3141 struct Stage2ErrorMsg **errors_ptr, size_t *errors_len, const char *resources_path)
3123{3142{
3124 llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS = llvm::vfs::getRealFileSystem();3143 llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS = llvm::vfs::getRealFileSystem();
3125 clang::IntrusiveRefCntPtr<clang::DiagnosticsEngine> diags(clang::CompilerInstance::createDiagnostics(*VFS, new clang::DiagnosticOptions));3144 auto diag_opts = std::make_shared<clang::DiagnosticOptions>();
3145 clang::IntrusiveRefCntPtr<clang::DiagnosticsEngine> diags(clang::CompilerInstance::createDiagnostics(*VFS, *diag_opts));
31263146
3127 std::shared_ptr<clang::PCHContainerOperations> pch_container_ops = std::make_shared<clang::PCHContainerOperations>();3147 std::shared_ptr<clang::PCHContainerOperations> pch_container_ops = std::make_shared<clang::PCHContainerOperations>();
31283148
...@@ -3134,12 +3154,13 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char...@@ -3134,12 +3154,13 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char
3134 bool retain_excluded_conditional_blocks = false;3154 bool retain_excluded_conditional_blocks = false;
3135 bool store_preambles_in_memory = false;3155 bool store_preambles_in_memory = false;
3136 llvm::StringRef preamble_storage_path = llvm::StringRef();3156 llvm::StringRef preamble_storage_path = llvm::StringRef();
3137 clang::ArrayRef<clang::ASTUnit::RemappedFile> remapped_files = std::nullopt;3157 clang::ArrayRef<clang::ASTUnit::RemappedFile> remapped_files = {};
3138 std::unique_ptr<clang::ASTUnit> err_unit;3158 std::unique_ptr<clang::ASTUnit> err_unit;
3139 std::optional<llvm::StringRef> ModuleFormat = std::nullopt;3159 std::optional<llvm::StringRef> ModuleFormat = std::nullopt;
3140 std::unique_ptr<clang::ASTUnit> ast_unit_unique_ptr = clang::ASTUnit::LoadFromCommandLine(3160 std::unique_ptr<clang::ASTUnit> ast_unit_unique_ptr = clang::ASTUnit::LoadFromCommandLine(
3141 args_begin, args_end,3161 args_begin, args_end,
3142 pch_container_ops,3162 pch_container_ops,
3163 diag_opts,
3143 diags,3164 diags,
3144 resources_path,3165 resources_path,
3145 store_preambles_in_memory,3166 store_preambles_in_memory,
src/zig_clang.h+12-4
...@@ -273,6 +273,7 @@ enum ZigClangTypeClass {...@@ -273,6 +273,7 @@ enum ZigClangTypeClass {
273 ZigClangType_FunctionNoProto,273 ZigClangType_FunctionNoProto,
274 ZigClangType_FunctionProto,274 ZigClangType_FunctionProto,
275 ZigClangType_HLSLAttributedResource,275 ZigClangType_HLSLAttributedResource,
276 ZigClangType_HLSLInlineSpirv,
276 ZigClangType_InjectedClassName,277 ZigClangType_InjectedClassName,
277 ZigClangType_MacroQualified,278 ZigClangType_MacroQualified,
278 ZigClangType_ConstantMatrix,279 ZigClangType_ConstantMatrix,
...@@ -312,7 +313,6 @@ enum ZigClangStmtClass {...@@ -312,7 +313,6 @@ enum ZigClangStmtClass {
312 ZigClangStmt_VAArgExprClass,313 ZigClangStmt_VAArgExprClass,
313 ZigClangStmt_UnaryOperatorClass,314 ZigClangStmt_UnaryOperatorClass,
314 ZigClangStmt_UnaryExprOrTypeTraitExprClass,315 ZigClangStmt_UnaryExprOrTypeTraitExprClass,
315 ZigClangStmt_TypoExprClass,
316 ZigClangStmt_TypeTraitExprClass,316 ZigClangStmt_TypeTraitExprClass,
317 ZigClangStmt_SubstNonTypeTemplateParmPackExprClass,317 ZigClangStmt_SubstNonTypeTemplateParmPackExprClass,
318 ZigClangStmt_SubstNonTypeTemplateParmExprClass,318 ZigClangStmt_SubstNonTypeTemplateParmExprClass,
...@@ -454,11 +454,13 @@ enum ZigClangStmtClass {...@@ -454,11 +454,13 @@ enum ZigClangStmtClass {
454 ZigClangStmt_OpenACCInitConstructClass,454 ZigClangStmt_OpenACCInitConstructClass,
455 ZigClangStmt_OpenACCExitDataConstructClass,455 ZigClangStmt_OpenACCExitDataConstructClass,
456 ZigClangStmt_OpenACCEnterDataConstructClass,456 ZigClangStmt_OpenACCEnterDataConstructClass,
457 ZigClangStmt_OpenACCCacheConstructClass,
457 ZigClangStmt_OpenACCLoopConstructClass,458 ZigClangStmt_OpenACCLoopConstructClass,
458 ZigClangStmt_OpenACCHostDataConstructClass,459 ZigClangStmt_OpenACCHostDataConstructClass,
459 ZigClangStmt_OpenACCDataConstructClass,460 ZigClangStmt_OpenACCDataConstructClass,
460 ZigClangStmt_OpenACCComputeConstructClass,461 ZigClangStmt_OpenACCComputeConstructClass,
461 ZigClangStmt_OpenACCCombinedConstructClass,462 ZigClangStmt_OpenACCCombinedConstructClass,
463 ZigClangStmt_OpenACCAtomicConstructClass,
462 ZigClangStmt_ObjCForCollectionStmtClass,464 ZigClangStmt_ObjCForCollectionStmtClass,
463 ZigClangStmt_ObjCAutoreleasePoolStmtClass,465 ZigClangStmt_ObjCAutoreleasePoolStmtClass,
464 ZigClangStmt_ObjCAtTryStmtClass,466 ZigClangStmt_ObjCAtTryStmtClass,
...@@ -494,6 +496,7 @@ enum ZigClangStmtClass {...@@ -494,6 +496,7 @@ enum ZigClangStmtClass {
494 ZigClangStmt_OMPMaskedDirectiveClass,496 ZigClangStmt_OMPMaskedDirectiveClass,
495 ZigClangStmt_OMPUnrollDirectiveClass,497 ZigClangStmt_OMPUnrollDirectiveClass,
496 ZigClangStmt_OMPTileDirectiveClass,498 ZigClangStmt_OMPTileDirectiveClass,
499 ZigClangStmt_OMPStripeDirectiveClass,
497 ZigClangStmt_OMPReverseDirectiveClass,500 ZigClangStmt_OMPReverseDirectiveClass,
498 ZigClangStmt_OMPInterchangeDirectiveClass,501 ZigClangStmt_OMPInterchangeDirectiveClass,
499 ZigClangStmt_OMPTeamsGenericLoopDirectiveClass,502 ZigClangStmt_OMPTeamsGenericLoopDirectiveClass,
...@@ -644,6 +647,8 @@ enum ZigClangDeclKind {...@@ -644,6 +647,8 @@ enum ZigClangDeclKind {
644 ZigClangDeclStaticAssert,647 ZigClangDeclStaticAssert,
645 ZigClangDeclPragmaDetectMismatch,648 ZigClangDeclPragmaDetectMismatch,
646 ZigClangDeclPragmaComment,649 ZigClangDeclPragmaComment,
650 ZigClangDeclOpenACCRoutine,
651 ZigClangDeclOpenACCDeclare,
647 ZigClangDeclObjCPropertyImpl,652 ZigClangDeclObjCPropertyImpl,
648 ZigClangDeclOMPThreadPrivate,653 ZigClangDeclOMPThreadPrivate,
649 ZigClangDeclOMPRequires,654 ZigClangDeclOMPRequires,
...@@ -709,6 +714,7 @@ enum ZigClangDeclKind {...@@ -709,6 +714,7 @@ enum ZigClangDeclKind {
709 ZigClangDeclObjCCompatibleAlias,714 ZigClangDeclObjCCompatibleAlias,
710 ZigClangDeclNamespaceAlias,715 ZigClangDeclNamespaceAlias,
711 ZigClangDeclLabel,716 ZigClangDeclLabel,
717 ZigClangDeclHLSLRootSignature,
712 ZigClangDeclUsingEnum,718 ZigClangDeclUsingEnum,
713 ZigClangDeclUsing,719 ZigClangDeclUsing,
714 ZigClangDeclLifetimeExtendedTemporary,720 ZigClangDeclLifetimeExtendedTemporary,
...@@ -827,6 +833,7 @@ enum ZigClangBuiltinTypeKind {...@@ -827,6 +833,7 @@ enum ZigClangBuiltinTypeKind {
827 ZigClangBuiltinTypeSveBoolx4,833 ZigClangBuiltinTypeSveBoolx4,
828 ZigClangBuiltinTypeSveCount,834 ZigClangBuiltinTypeSveCount,
829 ZigClangBuiltinTypeMFloat8,835 ZigClangBuiltinTypeMFloat8,
836 ZigClangBuiltinTypeDMR1024,
830 ZigClangBuiltinTypeVectorQuad,837 ZigClangBuiltinTypeVectorQuad,
831 ZigClangBuiltinTypeVectorPair,838 ZigClangBuiltinTypeVectorPair,
832 ZigClangBuiltinTypeRvvInt8mf8,839 ZigClangBuiltinTypeRvvInt8mf8,
...@@ -1246,14 +1253,13 @@ enum ZigClangCallingConv {...@@ -1246,14 +1253,13 @@ enum ZigClangCallingConv {
1246 ZigClangCallingConv_AAPCS_VFP,1253 ZigClangCallingConv_AAPCS_VFP,
1247 ZigClangCallingConv_IntelOclBicc,1254 ZigClangCallingConv_IntelOclBicc,
1248 ZigClangCallingConv_SpirFunction,1255 ZigClangCallingConv_SpirFunction,
1249 ZigClangCallingConv_OpenCLKernel,1256 ZigClangCallingConv_DeviceKernel,
1250 ZigClangCallingConv_Swift,1257 ZigClangCallingConv_Swift,
1251 ZigClangCallingConv_SwiftAsync,1258 ZigClangCallingConv_SwiftAsync,
1252 ZigClangCallingConv_PreserveMost,1259 ZigClangCallingConv_PreserveMost,
1253 ZigClangCallingConv_PreserveAll,1260 ZigClangCallingConv_PreserveAll,
1254 ZigClangCallingConv_AArch64VectorCall,1261 ZigClangCallingConv_AArch64VectorCall,
1255 ZigClangCallingConv_AArch64SVEPCS,1262 ZigClangCallingConv_AArch64SVEPCS,
1256 ZigClangCallingConv_AMDGPUKernelCall,
1257 ZigClangCallingConv_M68kRTD,1263 ZigClangCallingConv_M68kRTD,
1258 ZigClangCallingConv_PreserveNone,1264 ZigClangCallingConv_PreserveNone,
1259 ZigClangCallingConv_RISCVVectorCall,1265 ZigClangCallingConv_RISCVVectorCall,
...@@ -1356,6 +1362,7 @@ enum ZigClangExpr_ConstantExprKind {...@@ -1356,6 +1362,7 @@ enum ZigClangExpr_ConstantExprKind {
1356enum ZigClangUnaryExprOrTypeTrait_Kind {1362enum ZigClangUnaryExprOrTypeTrait_Kind {
1357 ZigClangUnaryExprOrTypeTrait_KindSizeOf,1363 ZigClangUnaryExprOrTypeTrait_KindSizeOf,
1358 ZigClangUnaryExprOrTypeTrait_KindDataSizeOf,1364 ZigClangUnaryExprOrTypeTrait_KindDataSizeOf,
1365 ZigClangUnaryExprOrTypeTrait_KindCountOf,
1359 ZigClangUnaryExprOrTypeTrait_KindAlignOf,1366 ZigClangUnaryExprOrTypeTrait_KindAlignOf,
1360 ZigClangUnaryExprOrTypeTrait_KindPreferredAlignOf,1367 ZigClangUnaryExprOrTypeTrait_KindPreferredAlignOf,
1361 ZigClangUnaryExprOrTypeTrait_KindPtrAuthTypeDiscriminator,1368 ZigClangUnaryExprOrTypeTrait_KindPtrAuthTypeDiscriminator,
...@@ -1424,7 +1431,8 @@ ZIG_EXTERN_C unsigned ZigClangFieldDecl_getAlignedAttribute(const struct ZigClan...@@ -1424,7 +1431,8 @@ ZIG_EXTERN_C unsigned ZigClangFieldDecl_getAlignedAttribute(const struct ZigClan
1424ZIG_EXTERN_C bool ZigClangVarDecl_getPackedAttribute(const struct ZigClangVarDecl *self);1431ZIG_EXTERN_C bool ZigClangVarDecl_getPackedAttribute(const struct ZigClangVarDecl *self);
1425ZIG_EXTERN_C bool ZigClangFieldDecl_getPackedAttribute(const struct ZigClangFieldDecl *self);1432ZIG_EXTERN_C bool ZigClangFieldDecl_getPackedAttribute(const struct ZigClangFieldDecl *self);
14261433
1427ZIG_EXTERN_C const struct ZigClangStringLiteral *ZigClangFileScopeAsmDecl_getAsmString(const struct ZigClangFileScopeAsmDecl *self);1434ZIG_EXTERN_C const char *ZigClangFileScopeAsmDecl_getAsmString(const struct ZigClangFileScopeAsmDecl *self);
1435ZIG_EXTERN_C void ZigClangFileScopeAsmDecl_freeAsmString(const char *str);
14281436
1429ZIG_EXTERN_C struct ZigClangQualType ZigClangParmVarDecl_getOriginalType(const struct ZigClangParmVarDecl *self);1437ZIG_EXTERN_C struct ZigClangQualType ZigClangParmVarDecl_getOriginalType(const struct ZigClangParmVarDecl *self);
14301438
src/zig_llvm.cpp+10-2
...@@ -153,8 +153,16 @@ LLVMTargetMachineRef ZigLLVMCreateTargetMachine(LLVMTargetRef T, const char *Tri...@@ -153,8 +153,16 @@ LLVMTargetMachineRef ZigLLVMCreateTargetMachine(LLVMTargetRef T, const char *Tri
153 opt.EmulatedTLS = true;153 opt.EmulatedTLS = true;
154 }154 }
155155
156 TargetMachine *TM = reinterpret_cast<Target*>(T)->createTargetMachine(Triple, CPU, Features, opt, RM, CM,156 TargetMachine *TM = reinterpret_cast<Target*>(T)->createTargetMachine(
157 OL, JIT);157 llvm::Triple(Triple),
158 CPU,
159 Features,
160 opt,
161 RM,
162 CM,
163 OL,
164 JIT);
165
158 return reinterpret_cast<LLVMTargetMachineRef>(TM);166 return reinterpret_cast<LLVMTargetMachineRef>(TM);
159}167}
160168