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 {
973973
974974pub const FileScopeAsmDecl = opaque {
975975 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;
977980};
978981
979982pub const TypedefType = opaque {
......@@ -1170,6 +1173,7 @@ pub const TypeClass = enum(c_int) {
11701173 FunctionNoProto,
11711174 FunctionProto,
11721175 HLSLAttributedResource,
1176 HLSLInlineSpirv,
11731177 InjectedClassName,
11741178 MacroQualified,
11751179 ConstantMatrix,
......@@ -1209,7 +1213,6 @@ const StmtClass = enum(c_int) {
12091213 VAArgExprClass,
12101214 UnaryOperatorClass,
12111215 UnaryExprOrTypeTraitExprClass,
1212 TypoExprClass,
12131216 TypeTraitExprClass,
12141217 SubstNonTypeTemplateParmPackExprClass,
12151218 SubstNonTypeTemplateParmExprClass,
......@@ -1351,11 +1354,13 @@ const StmtClass = enum(c_int) {
13511354 OpenACCInitConstructClass,
13521355 OpenACCExitDataConstructClass,
13531356 OpenACCEnterDataConstructClass,
1357 OpenACCCacheConstructClass,
13541358 OpenACCLoopConstructClass,
13551359 OpenACCHostDataConstructClass,
13561360 OpenACCDataConstructClass,
13571361 OpenACCComputeConstructClass,
13581362 OpenACCCombinedConstructClass,
1363 OpenACCAtomicConstructClass,
13591364 ObjCForCollectionStmtClass,
13601365 ObjCAutoreleasePoolStmtClass,
13611366 ObjCAtTryStmtClass,
......@@ -1391,6 +1396,7 @@ const StmtClass = enum(c_int) {
13911396 OMPMaskedDirectiveClass,
13921397 OMPUnrollDirectiveClass,
13931398 OMPTileDirectiveClass,
1399 OMPStripeDirectiveClass,
13941400 OMPReverseDirectiveClass,
13951401 OMPInterchangeDirectiveClass,
13961402 OMPTeamsGenericLoopDirectiveClass,
......@@ -1541,6 +1547,8 @@ pub const DeclKind = enum(c_int) {
15411547 StaticAssert,
15421548 PragmaDetectMismatch,
15431549 PragmaComment,
1550 OpenACCRoutine,
1551 OpenACCDeclare,
15441552 ObjCPropertyImpl,
15451553 OMPThreadPrivate,
15461554 OMPRequires,
......@@ -1606,6 +1614,7 @@ pub const DeclKind = enum(c_int) {
16061614 ObjCCompatibleAlias,
16071615 NamespaceAlias,
16081616 Label,
1617 HLSLRootSignature,
16091618 UsingEnum,
16101619 Using,
16111620 LifetimeExtendedTemporary,
......@@ -1724,6 +1733,7 @@ pub const BuiltinTypeKind = enum(c_int) {
17241733 SveBoolx4,
17251734 SveCount,
17261735 MFloat8,
1736 DMR1024,
17271737 VectorQuad,
17281738 VectorPair,
17291739 RvvInt8mf8,
......@@ -2143,14 +2153,13 @@ pub const CallingConv = enum(c_int) {
21432153 AAPCS_VFP,
21442154 IntelOclBicc,
21452155 SpirFunction,
2146 OpenCLKernel,
2156 DeviceKernel,
21472157 Swift,
21482158 SwiftAsync,
21492159 PreserveMost,
21502160 PreserveAll,
21512161 AArch64VectorCall,
21522162 AArch64SVEPCS,
2153 AMDGPUKernelCall,
21542163 M68kRTD,
21552164 PreserveNone,
21562165 RISCVVectorCall,
......@@ -2216,6 +2225,7 @@ pub const Expr_ConstantExprKind = enum(c_int) {
22162225pub const UnaryExprOrTypeTrait_Kind = enum(c_int) {
22172226 SizeOf,
22182227 DataSizeOf,
2228 CountOf,
22192229 AlignOf,
22202230 PreferredAlignOf,
22212231 PtrAuthTypeDiscriminator,
src/translate_c.zig+4-4
......@@ -353,11 +353,10 @@ fn declVisitor(c: *Context, decl: *const clang.Decl) Error!void {
353353}
354354
355355fn transFileScopeAsm(c: *Context, scope: *Scope, file_scope_asm: *const clang.FileScopeAsmDecl) Error!void {
356 const asm_string = file_scope_asm.getAsmString();
357 var len: usize = undefined;
358 const bytes_ptr = asm_string.getString_bytes_begin_size(&len);
356 const asm_string = std.mem.span(file_scope_asm.getAsmString());
357 defer clang.FileScopeAsmDecl.freeAsmString(asm_string.ptr);
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)});
361360 const str_node = try Tag.string_literal.create(c.arena, str);
362361
363362 const asm_node = try Tag.asm_simple.create(c.arena, str_node);
......@@ -3696,6 +3695,7 @@ fn transUnaryExprOrTypeTraitExpr(
36963695 .SizeOf => try Tag.sizeof.create(c.arena, type_node),
36973696 .AlignOf => try Tag.alignof.create(c.arena, type_node),
36983697 .DataSizeOf,
3698 .CountOf,
36993699 .PreferredAlignOf,
37003700 .PtrAuthTypeDiscriminator,
37013701 .VecStep,
src/zig_clang.cpp+32-11
......@@ -330,6 +330,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
330330 case clang::Type::Auto:
331331 case clang::Type::DeducedTemplateSpecialization:
332332 case clang::Type::HLSLAttributedResource:
333 case clang::Type::HLSLInlineSpirv:
333334 case clang::Type::InjectedClassName:
334335 case clang::Type::DependentName:
335336 case clang::Type::DependentTemplateSpecialization:
......@@ -373,6 +374,7 @@ static_assert((clang::Type::TypeClass)ZigClangType_Elaborated == clang::Type::El
373374static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Type::FunctionNoProto, "");
374375static_assert((clang::Type::TypeClass)ZigClangType_FunctionProto == clang::Type::FunctionProto, "");
375376static_assert((clang::Type::TypeClass)ZigClangType_HLSLAttributedResource == clang::Type::HLSLAttributedResource, "");
377static_assert((clang::Type::TypeClass)ZigClangType_HLSLInlineSpirv == clang::Type::HLSLInlineSpirv, "");
376378static_assert((clang::Type::TypeClass)ZigClangType_InjectedClassName == clang::Type::InjectedClassName, "");
377379static_assert((clang::Type::TypeClass)ZigClangType_MacroQualified == clang::Type::MacroQualified, "");
378380static_assert((clang::Type::TypeClass)ZigClangType_ConstantMatrix == clang::Type::ConstantMatrix, "");
......@@ -413,7 +415,6 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
413415 case clang::Stmt::VAArgExprClass:
414416 case clang::Stmt::UnaryOperatorClass:
415417 case clang::Stmt::UnaryExprOrTypeTraitExprClass:
416 case clang::Stmt::TypoExprClass:
417418 case clang::Stmt::TypeTraitExprClass:
418419 case clang::Stmt::SubstNonTypeTemplateParmPackExprClass:
419420 case clang::Stmt::SubstNonTypeTemplateParmExprClass:
......@@ -555,11 +556,13 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
555556 case clang::Stmt::OpenACCInitConstructClass:
556557 case clang::Stmt::OpenACCExitDataConstructClass:
557558 case clang::Stmt::OpenACCEnterDataConstructClass:
559 case clang::Stmt::OpenACCCacheConstructClass:
558560 case clang::Stmt::OpenACCLoopConstructClass:
559561 case clang::Stmt::OpenACCHostDataConstructClass:
560562 case clang::Stmt::OpenACCDataConstructClass:
561563 case clang::Stmt::OpenACCComputeConstructClass:
562564 case clang::Stmt::OpenACCCombinedConstructClass:
565 case clang::Stmt::OpenACCAtomicConstructClass:
563566 case clang::Stmt::ObjCForCollectionStmtClass:
564567 case clang::Stmt::ObjCAutoreleasePoolStmtClass:
565568 case clang::Stmt::ObjCAtTryStmtClass:
......@@ -595,6 +598,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
595598 case clang::Stmt::OMPMaskedDirectiveClass:
596599 case clang::Stmt::OMPUnrollDirectiveClass:
597600 case clang::Stmt::OMPTileDirectiveClass:
601 case clang::Stmt::OMPStripeDirectiveClass:
598602 case clang::Stmt::OMPReverseDirectiveClass:
599603 case clang::Stmt::OMPInterchangeDirectiveClass:
600604 case clang::Stmt::OMPTeamsGenericLoopDirectiveClass:
......@@ -672,7 +676,6 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_LabelStmtClass == clang::Stmt
672676static_assert((clang::Stmt::StmtClass)ZigClangStmt_VAArgExprClass == clang::Stmt::VAArgExprClass, "");
673677static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnaryOperatorClass == clang::Stmt::UnaryOperatorClass, "");
674678static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnaryExprOrTypeTraitExprClass == clang::Stmt::UnaryExprOrTypeTraitExprClass, "");
675static_assert((clang::Stmt::StmtClass)ZigClangStmt_TypoExprClass == clang::Stmt::TypoExprClass, "");
676679static_assert((clang::Stmt::StmtClass)ZigClangStmt_TypeTraitExprClass == clang::Stmt::TypeTraitExprClass, "");
677680static_assert((clang::Stmt::StmtClass)ZigClangStmt_SubstNonTypeTemplateParmPackExprClass == clang::Stmt::SubstNonTypeTemplateParmPackExprClass, "");
678681static_assert((clang::Stmt::StmtClass)ZigClangStmt_SubstNonTypeTemplateParmExprClass == clang::Stmt::SubstNonTypeTemplateParmExprClass, "");
......@@ -814,11 +817,13 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCSetConstructClass == c
814817static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCInitConstructClass == clang::Stmt::OpenACCInitConstructClass, "");
815818static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCExitDataConstructClass == clang::Stmt::OpenACCExitDataConstructClass, "");
816819static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCEnterDataConstructClass == clang::Stmt::OpenACCEnterDataConstructClass, "");
820static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCCacheConstructClass == clang::Stmt::OpenACCCacheConstructClass, "");
817821static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCLoopConstructClass == clang::Stmt::OpenACCLoopConstructClass, "");
818822static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCHostDataConstructClass == clang::Stmt::OpenACCHostDataConstructClass, "");
819823static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCDataConstructClass == clang::Stmt::OpenACCDataConstructClass, "");
820824static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCComputeConstructClass == clang::Stmt::OpenACCComputeConstructClass, "");
821825static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCCombinedConstructClass == clang::Stmt::OpenACCCombinedConstructClass, "");
826static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCAtomicConstructClass == clang::Stmt::OpenACCAtomicConstructClass, "");
822827static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCForCollectionStmtClass == clang::Stmt::ObjCForCollectionStmtClass, "");
823828static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAutoreleasePoolStmtClass == clang::Stmt::ObjCAutoreleasePoolStmtClass, "");
824829static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAtTryStmtClass == clang::Stmt::ObjCAtTryStmtClass, "");
......@@ -854,6 +859,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterDirectiveClass == cl
854859static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMaskedDirectiveClass == clang::Stmt::OMPMaskedDirectiveClass, "");
855860static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPUnrollDirectiveClass == clang::Stmt::OMPUnrollDirectiveClass, "");
856861static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTileDirectiveClass == clang::Stmt::OMPTileDirectiveClass, "");
862static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPStripeDirectiveClass == clang::Stmt::OMPStripeDirectiveClass, "");
857863static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPReverseDirectiveClass == clang::Stmt::OMPReverseDirectiveClass, "");
858864static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPInterchangeDirectiveClass == clang::Stmt::OMPInterchangeDirectiveClass, "");
859865static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsGenericLoopDirectiveClass == clang::Stmt::OMPTeamsGenericLoopDirectiveClass, "");
......@@ -972,6 +978,8 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
972978 case clang::Decl::StaticAssert:
973979 case clang::Decl::PragmaDetectMismatch:
974980 case clang::Decl::PragmaComment:
981 case clang::Decl::OpenACCRoutine:
982 case clang::Decl::OpenACCDeclare:
975983 case clang::Decl::ObjCPropertyImpl:
976984 case clang::Decl::OMPThreadPrivate:
977985 case clang::Decl::OMPRequires:
......@@ -1037,6 +1045,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
10371045 case clang::Decl::ObjCCompatibleAlias:
10381046 case clang::Decl::NamespaceAlias:
10391047 case clang::Decl::Label:
1048 case clang::Decl::HLSLRootSignature:
10401049 case clang::Decl::UsingEnum:
10411050 case clang::Decl::Using:
10421051 case clang::Decl::LifetimeExtendedTemporary:
......@@ -1063,6 +1072,8 @@ static_assert((clang::Decl::Kind)ZigClangDeclBlock == clang::Decl::Block, "");
10631072static_assert((clang::Decl::Kind)ZigClangDeclStaticAssert == clang::Decl::StaticAssert, "");
10641073static_assert((clang::Decl::Kind)ZigClangDeclPragmaDetectMismatch == clang::Decl::PragmaDetectMismatch, "");
10651074static_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, "");
10661077static_assert((clang::Decl::Kind)ZigClangDeclObjCPropertyImpl == clang::Decl::ObjCPropertyImpl, "");
10671078static_assert((clang::Decl::Kind)ZigClangDeclOMPThreadPrivate == clang::Decl::OMPThreadPrivate, "");
10681079static_assert((clang::Decl::Kind)ZigClangDeclOMPRequires == clang::Decl::OMPRequires, "");
......@@ -1128,6 +1139,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclObjCProperty == clang::Decl::ObjCPr
11281139static_assert((clang::Decl::Kind)ZigClangDeclObjCCompatibleAlias == clang::Decl::ObjCCompatibleAlias, "");
11291140static_assert((clang::Decl::Kind)ZigClangDeclNamespaceAlias == clang::Decl::NamespaceAlias, "");
11301141static_assert((clang::Decl::Kind)ZigClangDeclLabel == clang::Decl::Label, "");
1142static_assert((clang::Decl::Kind)ZigClangDeclHLSLRootSignature == clang::Decl::HLSLRootSignature, "");
11311143static_assert((clang::Decl::Kind)ZigClangDeclUsingEnum == clang::Decl::UsingEnum, "");
11321144static_assert((clang::Decl::Kind)ZigClangDeclUsing == clang::Decl::Using, "");
11331145static_assert((clang::Decl::Kind)ZigClangDeclLifetimeExtendedTemporary == clang::Decl::LifetimeExtendedTemporary, "");
......@@ -1246,6 +1258,7 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
12461258 case clang::BuiltinType::SveBoolx4:
12471259 case clang::BuiltinType::SveCount:
12481260 case clang::BuiltinType::MFloat8:
1261 case clang::BuiltinType::DMR1024:
12491262 case clang::BuiltinType::VectorQuad:
12501263 case clang::BuiltinType::VectorPair:
12511264 case clang::BuiltinType::RvvInt8mf8:
......@@ -1758,6 +1771,7 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBoolx2 == clang::B
17581771static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBoolx4 == clang::BuiltinType::SveBoolx4, "");
17591772static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveCount == clang::BuiltinType::SveCount, "");
17601773static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeMFloat8 == clang::BuiltinType::MFloat8, "");
1774static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeDMR1024 == clang::BuiltinType::DMR1024, "");
17611775static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorQuad == clang::BuiltinType::VectorQuad, "");
17621776static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorPair == clang::BuiltinType::VectorPair, "");
17631777static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8mf8 == clang::BuiltinType::RvvInt8mf8, "");
......@@ -2176,14 +2190,13 @@ void ZigClang_detect_enum_CallingConv(clang::CallingConv x) {
21762190 case clang::CC_AAPCS_VFP:
21772191 case clang::CC_IntelOclBicc:
21782192 case clang::CC_SpirFunction:
2179 case clang::CC_OpenCLKernel:
2193 case clang::CC_DeviceKernel:
21802194 case clang::CC_Swift:
21812195 case clang::CC_SwiftAsync:
21822196 case clang::CC_PreserveMost:
21832197 case clang::CC_PreserveAll:
21842198 case clang::CC_AArch64VectorCall:
21852199 case clang::CC_AArch64SVEPCS:
2186 case clang::CC_AMDGPUKernelCall:
21872200 case clang::CC_M68kRTD:
21882201 case clang::CC_PreserveNone:
21892202 case clang::CC_RISCVVectorCall:
......@@ -2204,14 +2217,13 @@ static_assert((clang::CallingConv)ZigClangCallingConv_AAPCS == clang::CC_AAPCS,
22042217static_assert((clang::CallingConv)ZigClangCallingConv_AAPCS_VFP == clang::CC_AAPCS_VFP, "");
22052218static_assert((clang::CallingConv)ZigClangCallingConv_IntelOclBicc == clang::CC_IntelOclBicc, "");
22062219static_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, "");
22082221static_assert((clang::CallingConv)ZigClangCallingConv_Swift == clang::CC_Swift, "");
22092222static_assert((clang::CallingConv)ZigClangCallingConv_SwiftAsync == clang::CC_SwiftAsync, "");
22102223static_assert((clang::CallingConv)ZigClangCallingConv_PreserveMost == clang::CC_PreserveMost, "");
22112224static_assert((clang::CallingConv)ZigClangCallingConv_PreserveAll == clang::CC_PreserveAll, "");
22122225static_assert((clang::CallingConv)ZigClangCallingConv_AArch64VectorCall == clang::CC_AArch64VectorCall, "");
22132226static_assert((clang::CallingConv)ZigClangCallingConv_AArch64SVEPCS == clang::CC_AArch64SVEPCS, "");
2214static_assert((clang::CallingConv)ZigClangCallingConv_AMDGPUKernelCall == clang::CC_AMDGPUKernelCall, "");
22152227static_assert((clang::CallingConv)ZigClangCallingConv_M68kRTD == clang::CC_M68kRTD, "");
22162228static_assert((clang::CallingConv)ZigClangCallingConv_PreserveNone == clang::CC_PreserveNone, "");
22172229static_assert((clang::CallingConv)ZigClangCallingConv_RISCVVectorCall == clang::CC_RISCVVectorCall, "");
......@@ -2322,6 +2334,7 @@ static_assert((clang::Expr::ConstantExprKind)ZigClangExpr_ConstantExprKind_Immed
23222334
23232335static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindSizeOf == clang::UnaryExprOrTypeTrait::UETT_SizeOf, "");
23242336static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindDataSizeOf == clang::UnaryExprOrTypeTrait::UETT_DataSizeOf, "");
2337static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindCountOf == clang::UnaryExprOrTypeTrait::UETT_CountOf, "");
23252338static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindAlignOf == clang::UnaryExprOrTypeTrait::UETT_AlignOf, "");
23262339static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindPreferredAlignOf == clang::UnaryExprOrTypeTrait::UETT_PreferredAlignOf, "");
23272340static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindPtrAuthTypeDiscriminator == clang::UnaryExprOrTypeTrait::UETT_PtrAuthTypeDiscriminator, "");
......@@ -2622,9 +2635,15 @@ const ZigClangEnumDecl *ZigClangEnumDecl_getDefinition(const ZigClangEnumDecl *z
26222635 return reinterpret_cast<const ZigClangEnumDecl *>(definition);
26232636}
26242637
2625const ZigClangStringLiteral *ZigClangFileScopeAsmDecl_getAsmString(const ZigClangFileScopeAsmDecl *self) {
2626 const clang::StringLiteral *result = reinterpret_cast<const clang::FileScopeAsmDecl*>(self)->getAsmString();
2627 return reinterpret_cast<const ZigClangStringLiteral *>(result);
2638const char *ZigClangFileScopeAsmDecl_getAsmString(const ZigClangFileScopeAsmDecl *self) {
2639 std::string str = reinterpret_cast<const clang::FileScopeAsmDecl*>(self)->getAsmString();
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;
26282647}
26292648
26302649bool ZigClangRecordDecl_isUnion(const ZigClangRecordDecl *record_decl) {
......@@ -3122,7 +3141,8 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char
31223141 struct Stage2ErrorMsg **errors_ptr, size_t *errors_len, const char *resources_path)
31233142{
31243143 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
31273147 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
31343154 bool retain_excluded_conditional_blocks = false;
31353155 bool store_preambles_in_memory = false;
31363156 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 = {};
31383158 std::unique_ptr<clang::ASTUnit> err_unit;
31393159 std::optional<llvm::StringRef> ModuleFormat = std::nullopt;
31403160 std::unique_ptr<clang::ASTUnit> ast_unit_unique_ptr = clang::ASTUnit::LoadFromCommandLine(
31413161 args_begin, args_end,
31423162 pch_container_ops,
3163 diag_opts,
31433164 diags,
31443165 resources_path,
31453166 store_preambles_in_memory,
src/zig_clang.h+12-4
......@@ -273,6 +273,7 @@ enum ZigClangTypeClass {
273273 ZigClangType_FunctionNoProto,
274274 ZigClangType_FunctionProto,
275275 ZigClangType_HLSLAttributedResource,
276 ZigClangType_HLSLInlineSpirv,
276277 ZigClangType_InjectedClassName,
277278 ZigClangType_MacroQualified,
278279 ZigClangType_ConstantMatrix,
......@@ -312,7 +313,6 @@ enum ZigClangStmtClass {
312313 ZigClangStmt_VAArgExprClass,
313314 ZigClangStmt_UnaryOperatorClass,
314315 ZigClangStmt_UnaryExprOrTypeTraitExprClass,
315 ZigClangStmt_TypoExprClass,
316316 ZigClangStmt_TypeTraitExprClass,
317317 ZigClangStmt_SubstNonTypeTemplateParmPackExprClass,
318318 ZigClangStmt_SubstNonTypeTemplateParmExprClass,
......@@ -454,11 +454,13 @@ enum ZigClangStmtClass {
454454 ZigClangStmt_OpenACCInitConstructClass,
455455 ZigClangStmt_OpenACCExitDataConstructClass,
456456 ZigClangStmt_OpenACCEnterDataConstructClass,
457 ZigClangStmt_OpenACCCacheConstructClass,
457458 ZigClangStmt_OpenACCLoopConstructClass,
458459 ZigClangStmt_OpenACCHostDataConstructClass,
459460 ZigClangStmt_OpenACCDataConstructClass,
460461 ZigClangStmt_OpenACCComputeConstructClass,
461462 ZigClangStmt_OpenACCCombinedConstructClass,
463 ZigClangStmt_OpenACCAtomicConstructClass,
462464 ZigClangStmt_ObjCForCollectionStmtClass,
463465 ZigClangStmt_ObjCAutoreleasePoolStmtClass,
464466 ZigClangStmt_ObjCAtTryStmtClass,
......@@ -494,6 +496,7 @@ enum ZigClangStmtClass {
494496 ZigClangStmt_OMPMaskedDirectiveClass,
495497 ZigClangStmt_OMPUnrollDirectiveClass,
496498 ZigClangStmt_OMPTileDirectiveClass,
499 ZigClangStmt_OMPStripeDirectiveClass,
497500 ZigClangStmt_OMPReverseDirectiveClass,
498501 ZigClangStmt_OMPInterchangeDirectiveClass,
499502 ZigClangStmt_OMPTeamsGenericLoopDirectiveClass,
......@@ -644,6 +647,8 @@ enum ZigClangDeclKind {
644647 ZigClangDeclStaticAssert,
645648 ZigClangDeclPragmaDetectMismatch,
646649 ZigClangDeclPragmaComment,
650 ZigClangDeclOpenACCRoutine,
651 ZigClangDeclOpenACCDeclare,
647652 ZigClangDeclObjCPropertyImpl,
648653 ZigClangDeclOMPThreadPrivate,
649654 ZigClangDeclOMPRequires,
......@@ -709,6 +714,7 @@ enum ZigClangDeclKind {
709714 ZigClangDeclObjCCompatibleAlias,
710715 ZigClangDeclNamespaceAlias,
711716 ZigClangDeclLabel,
717 ZigClangDeclHLSLRootSignature,
712718 ZigClangDeclUsingEnum,
713719 ZigClangDeclUsing,
714720 ZigClangDeclLifetimeExtendedTemporary,
......@@ -827,6 +833,7 @@ enum ZigClangBuiltinTypeKind {
827833 ZigClangBuiltinTypeSveBoolx4,
828834 ZigClangBuiltinTypeSveCount,
829835 ZigClangBuiltinTypeMFloat8,
836 ZigClangBuiltinTypeDMR1024,
830837 ZigClangBuiltinTypeVectorQuad,
831838 ZigClangBuiltinTypeVectorPair,
832839 ZigClangBuiltinTypeRvvInt8mf8,
......@@ -1246,14 +1253,13 @@ enum ZigClangCallingConv {
12461253 ZigClangCallingConv_AAPCS_VFP,
12471254 ZigClangCallingConv_IntelOclBicc,
12481255 ZigClangCallingConv_SpirFunction,
1249 ZigClangCallingConv_OpenCLKernel,
1256 ZigClangCallingConv_DeviceKernel,
12501257 ZigClangCallingConv_Swift,
12511258 ZigClangCallingConv_SwiftAsync,
12521259 ZigClangCallingConv_PreserveMost,
12531260 ZigClangCallingConv_PreserveAll,
12541261 ZigClangCallingConv_AArch64VectorCall,
12551262 ZigClangCallingConv_AArch64SVEPCS,
1256 ZigClangCallingConv_AMDGPUKernelCall,
12571263 ZigClangCallingConv_M68kRTD,
12581264 ZigClangCallingConv_PreserveNone,
12591265 ZigClangCallingConv_RISCVVectorCall,
......@@ -1356,6 +1362,7 @@ enum ZigClangExpr_ConstantExprKind {
13561362enum ZigClangUnaryExprOrTypeTrait_Kind {
13571363 ZigClangUnaryExprOrTypeTrait_KindSizeOf,
13581364 ZigClangUnaryExprOrTypeTrait_KindDataSizeOf,
1365 ZigClangUnaryExprOrTypeTrait_KindCountOf,
13591366 ZigClangUnaryExprOrTypeTrait_KindAlignOf,
13601367 ZigClangUnaryExprOrTypeTrait_KindPreferredAlignOf,
13611368 ZigClangUnaryExprOrTypeTrait_KindPtrAuthTypeDiscriminator,
......@@ -1424,7 +1431,8 @@ ZIG_EXTERN_C unsigned ZigClangFieldDecl_getAlignedAttribute(const struct ZigClan
14241431ZIG_EXTERN_C bool ZigClangVarDecl_getPackedAttribute(const struct ZigClangVarDecl *self);
14251432ZIG_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
14291437ZIG_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
153153 opt.EmulatedTLS = true;
154154 }
155155
156 TargetMachine *TM = reinterpret_cast<Target*>(T)->createTargetMachine(Triple, CPU, Features, opt, RM, CM,
157 OL, JIT);
156 TargetMachine *TM = reinterpret_cast<Target*>(T)->createTargetMachine(
157 llvm::Triple(Triple),
158 CPU,
159 Features,
160 opt,
161 RM,
162 CM,
163 OL,
164 JIT);
165
158166 return reinterpret_cast<LLVMTargetMachineRef>(TM);
159167}
160168