authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-02-05 11:41:39+01:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-04-04 06:08:09+02:00
log8ea2e1ded522ae972fc201ca52cbc6e752c1d405
tree7cca61207974e9bc86422122c2c02c183cdfd242
parent156ab8750056c3ff440af0937806d8cdb2623816
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

compiler: Updates for LLVM/Clang 20 API changes.


8 files changed, 151 insertions(+), 28 deletions(-)

src/clang.zig+26
...@@ -112,13 +112,16 @@ pub const APFloatBaseSemantics = enum(c_int) {...@@ -112,13 +112,16 @@ pub const APFloatBaseSemantics = enum(c_int) {
112 IEEEdouble,112 IEEEdouble,
113 IEEEquad,113 IEEEquad,
114 PPCDoubleDouble,114 PPCDoubleDouble,
115 PPCDoubleDoubleLegacy,
115 Float8E5M2,116 Float8E5M2,
116 Float8E5M2FNUZ,117 Float8E5M2FNUZ,
117 Float8E4M3,118 Float8E4M3,
118 Float8E4M3FN,119 Float8E4M3FN,
119 Float8E4M3FNUZ,120 Float8E4M3FNUZ,
120 Float8E4M3B11FNUZ,121 Float8E4M3B11FNUZ,
122 Float8E3M4,
121 FloatTF32,123 FloatTF32,
124 Float8E8M0FNU,
122 Float6E3M2FN,125 Float6E3M2FN,
123 Float6E2M3FN,126 Float6E2M3FN,
124 Float4E2M1FN,127 Float4E2M1FN,
...@@ -1166,6 +1169,7 @@ pub const TypeClass = enum(c_int) {...@@ -1166,6 +1169,7 @@ pub const TypeClass = enum(c_int) {
1166 Elaborated,1169 Elaborated,
1167 FunctionNoProto,1170 FunctionNoProto,
1168 FunctionProto,1171 FunctionProto,
1172 HLSLAttributedResource,
1169 InjectedClassName,1173 InjectedClassName,
1170 MacroQualified,1174 MacroQualified,
1171 ConstantMatrix,1175 ConstantMatrix,
...@@ -1225,6 +1229,7 @@ const StmtClass = enum(c_int) {...@@ -1225,6 +1229,7 @@ const StmtClass = enum(c_int) {
1225 PackExpansionExprClass,1229 PackExpansionExprClass,
1226 UnresolvedMemberExprClass,1230 UnresolvedMemberExprClass,
1227 UnresolvedLookupExprClass,1231 UnresolvedLookupExprClass,
1232 OpenACCAsteriskSizeExprClass,
1228 OpaqueValueExprClass,1233 OpaqueValueExprClass,
1229 OffsetOfExprClass,1234 OffsetOfExprClass,
1230 ObjCSubscriptRefExprClass,1235 ObjCSubscriptRefExprClass,
...@@ -1255,6 +1260,7 @@ const StmtClass = enum(c_int) {...@@ -1255,6 +1260,7 @@ const StmtClass = enum(c_int) {
1255 InitListExprClass,1260 InitListExprClass,
1256 ImplicitValueInitExprClass,1261 ImplicitValueInitExprClass,
1257 ImaginaryLiteralClass,1262 ImaginaryLiteralClass,
1263 HLSLOutArgExprClass,
1258 GenericSelectionExprClass,1264 GenericSelectionExprClass,
1259 GNUNullExprClass,1265 GNUNullExprClass,
1260 FunctionParmPackExprClass,1266 FunctionParmPackExprClass,
...@@ -1332,13 +1338,24 @@ const StmtClass = enum(c_int) {...@@ -1332,13 +1338,24 @@ const StmtClass = enum(c_int) {
1332 SwitchStmtClass,1338 SwitchStmtClass,
1333 DefaultStmtClass,1339 DefaultStmtClass,
1334 CaseStmtClass,1340 CaseStmtClass,
1341 SYCLKernelCallStmtClass,
1335 SEHTryStmtClass,1342 SEHTryStmtClass,
1336 SEHLeaveStmtClass,1343 SEHLeaveStmtClass,
1337 SEHFinallyStmtClass,1344 SEHFinallyStmtClass,
1338 SEHExceptStmtClass,1345 SEHExceptStmtClass,
1339 ReturnStmtClass,1346 ReturnStmtClass,
1347 OpenACCWaitConstructClass,
1348 OpenACCUpdateConstructClass,
1349 OpenACCShutdownConstructClass,
1350 OpenACCSetConstructClass,
1351 OpenACCInitConstructClass,
1352 OpenACCExitDataConstructClass,
1353 OpenACCEnterDataConstructClass,
1340 OpenACCLoopConstructClass,1354 OpenACCLoopConstructClass,
1355 OpenACCHostDataConstructClass,
1356 OpenACCDataConstructClass,
1341 OpenACCComputeConstructClass,1357 OpenACCComputeConstructClass,
1358 OpenACCCombinedConstructClass,
1342 ObjCForCollectionStmtClass,1359 ObjCForCollectionStmtClass,
1343 ObjCAutoreleasePoolStmtClass,1360 ObjCAutoreleasePoolStmtClass,
1344 ObjCAtTryStmtClass,1361 ObjCAtTryStmtClass,
...@@ -1420,6 +1437,7 @@ const StmtClass = enum(c_int) {...@@ -1420,6 +1437,7 @@ const StmtClass = enum(c_int) {
1420 OMPCancelDirectiveClass,1437 OMPCancelDirectiveClass,
1421 OMPBarrierDirectiveClass,1438 OMPBarrierDirectiveClass,
1422 OMPAtomicDirectiveClass,1439 OMPAtomicDirectiveClass,
1440 OMPAssumeDirectiveClass,
1423 OMPCanonicalLoopClass,1441 OMPCanonicalLoopClass,
1424 NullStmtClass,1442 NullStmtClass,
1425 MSDependentExistsStmtClass,1443 MSDependentExistsStmtClass,
...@@ -1514,6 +1532,7 @@ pub const DeclKind = enum(c_int) {...@@ -1514,6 +1532,7 @@ pub const DeclKind = enum(c_int) {
1514 TranslationUnit,1532 TranslationUnit,
1515 TopLevelStmt,1533 TopLevelStmt,
1516 RequiresExprBody,1534 RequiresExprBody,
1535 OutlinedFunction,
1517 LinkageSpec,1536 LinkageSpec,
1518 ExternCContext,1537 ExternCContext,
1519 Export,1538 Export,
...@@ -1660,6 +1679,7 @@ pub const BuiltinTypeKind = enum(c_int) {...@@ -1660,6 +1679,7 @@ pub const BuiltinTypeKind = enum(c_int) {
1660 SveFloat32,1679 SveFloat32,
1661 SveFloat64,1680 SveFloat64,
1662 SveBFloat16,1681 SveBFloat16,
1682 SveMFloat8,
1663 SveInt8x2,1683 SveInt8x2,
1664 SveInt16x2,1684 SveInt16x2,
1665 SveInt32x2,1685 SveInt32x2,
...@@ -1672,6 +1692,7 @@ pub const BuiltinTypeKind = enum(c_int) {...@@ -1672,6 +1692,7 @@ pub const BuiltinTypeKind = enum(c_int) {
1672 SveFloat32x2,1692 SveFloat32x2,
1673 SveFloat64x2,1693 SveFloat64x2,
1674 SveBFloat16x2,1694 SveBFloat16x2,
1695 SveMFloat8x2,
1675 SveInt8x3,1696 SveInt8x3,
1676 SveInt16x3,1697 SveInt16x3,
1677 SveInt32x3,1698 SveInt32x3,
...@@ -1684,6 +1705,7 @@ pub const BuiltinTypeKind = enum(c_int) {...@@ -1684,6 +1705,7 @@ pub const BuiltinTypeKind = enum(c_int) {
1684 SveFloat32x3,1705 SveFloat32x3,
1685 SveFloat64x3,1706 SveFloat64x3,
1686 SveBFloat16x3,1707 SveBFloat16x3,
1708 SveMFloat8x3,
1687 SveInt8x4,1709 SveInt8x4,
1688 SveInt16x4,1710 SveInt16x4,
1689 SveInt32x4,1711 SveInt32x4,
...@@ -1696,10 +1718,12 @@ pub const BuiltinTypeKind = enum(c_int) {...@@ -1696,10 +1718,12 @@ pub const BuiltinTypeKind = enum(c_int) {
1696 SveFloat32x4,1718 SveFloat32x4,
1697 SveFloat64x4,1719 SveFloat64x4,
1698 SveBFloat16x4,1720 SveBFloat16x4,
1721 SveMFloat8x4,
1699 SveBool,1722 SveBool,
1700 SveBoolx2,1723 SveBoolx2,
1701 SveBoolx4,1724 SveBoolx4,
1702 SveCount,1725 SveCount,
1726 MFloat8,
1703 VectorQuad,1727 VectorQuad,
1704 VectorPair,1728 VectorPair,
1705 RvvInt8mf8,1729 RvvInt8mf8,
...@@ -2027,6 +2051,8 @@ pub const BuiltinTypeKind = enum(c_int) {...@@ -2027,6 +2051,8 @@ pub const BuiltinTypeKind = enum(c_int) {
2027 RvvBFloat16m4x2,2051 RvvBFloat16m4x2,
2028 WasmExternRef,2052 WasmExternRef,
2029 AMDGPUBufferRsrc,2053 AMDGPUBufferRsrc,
2054 AMDGPUNamedWorkgroupBarrier,
2055 HLSLResource,
2030 Void,2056 Void,
2031 Bool,2057 Bool,
2032 Char_U,2058 Char_U,
src/codegen/llvm.zig+5-1
...@@ -1053,7 +1053,11 @@ pub const Object = struct {...@@ -1053,7 +1053,11 @@ pub const Object = struct {
1053 .is_small = options.is_small,1053 .is_small = options.is_small,
1054 .time_report = options.time_report,1054 .time_report = options.time_report,
1055 .tsan = options.sanitize_thread,1055 .tsan = options.sanitize_thread,
1056 .lto = options.lto != .none,1056 .lto = switch (options.lto) {
1057 .none => .None,
1058 .thin => .ThinPreLink,
1059 .full => .FullPreLink,
1060 },
1057 // https://github.com/ziglang/zig/issues/212151061 // https://github.com/ziglang/zig/issues/21215
1058 .allow_fast_isel = !comp.root_mod.resolved_target.result.cpu.arch.isMIPS(),1062 .allow_fast_isel = !comp.root_mod.resolved_target.result.cpu.arch.isMIPS(),
1059 .asm_filename = null,1063 .asm_filename = null,
src/codegen/llvm/bindings.zig+9-1
...@@ -90,7 +90,7 @@ pub const TargetMachine = opaque {...@@ -90,7 +90,7 @@ pub const TargetMachine = opaque {
90 time_report: bool,90 time_report: bool,
91 tsan: bool,91 tsan: bool,
92 sancov: bool,92 sancov: bool,
93 lto: bool,93 lto: LtoPhase,
94 allow_fast_isel: bool,94 allow_fast_isel: bool,
95 asm_filename: ?[*:0]const u8,95 asm_filename: ?[*:0]const u8,
96 bin_filename: ?[*:0]const u8,96 bin_filename: ?[*:0]const u8,
...@@ -98,6 +98,14 @@ pub const TargetMachine = opaque {...@@ -98,6 +98,14 @@ pub const TargetMachine = opaque {
98 bitcode_filename: ?[*:0]const u8,98 bitcode_filename: ?[*:0]const u8,
99 coverage: Coverage,99 coverage: Coverage,
100100
101 pub const LtoPhase = enum(c_int) {
102 None,
103 ThinPreLink,
104 ThinPostLink,
105 FullPreLink,
106 FullPostLink,
107 };
108
101 pub const Coverage = extern struct {109 pub const Coverage = extern struct {
102 CoverageType: Coverage.Type,110 CoverageType: Coverage.Type,
103 IndirectCalls: bool,111 IndirectCalls: bool,
src/zig_clang.cpp+51-2
...@@ -329,6 +329,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {...@@ -329,6 +329,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
329 case clang::Type::TemplateSpecialization:329 case clang::Type::TemplateSpecialization:
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::InjectedClassName:333 case clang::Type::InjectedClassName:
333 case clang::Type::DependentName:334 case clang::Type::DependentName:
334 case clang::Type::DependentTemplateSpecialization:335 case clang::Type::DependentTemplateSpecialization:
...@@ -371,6 +372,7 @@ static_assert((clang::Type::TypeClass)ZigClangType_DependentVector == clang::Typ...@@ -371,6 +372,7 @@ static_assert((clang::Type::TypeClass)ZigClangType_DependentVector == clang::Typ
371static_assert((clang::Type::TypeClass)ZigClangType_Elaborated == clang::Type::Elaborated, "");372static_assert((clang::Type::TypeClass)ZigClangType_Elaborated == clang::Type::Elaborated, "");
372static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Type::FunctionNoProto, "");373static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Type::FunctionNoProto, "");
373static_assert((clang::Type::TypeClass)ZigClangType_FunctionProto == clang::Type::FunctionProto, "");374static_assert((clang::Type::TypeClass)ZigClangType_FunctionProto == clang::Type::FunctionProto, "");
375static_assert((clang::Type::TypeClass)ZigClangType_HLSLAttributedResource == clang::Type::HLSLAttributedResource, "");
374static_assert((clang::Type::TypeClass)ZigClangType_InjectedClassName == clang::Type::InjectedClassName, "");376static_assert((clang::Type::TypeClass)ZigClangType_InjectedClassName == clang::Type::InjectedClassName, "");
375static_assert((clang::Type::TypeClass)ZigClangType_MacroQualified == clang::Type::MacroQualified, "");377static_assert((clang::Type::TypeClass)ZigClangType_MacroQualified == clang::Type::MacroQualified, "");
376static_assert((clang::Type::TypeClass)ZigClangType_ConstantMatrix == clang::Type::ConstantMatrix, "");378static_assert((clang::Type::TypeClass)ZigClangType_ConstantMatrix == clang::Type::ConstantMatrix, "");
...@@ -431,6 +433,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {...@@ -431,6 +433,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
431 case clang::Stmt::PackExpansionExprClass:433 case clang::Stmt::PackExpansionExprClass:
432 case clang::Stmt::UnresolvedMemberExprClass:434 case clang::Stmt::UnresolvedMemberExprClass:
433 case clang::Stmt::UnresolvedLookupExprClass:435 case clang::Stmt::UnresolvedLookupExprClass:
436 case clang::Stmt::OpenACCAsteriskSizeExprClass:
434 case clang::Stmt::OpaqueValueExprClass:437 case clang::Stmt::OpaqueValueExprClass:
435 case clang::Stmt::OffsetOfExprClass:438 case clang::Stmt::OffsetOfExprClass:
436 case clang::Stmt::ObjCSubscriptRefExprClass:439 case clang::Stmt::ObjCSubscriptRefExprClass:
...@@ -461,6 +464,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {...@@ -461,6 +464,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
461 case clang::Stmt::InitListExprClass:464 case clang::Stmt::InitListExprClass:
462 case clang::Stmt::ImplicitValueInitExprClass:465 case clang::Stmt::ImplicitValueInitExprClass:
463 case clang::Stmt::ImaginaryLiteralClass:466 case clang::Stmt::ImaginaryLiteralClass:
467 case clang::Stmt::HLSLOutArgExprClass:
464 case clang::Stmt::GenericSelectionExprClass:468 case clang::Stmt::GenericSelectionExprClass:
465 case clang::Stmt::GNUNullExprClass:469 case clang::Stmt::GNUNullExprClass:
466 case clang::Stmt::FunctionParmPackExprClass:470 case clang::Stmt::FunctionParmPackExprClass:
...@@ -538,13 +542,24 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {...@@ -538,13 +542,24 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
538 case clang::Stmt::SwitchStmtClass:542 case clang::Stmt::SwitchStmtClass:
539 case clang::Stmt::DefaultStmtClass:543 case clang::Stmt::DefaultStmtClass:
540 case clang::Stmt::CaseStmtClass:544 case clang::Stmt::CaseStmtClass:
545 case clang::Stmt::SYCLKernelCallStmtClass:
541 case clang::Stmt::SEHTryStmtClass:546 case clang::Stmt::SEHTryStmtClass:
542 case clang::Stmt::SEHLeaveStmtClass:547 case clang::Stmt::SEHLeaveStmtClass:
543 case clang::Stmt::SEHFinallyStmtClass:548 case clang::Stmt::SEHFinallyStmtClass:
544 case clang::Stmt::SEHExceptStmtClass:549 case clang::Stmt::SEHExceptStmtClass:
545 case clang::Stmt::ReturnStmtClass:550 case clang::Stmt::ReturnStmtClass:
551 case clang::Stmt::OpenACCWaitConstructClass:
552 case clang::Stmt::OpenACCUpdateConstructClass:
553 case clang::Stmt::OpenACCShutdownConstructClass:
554 case clang::Stmt::OpenACCSetConstructClass:
555 case clang::Stmt::OpenACCInitConstructClass:
556 case clang::Stmt::OpenACCExitDataConstructClass:
557 case clang::Stmt::OpenACCEnterDataConstructClass:
546 case clang::Stmt::OpenACCLoopConstructClass:558 case clang::Stmt::OpenACCLoopConstructClass:
559 case clang::Stmt::OpenACCHostDataConstructClass:
560 case clang::Stmt::OpenACCDataConstructClass:
547 case clang::Stmt::OpenACCComputeConstructClass:561 case clang::Stmt::OpenACCComputeConstructClass:
562 case clang::Stmt::OpenACCCombinedConstructClass:
548 case clang::Stmt::ObjCForCollectionStmtClass:563 case clang::Stmt::ObjCForCollectionStmtClass:
549 case clang::Stmt::ObjCAutoreleasePoolStmtClass:564 case clang::Stmt::ObjCAutoreleasePoolStmtClass:
550 case clang::Stmt::ObjCAtTryStmtClass:565 case clang::Stmt::ObjCAtTryStmtClass:
...@@ -626,6 +641,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {...@@ -626,6 +641,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
626 case clang::Stmt::OMPCancelDirectiveClass:641 case clang::Stmt::OMPCancelDirectiveClass:
627 case clang::Stmt::OMPBarrierDirectiveClass:642 case clang::Stmt::OMPBarrierDirectiveClass:
628 case clang::Stmt::OMPAtomicDirectiveClass:643 case clang::Stmt::OMPAtomicDirectiveClass:
644 case clang::Stmt::OMPAssumeDirectiveClass:
629 case clang::Stmt::OMPCanonicalLoopClass:645 case clang::Stmt::OMPCanonicalLoopClass:
630 case clang::Stmt::NullStmtClass:646 case clang::Stmt::NullStmtClass:
631 case clang::Stmt::MSDependentExistsStmtClass:647 case clang::Stmt::MSDependentExistsStmtClass:
...@@ -676,6 +692,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_PackIndexingExprClass == clan...@@ -676,6 +692,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_PackIndexingExprClass == clan
676static_assert((clang::Stmt::StmtClass)ZigClangStmt_PackExpansionExprClass == clang::Stmt::PackExpansionExprClass, "");692static_assert((clang::Stmt::StmtClass)ZigClangStmt_PackExpansionExprClass == clang::Stmt::PackExpansionExprClass, "");
677static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnresolvedMemberExprClass == clang::Stmt::UnresolvedMemberExprClass, "");693static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnresolvedMemberExprClass == clang::Stmt::UnresolvedMemberExprClass, "");
678static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnresolvedLookupExprClass == clang::Stmt::UnresolvedLookupExprClass, "");694static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnresolvedLookupExprClass == clang::Stmt::UnresolvedLookupExprClass, "");
695static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCAsteriskSizeExprClass == clang::Stmt::OpenACCAsteriskSizeExprClass, "");
679static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpaqueValueExprClass == clang::Stmt::OpaqueValueExprClass, "");696static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpaqueValueExprClass == clang::Stmt::OpaqueValueExprClass, "");
680static_assert((clang::Stmt::StmtClass)ZigClangStmt_OffsetOfExprClass == clang::Stmt::OffsetOfExprClass, "");697static_assert((clang::Stmt::StmtClass)ZigClangStmt_OffsetOfExprClass == clang::Stmt::OffsetOfExprClass, "");
681static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCSubscriptRefExprClass == clang::Stmt::ObjCSubscriptRefExprClass, "");698static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCSubscriptRefExprClass == clang::Stmt::ObjCSubscriptRefExprClass, "");
...@@ -706,6 +723,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_IntegerLiteralClass == clang:...@@ -706,6 +723,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_IntegerLiteralClass == clang:
706static_assert((clang::Stmt::StmtClass)ZigClangStmt_InitListExprClass == clang::Stmt::InitListExprClass, "");723static_assert((clang::Stmt::StmtClass)ZigClangStmt_InitListExprClass == clang::Stmt::InitListExprClass, "");
707static_assert((clang::Stmt::StmtClass)ZigClangStmt_ImplicitValueInitExprClass == clang::Stmt::ImplicitValueInitExprClass, "");724static_assert((clang::Stmt::StmtClass)ZigClangStmt_ImplicitValueInitExprClass == clang::Stmt::ImplicitValueInitExprClass, "");
708static_assert((clang::Stmt::StmtClass)ZigClangStmt_ImaginaryLiteralClass == clang::Stmt::ImaginaryLiteralClass, "");725static_assert((clang::Stmt::StmtClass)ZigClangStmt_ImaginaryLiteralClass == clang::Stmt::ImaginaryLiteralClass, "");
726static_assert((clang::Stmt::StmtClass)ZigClangStmt_HLSLOutArgExprClass == clang::Stmt::HLSLOutArgExprClass, "");
709static_assert((clang::Stmt::StmtClass)ZigClangStmt_GenericSelectionExprClass == clang::Stmt::GenericSelectionExprClass, "");727static_assert((clang::Stmt::StmtClass)ZigClangStmt_GenericSelectionExprClass == clang::Stmt::GenericSelectionExprClass, "");
710static_assert((clang::Stmt::StmtClass)ZigClangStmt_GNUNullExprClass == clang::Stmt::GNUNullExprClass, "");728static_assert((clang::Stmt::StmtClass)ZigClangStmt_GNUNullExprClass == clang::Stmt::GNUNullExprClass, "");
711static_assert((clang::Stmt::StmtClass)ZigClangStmt_FunctionParmPackExprClass == clang::Stmt::FunctionParmPackExprClass, "");729static_assert((clang::Stmt::StmtClass)ZigClangStmt_FunctionParmPackExprClass == clang::Stmt::FunctionParmPackExprClass, "");
...@@ -783,13 +801,24 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_AttributedStmtClass == clang:...@@ -783,13 +801,24 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_AttributedStmtClass == clang:
783static_assert((clang::Stmt::StmtClass)ZigClangStmt_SwitchStmtClass == clang::Stmt::SwitchStmtClass, "");801static_assert((clang::Stmt::StmtClass)ZigClangStmt_SwitchStmtClass == clang::Stmt::SwitchStmtClass, "");
784static_assert((clang::Stmt::StmtClass)ZigClangStmt_DefaultStmtClass == clang::Stmt::DefaultStmtClass, "");802static_assert((clang::Stmt::StmtClass)ZigClangStmt_DefaultStmtClass == clang::Stmt::DefaultStmtClass, "");
785static_assert((clang::Stmt::StmtClass)ZigClangStmt_CaseStmtClass == clang::Stmt::CaseStmtClass, "");803static_assert((clang::Stmt::StmtClass)ZigClangStmt_CaseStmtClass == clang::Stmt::CaseStmtClass, "");
804static_assert((clang::Stmt::StmtClass)ZigClangStmt_SYCLKernelCallStmtClass == clang::Stmt::SYCLKernelCallStmtClass, "");
786static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHTryStmtClass == clang::Stmt::SEHTryStmtClass, "");805static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHTryStmtClass == clang::Stmt::SEHTryStmtClass, "");
787static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHLeaveStmtClass == clang::Stmt::SEHLeaveStmtClass, "");806static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHLeaveStmtClass == clang::Stmt::SEHLeaveStmtClass, "");
788static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHFinallyStmtClass == clang::Stmt::SEHFinallyStmtClass, "");807static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHFinallyStmtClass == clang::Stmt::SEHFinallyStmtClass, "");
789static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHExceptStmtClass == clang::Stmt::SEHExceptStmtClass, "");808static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHExceptStmtClass == clang::Stmt::SEHExceptStmtClass, "");
790static_assert((clang::Stmt::StmtClass)ZigClangStmt_ReturnStmtClass == clang::Stmt::ReturnStmtClass, "");809static_assert((clang::Stmt::StmtClass)ZigClangStmt_ReturnStmtClass == clang::Stmt::ReturnStmtClass, "");
810static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCWaitConstructClass == clang::Stmt::OpenACCWaitConstructClass, "");
811static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCUpdateConstructClass == clang::Stmt::OpenACCUpdateConstructClass, "");
812static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCShutdownConstructClass == clang::Stmt::OpenACCShutdownConstructClass, "");
813static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCSetConstructClass == clang::Stmt::OpenACCSetConstructClass, "");
814static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCInitConstructClass == clang::Stmt::OpenACCInitConstructClass, "");
815static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCExitDataConstructClass == clang::Stmt::OpenACCExitDataConstructClass, "");
816static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCEnterDataConstructClass == clang::Stmt::OpenACCEnterDataConstructClass, "");
791static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCLoopConstructClass == clang::Stmt::OpenACCLoopConstructClass, "");817static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCLoopConstructClass == clang::Stmt::OpenACCLoopConstructClass, "");
818static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCHostDataConstructClass == clang::Stmt::OpenACCHostDataConstructClass, "");
819static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCDataConstructClass == clang::Stmt::OpenACCDataConstructClass, "");
792static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCComputeConstructClass == clang::Stmt::OpenACCComputeConstructClass, "");820static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCComputeConstructClass == clang::Stmt::OpenACCComputeConstructClass, "");
821static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCCombinedConstructClass == clang::Stmt::OpenACCCombinedConstructClass, "");
793static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCForCollectionStmtClass == clang::Stmt::ObjCForCollectionStmtClass, "");822static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCForCollectionStmtClass == clang::Stmt::ObjCForCollectionStmtClass, "");
794static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAutoreleasePoolStmtClass == clang::Stmt::ObjCAutoreleasePoolStmtClass, "");823static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAutoreleasePoolStmtClass == clang::Stmt::ObjCAutoreleasePoolStmtClass, "");
795static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAtTryStmtClass == clang::Stmt::ObjCAtTryStmtClass, "");824static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAtTryStmtClass == clang::Stmt::ObjCAtTryStmtClass, "");
...@@ -871,6 +900,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancellationPointDirective...@@ -871,6 +900,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancellationPointDirective
871static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancelDirectiveClass == clang::Stmt::OMPCancelDirectiveClass, "");900static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancelDirectiveClass == clang::Stmt::OMPCancelDirectiveClass, "");
872static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPBarrierDirectiveClass == clang::Stmt::OMPBarrierDirectiveClass, "");901static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPBarrierDirectiveClass == clang::Stmt::OMPBarrierDirectiveClass, "");
873static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPAtomicDirectiveClass == clang::Stmt::OMPAtomicDirectiveClass, "");902static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPAtomicDirectiveClass == clang::Stmt::OMPAtomicDirectiveClass, "");
903static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPAssumeDirectiveClass == clang::Stmt::OMPAssumeDirectiveClass, "");
874static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCanonicalLoopClass == clang::Stmt::OMPCanonicalLoopClass, "");904static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCanonicalLoopClass == clang::Stmt::OMPCanonicalLoopClass, "");
875static_assert((clang::Stmt::StmtClass)ZigClangStmt_NullStmtClass == clang::Stmt::NullStmtClass, "");905static_assert((clang::Stmt::StmtClass)ZigClangStmt_NullStmtClass == clang::Stmt::NullStmtClass, "");
876static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSDependentExistsStmtClass == clang::Stmt::MSDependentExistsStmtClass, "");906static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSDependentExistsStmtClass == clang::Stmt::MSDependentExistsStmtClass, "");
...@@ -932,6 +962,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {...@@ -932,6 +962,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
932 switch (x) {962 switch (x) {
933 case clang::Decl::TranslationUnit:963 case clang::Decl::TranslationUnit:
934 case clang::Decl::RequiresExprBody:964 case clang::Decl::RequiresExprBody:
965 case clang::Decl::OutlinedFunction:
935 case clang::Decl::LinkageSpec:966 case clang::Decl::LinkageSpec:
936 case clang::Decl::ExternCContext:967 case clang::Decl::ExternCContext:
937 case clang::Decl::Export:968 case clang::Decl::Export:
...@@ -1023,6 +1054,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {...@@ -1023,6 +1054,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
1023static_assert((clang::Decl::Kind)ZigClangDeclTranslationUnit == clang::Decl::TranslationUnit, "");1054static_assert((clang::Decl::Kind)ZigClangDeclTranslationUnit == clang::Decl::TranslationUnit, "");
1024static_assert((clang::Decl::Kind)ZigClangDeclTopLevelStmt == clang::Decl::TopLevelStmt, "");1055static_assert((clang::Decl::Kind)ZigClangDeclTopLevelStmt == clang::Decl::TopLevelStmt, "");
1025static_assert((clang::Decl::Kind)ZigClangDeclRequiresExprBody == clang::Decl::RequiresExprBody, "");1056static_assert((clang::Decl::Kind)ZigClangDeclRequiresExprBody == clang::Decl::RequiresExprBody, "");
1057static_assert((clang::Decl::Kind)ZigClangDeclOutlinedFunction == clang::Decl::OutlinedFunction, "");
1026static_assert((clang::Decl::Kind)ZigClangDeclLinkageSpec == clang::Decl::LinkageSpec, "");1058static_assert((clang::Decl::Kind)ZigClangDeclLinkageSpec == clang::Decl::LinkageSpec, "");
1027static_assert((clang::Decl::Kind)ZigClangDeclExternCContext == clang::Decl::ExternCContext, "");1059static_assert((clang::Decl::Kind)ZigClangDeclExternCContext == clang::Decl::ExternCContext, "");
1028static_assert((clang::Decl::Kind)ZigClangDeclExport == clang::Decl::Export, "");1060static_assert((clang::Decl::Kind)ZigClangDeclExport == clang::Decl::Export, "");
...@@ -1169,6 +1201,7 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {...@@ -1169,6 +1201,7 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
1169 case clang::BuiltinType::SveFloat32:1201 case clang::BuiltinType::SveFloat32:
1170 case clang::BuiltinType::SveFloat64:1202 case clang::BuiltinType::SveFloat64:
1171 case clang::BuiltinType::SveBFloat16:1203 case clang::BuiltinType::SveBFloat16:
1204 case clang::BuiltinType::SveMFloat8:
1172 case clang::BuiltinType::SveInt8x2:1205 case clang::BuiltinType::SveInt8x2:
1173 case clang::BuiltinType::SveInt16x2:1206 case clang::BuiltinType::SveInt16x2:
1174 case clang::BuiltinType::SveInt32x2:1207 case clang::BuiltinType::SveInt32x2:
...@@ -1181,6 +1214,7 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {...@@ -1181,6 +1214,7 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
1181 case clang::BuiltinType::SveFloat32x2:1214 case clang::BuiltinType::SveFloat32x2:
1182 case clang::BuiltinType::SveFloat64x2:1215 case clang::BuiltinType::SveFloat64x2:
1183 case clang::BuiltinType::SveBFloat16x2:1216 case clang::BuiltinType::SveBFloat16x2:
1217 case clang::BuiltinType::SveMFloat8x2:
1184 case clang::BuiltinType::SveInt8x3:1218 case clang::BuiltinType::SveInt8x3:
1185 case clang::BuiltinType::SveInt16x3:1219 case clang::BuiltinType::SveInt16x3:
1186 case clang::BuiltinType::SveInt32x3:1220 case clang::BuiltinType::SveInt32x3:
...@@ -1193,6 +1227,7 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {...@@ -1193,6 +1227,7 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
1193 case clang::BuiltinType::SveFloat32x3:1227 case clang::BuiltinType::SveFloat32x3:
1194 case clang::BuiltinType::SveFloat64x3:1228 case clang::BuiltinType::SveFloat64x3:
1195 case clang::BuiltinType::SveBFloat16x3:1229 case clang::BuiltinType::SveBFloat16x3:
1230 case clang::BuiltinType::SveMFloat8x3:
1196 case clang::BuiltinType::SveInt8x4:1231 case clang::BuiltinType::SveInt8x4:
1197 case clang::BuiltinType::SveInt16x4:1232 case clang::BuiltinType::SveInt16x4:
1198 case clang::BuiltinType::SveInt32x4:1233 case clang::BuiltinType::SveInt32x4:
...@@ -1205,10 +1240,12 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {...@@ -1205,10 +1240,12 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
1205 case clang::BuiltinType::SveFloat32x4:1240 case clang::BuiltinType::SveFloat32x4:
1206 case clang::BuiltinType::SveFloat64x4:1241 case clang::BuiltinType::SveFloat64x4:
1207 case clang::BuiltinType::SveBFloat16x4:1242 case clang::BuiltinType::SveBFloat16x4:
1243 case clang::BuiltinType::SveMFloat8x4:
1208 case clang::BuiltinType::SveBool:1244 case clang::BuiltinType::SveBool:
1209 case clang::BuiltinType::SveBoolx2:1245 case clang::BuiltinType::SveBoolx2:
1210 case clang::BuiltinType::SveBoolx4:1246 case clang::BuiltinType::SveBoolx4:
1211 case clang::BuiltinType::SveCount:1247 case clang::BuiltinType::SveCount:
1248 case clang::BuiltinType::MFloat8:
1212 case clang::BuiltinType::VectorQuad:1249 case clang::BuiltinType::VectorQuad:
1213 case clang::BuiltinType::VectorPair:1250 case clang::BuiltinType::VectorPair:
1214 case clang::BuiltinType::RvvInt8mf8:1251 case clang::BuiltinType::RvvInt8mf8:
...@@ -1536,6 +1573,8 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {...@@ -1536,6 +1573,8 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
1536 case clang::BuiltinType::RvvBFloat16m4x2:1573 case clang::BuiltinType::RvvBFloat16m4x2:
1537 case clang::BuiltinType::WasmExternRef:1574 case clang::BuiltinType::WasmExternRef:
1538 case clang::BuiltinType::AMDGPUBufferRsrc:1575 case clang::BuiltinType::AMDGPUBufferRsrc:
1576 case clang::BuiltinType::AMDGPUNamedWorkgroupBarrier:
1577 case clang::BuiltinType::HLSLResource:
1539 case clang::BuiltinType::Void:1578 case clang::BuiltinType::Void:
1540 case clang::BuiltinType::Bool:1579 case clang::BuiltinType::Bool:
1541 case clang::BuiltinType::Char_U:1580 case clang::BuiltinType::Char_U:
...@@ -1674,6 +1713,7 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16 == clang::...@@ -1674,6 +1713,7 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16 == clang::
1674static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32 == clang::BuiltinType::SveFloat32, "");1713static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32 == clang::BuiltinType::SveFloat32, "");
1675static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64 == clang::BuiltinType::SveFloat64, "");1714static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64 == clang::BuiltinType::SveFloat64, "");
1676static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16 == clang::BuiltinType::SveBFloat16, "");1715static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16 == clang::BuiltinType::SveBFloat16, "");
1716static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveMFloat8 == clang::BuiltinType::SveMFloat8, "");
1677static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8x2 == clang::BuiltinType::SveInt8x2, "");1717static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8x2 == clang::BuiltinType::SveInt8x2, "");
1678static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16x2 == clang::BuiltinType::SveInt16x2, "");1718static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16x2 == clang::BuiltinType::SveInt16x2, "");
1679static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32x2 == clang::BuiltinType::SveInt32x2, "");1719static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32x2 == clang::BuiltinType::SveInt32x2, "");
...@@ -1686,6 +1726,7 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16x2 == clang...@@ -1686,6 +1726,7 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16x2 == clang
1686static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32x2 == clang::BuiltinType::SveFloat32x2, "");1726static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32x2 == clang::BuiltinType::SveFloat32x2, "");
1687static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64x2 == clang::BuiltinType::SveFloat64x2, "");1727static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64x2 == clang::BuiltinType::SveFloat64x2, "");
1688static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x2 == clang::BuiltinType::SveBFloat16x2, "");1728static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x2 == clang::BuiltinType::SveBFloat16x2, "");
1729static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveMFloat8x2 == clang::BuiltinType::SveMFloat8x2, "");
1689static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8x3 == clang::BuiltinType::SveInt8x3, "");1730static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8x3 == clang::BuiltinType::SveInt8x3, "");
1690static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16x3 == clang::BuiltinType::SveInt16x3, "");1731static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16x3 == clang::BuiltinType::SveInt16x3, "");
1691static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32x3 == clang::BuiltinType::SveInt32x3, "");1732static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32x3 == clang::BuiltinType::SveInt32x3, "");
...@@ -1698,6 +1739,7 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16x3 == clang...@@ -1698,6 +1739,7 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16x3 == clang
1698static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32x3 == clang::BuiltinType::SveFloat32x3, "");1739static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32x3 == clang::BuiltinType::SveFloat32x3, "");
1699static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64x3 == clang::BuiltinType::SveFloat64x3, "");1740static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64x3 == clang::BuiltinType::SveFloat64x3, "");
1700static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x3 == clang::BuiltinType::SveBFloat16x3, "");1741static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x3 == clang::BuiltinType::SveBFloat16x3, "");
1742static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveMFloat8x3 == clang::BuiltinType::SveMFloat8x3, "");
1701static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8x4 == clang::BuiltinType::SveInt8x4, "");1743static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8x4 == clang::BuiltinType::SveInt8x4, "");
1702static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16x4 == clang::BuiltinType::SveInt16x4, "");1744static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16x4 == clang::BuiltinType::SveInt16x4, "");
1703static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32x4 == clang::BuiltinType::SveInt32x4, "");1745static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32x4 == clang::BuiltinType::SveInt32x4, "");
...@@ -1710,10 +1752,12 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16x4 == clang...@@ -1710,10 +1752,12 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16x4 == clang
1710static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32x4 == clang::BuiltinType::SveFloat32x4, "");1752static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32x4 == clang::BuiltinType::SveFloat32x4, "");
1711static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64x4 == clang::BuiltinType::SveFloat64x4, "");1753static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64x4 == clang::BuiltinType::SveFloat64x4, "");
1712static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x4 == clang::BuiltinType::SveBFloat16x4, "");1754static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x4 == clang::BuiltinType::SveBFloat16x4, "");
1755static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveMFloat8x4 == clang::BuiltinType::SveMFloat8x4, "");
1713static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBool == clang::BuiltinType::SveBool, "");1756static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBool == clang::BuiltinType::SveBool, "");
1714static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBoolx2 == clang::BuiltinType::SveBoolx2, "");1757static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBoolx2 == clang::BuiltinType::SveBoolx2, "");
1715static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBoolx4 == clang::BuiltinType::SveBoolx4, "");1758static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBoolx4 == clang::BuiltinType::SveBoolx4, "");
1716static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveCount == clang::BuiltinType::SveCount, "");1759static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveCount == clang::BuiltinType::SveCount, "");
1760static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeMFloat8 == clang::BuiltinType::MFloat8, "");
1717static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorQuad == clang::BuiltinType::VectorQuad, "");1761static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorQuad == clang::BuiltinType::VectorQuad, "");
1718static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorPair == clang::BuiltinType::VectorPair, "");1762static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorPair == clang::BuiltinType::VectorPair, "");
1719static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8mf8 == clang::BuiltinType::RvvInt8mf8, "");1763static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8mf8 == clang::BuiltinType::RvvInt8mf8, "");
...@@ -2041,6 +2085,8 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBFloat16m2x4 == cl...@@ -2041,6 +2085,8 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBFloat16m2x4 == cl
2041static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBFloat16m4x2 == clang::BuiltinType::RvvBFloat16m4x2, "");2085static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBFloat16m4x2 == clang::BuiltinType::RvvBFloat16m4x2, "");
2042static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeWasmExternRef == clang::BuiltinType::WasmExternRef, "");2086static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeWasmExternRef == clang::BuiltinType::WasmExternRef, "");
2043static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeAMDGPUBufferRsrc == clang::BuiltinType::AMDGPUBufferRsrc, "");2087static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeAMDGPUBufferRsrc == clang::BuiltinType::AMDGPUBufferRsrc, "");
2088static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeAMDGPUNamedWorkgroupBarrier == clang::BuiltinType::AMDGPUNamedWorkgroupBarrier, "");
2089static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeHLSLResource == clang::BuiltinType::HLSLResource, "");
2044static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, "");2090static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, "");
2045static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, "");2091static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, "");
2046static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_U == clang::BuiltinType::Char_U, "");2092static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_U == clang::BuiltinType::Char_U, "");
...@@ -3074,7 +3120,8 @@ ZigClangAPValueLValueBase ZigClangAPValue_getLValueBase(const ZigClangAPValue *s...@@ -3074,7 +3120,8 @@ ZigClangAPValueLValueBase ZigClangAPValue_getLValueBase(const ZigClangAPValue *s
3074ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char **args_end,3120ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char **args_end,
3075 struct Stage2ErrorMsg **errors_ptr, size_t *errors_len, const char *resources_path)3121 struct Stage2ErrorMsg **errors_ptr, size_t *errors_len, const char *resources_path)
3076{3122{
3077 clang::IntrusiveRefCntPtr<clang::DiagnosticsEngine> diags(clang::CompilerInstance::createDiagnostics(new clang::DiagnosticOptions));3123 llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS = llvm::vfs::getRealFileSystem();
3124 clang::IntrusiveRefCntPtr<clang::DiagnosticsEngine> diags(clang::CompilerInstance::createDiagnostics(*VFS, new clang::DiagnosticOptions));
30783125
3079 std::shared_ptr<clang::PCHContainerOperations> pch_container_ops = std::make_shared<clang::PCHContainerOperations>();3126 std::shared_ptr<clang::PCHContainerOperations> pch_container_ops = std::make_shared<clang::PCHContainerOperations>();
30803127
...@@ -3088,7 +3135,6 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char...@@ -3088,7 +3135,6 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char
3088 llvm::StringRef preamble_storage_path = llvm::StringRef();3135 llvm::StringRef preamble_storage_path = llvm::StringRef();
3089 clang::ArrayRef<clang::ASTUnit::RemappedFile> remapped_files = std::nullopt;3136 clang::ArrayRef<clang::ASTUnit::RemappedFile> remapped_files = std::nullopt;
3090 std::unique_ptr<clang::ASTUnit> err_unit;3137 std::unique_ptr<clang::ASTUnit> err_unit;
3091 llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS = nullptr;
3092 std::optional<llvm::StringRef> ModuleFormat = std::nullopt;3138 std::optional<llvm::StringRef> ModuleFormat = std::nullopt;
3093 std::unique_ptr<clang::ASTUnit> ast_unit_unique_ptr = clang::ASTUnit::LoadFromCommandLine(3139 std::unique_ptr<clang::ASTUnit> ast_unit_unique_ptr = clang::ASTUnit::LoadFromCommandLine(
3094 args_begin, args_end,3140 args_begin, args_end,
...@@ -4112,13 +4158,16 @@ static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_IEEEsi...@@ -4112,13 +4158,16 @@ static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_IEEEsi
4112static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_IEEEdouble == llvm::APFloatBase::S_IEEEdouble);4158static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_IEEEdouble == llvm::APFloatBase::S_IEEEdouble);
4113static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_IEEEquad == llvm::APFloatBase::S_IEEEquad);4159static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_IEEEquad == llvm::APFloatBase::S_IEEEquad);
4114static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_PPCDoubleDouble == llvm::APFloatBase::S_PPCDoubleDouble);4160static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_PPCDoubleDouble == llvm::APFloatBase::S_PPCDoubleDouble);
4161static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_PPCDoubleDoubleLegacy == llvm::APFloatBase::S_PPCDoubleDoubleLegacy);
4115static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E5M2 == llvm::APFloatBase::S_Float8E5M2);4162static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E5M2 == llvm::APFloatBase::S_Float8E5M2);
4116static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E5M2FNUZ == llvm::APFloatBase::S_Float8E5M2FNUZ);4163static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E5M2FNUZ == llvm::APFloatBase::S_Float8E5M2FNUZ);
4117static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3 == llvm::APFloatBase::S_Float8E4M3);4164static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3 == llvm::APFloatBase::S_Float8E4M3);
4118static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3FN == llvm::APFloatBase::S_Float8E4M3FN);4165static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3FN == llvm::APFloatBase::S_Float8E4M3FN);
4119static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3FNUZ == llvm::APFloatBase::S_Float8E4M3FNUZ);4166static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3FNUZ == llvm::APFloatBase::S_Float8E4M3FNUZ);
4120static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3B11FNUZ == llvm::APFloatBase::S_Float8E4M3B11FNUZ);4167static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3B11FNUZ == llvm::APFloatBase::S_Float8E4M3B11FNUZ);
4168static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E3M4 == llvm::APFloatBase::S_Float8E3M4);
4121static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_FloatTF32 == llvm::APFloatBase::S_FloatTF32);4169static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_FloatTF32 == llvm::APFloatBase::S_FloatTF32);
4170static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E8M0FNU == llvm::APFloatBase::S_Float8E8M0FNU);
4122static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float6E3M2FN == llvm::APFloatBase::S_Float6E3M2FN);4171static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float6E3M2FN == llvm::APFloatBase::S_Float6E3M2FN);
4123static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float6E2M3FN == llvm::APFloatBase::S_Float6E2M3FN);4172static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float6E2M3FN == llvm::APFloatBase::S_Float6E2M3FN);
4124static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float4E2M1FN == llvm::APFloatBase::S_Float4E2M1FN);4173static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float4E2M1FN == llvm::APFloatBase::S_Float4E2M1FN);
src/zig_clang.h+27-1
...@@ -75,7 +75,7 @@ struct ZigClangAPValue {...@@ -75,7 +75,7 @@ struct ZigClangAPValue {
75#elif defined(__i386__)75#elif defined(__i386__)
76 char Data[48];76 char Data[48];
77#else77#else
78 char Data[68];78 char Data[52];
79#endif79#endif
80};80};
8181
...@@ -271,6 +271,7 @@ enum ZigClangTypeClass {...@@ -271,6 +271,7 @@ enum ZigClangTypeClass {
271 ZigClangType_Elaborated,271 ZigClangType_Elaborated,
272 ZigClangType_FunctionNoProto,272 ZigClangType_FunctionNoProto,
273 ZigClangType_FunctionProto,273 ZigClangType_FunctionProto,
274 ZigClangType_HLSLAttributedResource,
274 ZigClangType_InjectedClassName,275 ZigClangType_InjectedClassName,
275 ZigClangType_MacroQualified,276 ZigClangType_MacroQualified,
276 ZigClangType_ConstantMatrix,277 ZigClangType_ConstantMatrix,
...@@ -330,6 +331,7 @@ enum ZigClangStmtClass {...@@ -330,6 +331,7 @@ enum ZigClangStmtClass {
330 ZigClangStmt_PackExpansionExprClass,331 ZigClangStmt_PackExpansionExprClass,
331 ZigClangStmt_UnresolvedMemberExprClass,332 ZigClangStmt_UnresolvedMemberExprClass,
332 ZigClangStmt_UnresolvedLookupExprClass,333 ZigClangStmt_UnresolvedLookupExprClass,
334 ZigClangStmt_OpenACCAsteriskSizeExprClass,
333 ZigClangStmt_OpaqueValueExprClass,335 ZigClangStmt_OpaqueValueExprClass,
334 ZigClangStmt_OffsetOfExprClass,336 ZigClangStmt_OffsetOfExprClass,
335 ZigClangStmt_ObjCSubscriptRefExprClass,337 ZigClangStmt_ObjCSubscriptRefExprClass,
...@@ -360,6 +362,7 @@ enum ZigClangStmtClass {...@@ -360,6 +362,7 @@ enum ZigClangStmtClass {
360 ZigClangStmt_InitListExprClass,362 ZigClangStmt_InitListExprClass,
361 ZigClangStmt_ImplicitValueInitExprClass,363 ZigClangStmt_ImplicitValueInitExprClass,
362 ZigClangStmt_ImaginaryLiteralClass,364 ZigClangStmt_ImaginaryLiteralClass,
365 ZigClangStmt_HLSLOutArgExprClass,
363 ZigClangStmt_GenericSelectionExprClass,366 ZigClangStmt_GenericSelectionExprClass,
364 ZigClangStmt_GNUNullExprClass,367 ZigClangStmt_GNUNullExprClass,
365 ZigClangStmt_FunctionParmPackExprClass,368 ZigClangStmt_FunctionParmPackExprClass,
...@@ -437,13 +440,24 @@ enum ZigClangStmtClass {...@@ -437,13 +440,24 @@ enum ZigClangStmtClass {
437 ZigClangStmt_SwitchStmtClass,440 ZigClangStmt_SwitchStmtClass,
438 ZigClangStmt_DefaultStmtClass,441 ZigClangStmt_DefaultStmtClass,
439 ZigClangStmt_CaseStmtClass,442 ZigClangStmt_CaseStmtClass,
443 ZigClangStmt_SYCLKernelCallStmtClass,
440 ZigClangStmt_SEHTryStmtClass,444 ZigClangStmt_SEHTryStmtClass,
441 ZigClangStmt_SEHLeaveStmtClass,445 ZigClangStmt_SEHLeaveStmtClass,
442 ZigClangStmt_SEHFinallyStmtClass,446 ZigClangStmt_SEHFinallyStmtClass,
443 ZigClangStmt_SEHExceptStmtClass,447 ZigClangStmt_SEHExceptStmtClass,
444 ZigClangStmt_ReturnStmtClass,448 ZigClangStmt_ReturnStmtClass,
449 ZigClangStmt_OpenACCWaitConstructClass,
450 ZigClangStmt_OpenACCUpdateConstructClass,
451 ZigClangStmt_OpenACCShutdownConstructClass,
452 ZigClangStmt_OpenACCSetConstructClass,
453 ZigClangStmt_OpenACCInitConstructClass,
454 ZigClangStmt_OpenACCExitDataConstructClass,
455 ZigClangStmt_OpenACCEnterDataConstructClass,
445 ZigClangStmt_OpenACCLoopConstructClass,456 ZigClangStmt_OpenACCLoopConstructClass,
457 ZigClangStmt_OpenACCHostDataConstructClass,
458 ZigClangStmt_OpenACCDataConstructClass,
446 ZigClangStmt_OpenACCComputeConstructClass,459 ZigClangStmt_OpenACCComputeConstructClass,
460 ZigClangStmt_OpenACCCombinedConstructClass,
447 ZigClangStmt_ObjCForCollectionStmtClass,461 ZigClangStmt_ObjCForCollectionStmtClass,
448 ZigClangStmt_ObjCAutoreleasePoolStmtClass,462 ZigClangStmt_ObjCAutoreleasePoolStmtClass,
449 ZigClangStmt_ObjCAtTryStmtClass,463 ZigClangStmt_ObjCAtTryStmtClass,
...@@ -525,6 +539,7 @@ enum ZigClangStmtClass {...@@ -525,6 +539,7 @@ enum ZigClangStmtClass {
525 ZigClangStmt_OMPCancelDirectiveClass,539 ZigClangStmt_OMPCancelDirectiveClass,
526 ZigClangStmt_OMPBarrierDirectiveClass,540 ZigClangStmt_OMPBarrierDirectiveClass,
527 ZigClangStmt_OMPAtomicDirectiveClass,541 ZigClangStmt_OMPAtomicDirectiveClass,
542 ZigClangStmt_OMPAssumeDirectiveClass,
528 ZigClangStmt_OMPCanonicalLoopClass,543 ZigClangStmt_OMPCanonicalLoopClass,
529 ZigClangStmt_NullStmtClass,544 ZigClangStmt_NullStmtClass,
530 ZigClangStmt_MSDependentExistsStmtClass,545 ZigClangStmt_MSDependentExistsStmtClass,
...@@ -619,6 +634,7 @@ enum ZigClangDeclKind {...@@ -619,6 +634,7 @@ enum ZigClangDeclKind {
619 ZigClangDeclTranslationUnit,634 ZigClangDeclTranslationUnit,
620 ZigClangDeclTopLevelStmt,635 ZigClangDeclTopLevelStmt,
621 ZigClangDeclRequiresExprBody,636 ZigClangDeclRequiresExprBody,
637 ZigClangDeclOutlinedFunction,
622 ZigClangDeclLinkageSpec,638 ZigClangDeclLinkageSpec,
623 ZigClangDeclExternCContext,639 ZigClangDeclExternCContext,
624 ZigClangDeclExport,640 ZigClangDeclExport,
...@@ -765,6 +781,7 @@ enum ZigClangBuiltinTypeKind {...@@ -765,6 +781,7 @@ enum ZigClangBuiltinTypeKind {
765 ZigClangBuiltinTypeSveFloat32,781 ZigClangBuiltinTypeSveFloat32,
766 ZigClangBuiltinTypeSveFloat64,782 ZigClangBuiltinTypeSveFloat64,
767 ZigClangBuiltinTypeSveBFloat16,783 ZigClangBuiltinTypeSveBFloat16,
784 ZigClangBuiltinTypeSveMFloat8,
768 ZigClangBuiltinTypeSveInt8x2,785 ZigClangBuiltinTypeSveInt8x2,
769 ZigClangBuiltinTypeSveInt16x2,786 ZigClangBuiltinTypeSveInt16x2,
770 ZigClangBuiltinTypeSveInt32x2,787 ZigClangBuiltinTypeSveInt32x2,
...@@ -777,6 +794,7 @@ enum ZigClangBuiltinTypeKind {...@@ -777,6 +794,7 @@ enum ZigClangBuiltinTypeKind {
777 ZigClangBuiltinTypeSveFloat32x2,794 ZigClangBuiltinTypeSveFloat32x2,
778 ZigClangBuiltinTypeSveFloat64x2,795 ZigClangBuiltinTypeSveFloat64x2,
779 ZigClangBuiltinTypeSveBFloat16x2,796 ZigClangBuiltinTypeSveBFloat16x2,
797 ZigClangBuiltinTypeSveMFloat8x2,
780 ZigClangBuiltinTypeSveInt8x3,798 ZigClangBuiltinTypeSveInt8x3,
781 ZigClangBuiltinTypeSveInt16x3,799 ZigClangBuiltinTypeSveInt16x3,
782 ZigClangBuiltinTypeSveInt32x3,800 ZigClangBuiltinTypeSveInt32x3,
...@@ -789,6 +807,7 @@ enum ZigClangBuiltinTypeKind {...@@ -789,6 +807,7 @@ enum ZigClangBuiltinTypeKind {
789 ZigClangBuiltinTypeSveFloat32x3,807 ZigClangBuiltinTypeSveFloat32x3,
790 ZigClangBuiltinTypeSveFloat64x3,808 ZigClangBuiltinTypeSveFloat64x3,
791 ZigClangBuiltinTypeSveBFloat16x3,809 ZigClangBuiltinTypeSveBFloat16x3,
810 ZigClangBuiltinTypeSveMFloat8x3,
792 ZigClangBuiltinTypeSveInt8x4,811 ZigClangBuiltinTypeSveInt8x4,
793 ZigClangBuiltinTypeSveInt16x4,812 ZigClangBuiltinTypeSveInt16x4,
794 ZigClangBuiltinTypeSveInt32x4,813 ZigClangBuiltinTypeSveInt32x4,
...@@ -801,10 +820,12 @@ enum ZigClangBuiltinTypeKind {...@@ -801,10 +820,12 @@ enum ZigClangBuiltinTypeKind {
801 ZigClangBuiltinTypeSveFloat32x4,820 ZigClangBuiltinTypeSveFloat32x4,
802 ZigClangBuiltinTypeSveFloat64x4,821 ZigClangBuiltinTypeSveFloat64x4,
803 ZigClangBuiltinTypeSveBFloat16x4,822 ZigClangBuiltinTypeSveBFloat16x4,
823 ZigClangBuiltinTypeSveMFloat8x4,
804 ZigClangBuiltinTypeSveBool,824 ZigClangBuiltinTypeSveBool,
805 ZigClangBuiltinTypeSveBoolx2,825 ZigClangBuiltinTypeSveBoolx2,
806 ZigClangBuiltinTypeSveBoolx4,826 ZigClangBuiltinTypeSveBoolx4,
807 ZigClangBuiltinTypeSveCount,827 ZigClangBuiltinTypeSveCount,
828 ZigClangBuiltinTypeMFloat8,
808 ZigClangBuiltinTypeVectorQuad,829 ZigClangBuiltinTypeVectorQuad,
809 ZigClangBuiltinTypeVectorPair,830 ZigClangBuiltinTypeVectorPair,
810 ZigClangBuiltinTypeRvvInt8mf8,831 ZigClangBuiltinTypeRvvInt8mf8,
...@@ -1132,6 +1153,8 @@ enum ZigClangBuiltinTypeKind {...@@ -1132,6 +1153,8 @@ enum ZigClangBuiltinTypeKind {
1132 ZigClangBuiltinTypeRvvBFloat16m4x2,1153 ZigClangBuiltinTypeRvvBFloat16m4x2,
1133 ZigClangBuiltinTypeWasmExternRef,1154 ZigClangBuiltinTypeWasmExternRef,
1134 ZigClangBuiltinTypeAMDGPUBufferRsrc,1155 ZigClangBuiltinTypeAMDGPUBufferRsrc,
1156 ZigClangBuiltinTypeAMDGPUNamedWorkgroupBarrier,
1157 ZigClangBuiltinTypeHLSLResource,
1135 ZigClangBuiltinTypeVoid,1158 ZigClangBuiltinTypeVoid,
1136 ZigClangBuiltinTypeBool,1159 ZigClangBuiltinTypeBool,
1137 ZigClangBuiltinTypeChar_U,1160 ZigClangBuiltinTypeChar_U,
...@@ -1266,13 +1289,16 @@ enum ZigClangAPFloatBase_Semantics {...@@ -1266,13 +1289,16 @@ enum ZigClangAPFloatBase_Semantics {
1266 ZigClangAPFloatBase_Semantics_IEEEdouble,1289 ZigClangAPFloatBase_Semantics_IEEEdouble,
1267 ZigClangAPFloatBase_Semantics_IEEEquad,1290 ZigClangAPFloatBase_Semantics_IEEEquad,
1268 ZigClangAPFloatBase_Semantics_PPCDoubleDouble,1291 ZigClangAPFloatBase_Semantics_PPCDoubleDouble,
1292 ZigClangAPFloatBase_Semantics_PPCDoubleDoubleLegacy,
1269 ZigClangAPFloatBase_Semantics_Float8E5M2,1293 ZigClangAPFloatBase_Semantics_Float8E5M2,
1270 ZigClangAPFloatBase_Semantics_Float8E5M2FNUZ,1294 ZigClangAPFloatBase_Semantics_Float8E5M2FNUZ,
1271 ZigClangAPFloatBase_Semantics_Float8E4M3,1295 ZigClangAPFloatBase_Semantics_Float8E4M3,
1272 ZigClangAPFloatBase_Semantics_Float8E4M3FN,1296 ZigClangAPFloatBase_Semantics_Float8E4M3FN,
1273 ZigClangAPFloatBase_Semantics_Float8E4M3FNUZ,1297 ZigClangAPFloatBase_Semantics_Float8E4M3FNUZ,
1274 ZigClangAPFloatBase_Semantics_Float8E4M3B11FNUZ,1298 ZigClangAPFloatBase_Semantics_Float8E4M3B11FNUZ,
1299 ZigClangAPFloatBase_Semantics_Float8E3M4,
1275 ZigClangAPFloatBase_Semantics_FloatTF32,1300 ZigClangAPFloatBase_Semantics_FloatTF32,
1301 ZigClangAPFloatBase_Semantics_Float8E8M0FNU,
1276 ZigClangAPFloatBase_Semantics_Float6E3M2FN,1302 ZigClangAPFloatBase_Semantics_Float6E3M2FN,
1277 ZigClangAPFloatBase_Semantics_Float6E2M3FN,1303 ZigClangAPFloatBase_Semantics_Float6E2M3FN,
1278 ZigClangAPFloatBase_Semantics_Float4E2M1FN,1304 ZigClangAPFloatBase_Semantics_Float4E2M1FN,
src/zig_llvm.cpp+4-4
...@@ -300,7 +300,7 @@ ZIG_EXTERN_C bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machi...@@ -300,7 +300,7 @@ ZIG_EXTERN_C bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machi
300 pass_builder.registerLoopAnalyses(loop_am);300 pass_builder.registerLoopAnalyses(loop_am);
301 pass_builder.crossRegisterProxies(loop_am, function_am, cgscc_am, module_am);301 pass_builder.crossRegisterProxies(loop_am, function_am, cgscc_am, module_am);
302302
303 pass_builder.registerPipelineStartEPCallback([&](ModulePassManager &module_pm, OptimizationLevel OL) {303 pass_builder.registerPipelineStartEPCallback([&](ModulePassManager &module_pm, OptimizationLevel level) {
304 // Verify the input304 // Verify the input
305 if (assertions_on) {305 if (assertions_on) {
306 module_pm.addPass(VerifierPass());306 module_pm.addPass(VerifierPass());
...@@ -313,7 +313,7 @@ ZIG_EXTERN_C bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machi...@@ -313,7 +313,7 @@ ZIG_EXTERN_C bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machi
313313
314 const bool early_san = options->is_debug;314 const bool early_san = options->is_debug;
315315
316 pass_builder.registerOptimizerEarlyEPCallback([&](ModulePassManager &module_pm, OptimizationLevel OL) {316 pass_builder.registerOptimizerEarlyEPCallback([&](ModulePassManager &module_pm, OptimizationLevel level, ThinOrFullLTOPhase lto_phase) {
317 if (early_san) {317 if (early_san) {
318 // Code coverage instrumentation.318 // Code coverage instrumentation.
319 if (options->sancov) {319 if (options->sancov) {
...@@ -328,7 +328,7 @@ ZIG_EXTERN_C bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machi...@@ -328,7 +328,7 @@ ZIG_EXTERN_C bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machi
328 }328 }
329 });329 });
330330
331 pass_builder.registerOptimizerLastEPCallback([&](ModulePassManager &module_pm, OptimizationLevel level) {331 pass_builder.registerOptimizerLastEPCallback([&](ModulePassManager &module_pm, OptimizationLevel level, ThinOrFullLTOPhase lto_phase) {
332 if (!early_san) {332 if (!early_san) {
333 // Code coverage instrumentation.333 // Code coverage instrumentation.
334 if (options->sancov) {334 if (options->sancov) {
...@@ -360,7 +360,7 @@ ZIG_EXTERN_C bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machi...@@ -360,7 +360,7 @@ ZIG_EXTERN_C bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machi
360360
361 // Initialize the PassManager361 // Initialize the PassManager
362 if (opt_level == OptimizationLevel::O0) {362 if (opt_level == OptimizationLevel::O0) {
363 module_pm = pass_builder.buildO0DefaultPipeline(opt_level, options->lto);363 module_pm = pass_builder.buildO0DefaultPipeline(opt_level, static_cast<ThinOrFullLTOPhase>(options->lto));
364 } else if (options->lto) {364 } else if (options->lto) {
365 module_pm = pass_builder.buildLTOPreLinkDefaultPipeline(opt_level);365 module_pm = pass_builder.buildLTOPreLinkDefaultPipeline(opt_level);
366 } else {366 } else {
src/zig_llvm.h+11-1
...@@ -53,13 +53,23 @@ struct ZigLLVMCoverageOptions {...@@ -53,13 +53,23 @@ struct ZigLLVMCoverageOptions {
53 bool CollectControlFlow;53 bool CollectControlFlow;
54};54};
5555
56// synchronize with llvm/include/Pass.h::ThinOrFullLTOPhase
57// synchronize with codegen/llvm/bindings.zig::EmitOptions::LtoPhase
58enum ZigLLVMThinOrFullLTOPhase {
59 ZigLLVMThinOrFullLTOPhase_None,
60 ZigLLVMThinOrFullLTOPhase_ThinPreLink,
61 ZigLLVMThinOrFullLTOPhase_ThinkPostLink,
62 ZigLLVMThinOrFullLTOPhase_FullPreLink,
63 ZigLLVMThinOrFullLTOPhase_FullPostLink,
64};
65
56struct ZigLLVMEmitOptions {66struct ZigLLVMEmitOptions {
57 bool is_debug;67 bool is_debug;
58 bool is_small;68 bool is_small;
59 bool time_report;69 bool time_report;
60 bool tsan;70 bool tsan;
61 bool sancov;71 bool sancov;
62 bool lto;72 ZigLLVMThinOrFullLTOPhase lto;
63 bool allow_fast_isel;73 bool allow_fast_isel;
64 const char *asm_filename;74 const char *asm_filename;
65 const char *bin_filename;75 const char *bin_filename;
test/translate_c.zig+18-18
...@@ -1061,28 +1061,28 @@ pub fn addCases(cases: *tests.TranslateCContext) void {...@@ -1061,28 +1061,28 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
1061 \\ VAL23 = 0xFFFFFFFFFFFFFFFF,1061 \\ VAL23 = 0xFFFFFFFFFFFFFFFF,
1062 \\};1062 \\};
1063 , &[_][]const u8{1063 , &[_][]const u8{
1064 \\pub const VAL01: c_int = 0;1064 \\pub const VAL01: c_longlong = 0;
1065 \\pub const VAL02: c_int = 1;1065 \\pub const VAL02: c_longlong = 1;
1066 \\pub const VAL03: c_int = 2;1066 \\pub const VAL03: c_longlong = 2;
1067 \\pub const VAL04: c_int = 3;1067 \\pub const VAL04: c_longlong = 3;
1068 \\pub const VAL05: c_int = -1;1068 \\pub const VAL05: c_longlong = -1;
1069 \\pub const VAL06: c_int = -2;1069 \\pub const VAL06: c_longlong = -2;
1070 \\pub const VAL07: c_int = -3;1070 \\pub const VAL07: c_longlong = -3;
1071 \\pub const VAL08: c_int = -4;1071 \\pub const VAL08: c_longlong = -4;
1072 \\pub const VAL09: c_int = -3;1072 \\pub const VAL09: c_longlong = -3;
1073 \\pub const VAL10: c_int = -1000012000;1073 \\pub const VAL10: c_longlong = -1000012000;
1074 \\pub const VAL11: c_int = -1000161000;1074 \\pub const VAL11: c_longlong = -1000161000;
1075 \\pub const VAL12: c_int = -1000174001;1075 \\pub const VAL12: c_longlong = -1000174001;
1076 \\pub const VAL13: c_int = -3;1076 \\pub const VAL13: c_longlong = -3;
1077 \\pub const VAL14: c_int = -1000012000;1077 \\pub const VAL14: c_longlong = -1000012000;
1078 \\pub const VAL15: c_int = -1000161000;1078 \\pub const VAL15: c_longlong = -1000161000;
1079 \\pub const VAL16: c_int = -3;1079 \\pub const VAL16: c_longlong = -3;
1080 \\pub const VAL17: c_int = 1000011998;1080 \\pub const VAL17: c_longlong = 1000011998;
1081 \\pub const VAL18: c_longlong = 1152921504606846976;1081 \\pub const VAL18: c_longlong = 1152921504606846976;
1082 \\pub const VAL19: c_longlong = 3458764513820540927;1082 \\pub const VAL19: c_longlong = 3458764513820540927;
1083 \\pub const VAL20: c_longlong = 6917529027641081854;1083 \\pub const VAL20: c_longlong = 6917529027641081854;
1084 \\pub const VAL21: c_longlong = 6917529027641081853;1084 \\pub const VAL21: c_longlong = 6917529027641081853;
1085 \\pub const VAL22: c_int = 0;1085 \\pub const VAL22: c_longlong = 0;
1086 \\pub const VAL23: c_longlong = -1;1086 \\pub const VAL23: c_longlong = -1;
1087 \\pub const enum_EnumWithInits = c_longlong;1087 \\pub const enum_EnumWithInits = c_longlong;
1088 });1088 });