authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-08-23 04:32:32+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-09-19 18:20:20-07:00
log41e5acd89d17b9b032377ba1d5f4d65d965e4d2a
treeb11a529c3f7de2ab4c873de50ef9a639c6406885
parent973ebeb610277334b014a040ccb0b951cdc38f1a

zig_clang: Update to Clang 19.

Co-authored-by: David Rubin <daviru007@icloud.com>

4 files changed, 100 insertions(+), 17 deletions(-)

src/clang.zig+24-3
......@@ -114,14 +114,21 @@ pub const APFloatBaseSemantics = enum(c_int) {
114114 PPCDoubleDouble,
115115 Float8E5M2,
116116 Float8E5M2FNUZ,
117 Float8E4M3,
117118 Float8E4M3FN,
118119 Float8E4M3FNUZ,
119120 Float8E4M3B11FNUZ,
120121 FloatTF32,
122 Float6E3M2FN,
123 Float6E2M3FN,
124 Float4E2M1FN,
121125 x87DoubleExtended,
122126};
123127
124128pub const APInt = opaque {
129 pub const free = ZigClangAPInt_free;
130 extern fn ZigClangAPInt_free(*const APInt) void;
131
125132 pub fn getLimitedValue(self: *const APInt, comptime T: type) T {
126133 return @as(T, @truncate(ZigClangAPInt_getLimitedValue(self, std.math.maxInt(T))));
127134 }
......@@ -337,7 +344,7 @@ pub const ConstantArrayType = opaque {
337344 extern fn ZigClangConstantArrayType_getElementType(*const ConstantArrayType) QualType;
338345
339346 pub const getSize = ZigClangConstantArrayType_getSize;
340 extern fn ZigClangConstantArrayType_getSize(*const ConstantArrayType) *const APInt;
347 extern fn ZigClangConstantArrayType_getSize(*const ConstantArrayType, **const APInt) void;
341348};
342349
343350pub const ConstantExpr = opaque {};
......@@ -1135,6 +1142,7 @@ pub const TypeClass = enum(c_int) {
11351142 Adjusted,
11361143 Decayed,
11371144 ConstantArray,
1145 ArrayParameter,
11381146 DependentSizedArray,
11391147 IncompleteArray,
11401148 VariableArray,
......@@ -1143,6 +1151,7 @@ pub const TypeClass = enum(c_int) {
11431151 BTFTagAttributed,
11441152 BitInt,
11451153 BlockPointer,
1154 CountAttributed,
11461155 Builtin,
11471156 Complex,
11481157 Decltype,
......@@ -1167,6 +1176,7 @@ pub const TypeClass = enum(c_int) {
11671176 ObjCInterface,
11681177 ObjCTypeParam,
11691178 PackExpansion,
1179 PackIndexing,
11701180 Paren,
11711181 Pipe,
11721182 Pointer,
......@@ -1211,6 +1221,7 @@ const StmtClass = enum(c_int) {
12111221 PredefinedExprClass,
12121222 ParenListExprClass,
12131223 ParenExprClass,
1224 PackIndexingExprClass,
12141225 PackExpansionExprClass,
12151226 UnresolvedMemberExprClass,
12161227 UnresolvedLookupExprClass,
......@@ -1233,7 +1244,6 @@ const StmtClass = enum(c_int) {
12331244 ObjCArrayLiteralClass,
12341245 OMPIteratorExprClass,
12351246 OMPArrayShapingExprClass,
1236 OMPArraySectionExprClass,
12371247 NoInitExprClass,
12381248 MemberExprClass,
12391249 MatrixSubscriptExprClass,
......@@ -1254,6 +1264,7 @@ const StmtClass = enum(c_int) {
12541264 FixedPointLiteralClass,
12551265 ExtVectorElementExprClass,
12561266 ExpressionTraitExprClass,
1267 EmbedExprClass,
12571268 DesignatedInitUpdateExprClass,
12581269 DesignatedInitExprClass,
12591270 DependentScopeDeclRefExprClass,
......@@ -1311,6 +1322,7 @@ const StmtClass = enum(c_int) {
13111322 AsTypeExprClass,
13121323 ArrayTypeTraitExprClass,
13131324 ArraySubscriptExprClass,
1325 ArraySectionExprClass,
13141326 ArrayInitLoopExprClass,
13151327 ArrayInitIndexExprClass,
13161328 AddrLabelExprClass,
......@@ -1325,6 +1337,8 @@ const StmtClass = enum(c_int) {
13251337 SEHFinallyStmtClass,
13261338 SEHExceptStmtClass,
13271339 ReturnStmtClass,
1340 OpenACCLoopConstructClass,
1341 OpenACCComputeConstructClass,
13281342 ObjCForCollectionStmtClass,
13291343 ObjCAutoreleasePoolStmtClass,
13301344 ObjCAtTryStmtClass,
......@@ -1360,6 +1374,8 @@ const StmtClass = enum(c_int) {
13601374 OMPMaskedDirectiveClass,
13611375 OMPUnrollDirectiveClass,
13621376 OMPTileDirectiveClass,
1377 OMPReverseDirectiveClass,
1378 OMPInterchangeDirectiveClass,
13631379 OMPTeamsGenericLoopDirectiveClass,
13641380 OMPTeamsDistributeSimdDirectiveClass,
13651381 OMPTeamsDistributeParallelForSimdDirectiveClass,
......@@ -1496,13 +1512,13 @@ pub const CK = enum(c_int) {
14961512
14971513pub const DeclKind = enum(c_int) {
14981514 TranslationUnit,
1515 TopLevelStmt,
14991516 RequiresExprBody,
15001517 LinkageSpec,
15011518 ExternCContext,
15021519 Export,
15031520 Captured,
15041521 Block,
1505 TopLevelStmt,
15061522 StaticAssert,
15071523 PragmaDetectMismatch,
15081524 PragmaComment,
......@@ -2010,6 +2026,7 @@ pub const BuiltinTypeKind = enum(c_int) {
20102026 RvvBFloat16m2x4,
20112027 RvvBFloat16m4x2,
20122028 WasmExternRef,
2029 AMDGPUBufferRsrc,
20132030 Void,
20142031 Bool,
20152032 Char_U,
......@@ -2075,6 +2092,7 @@ pub const BuiltinTypeKind = enum(c_int) {
20752092 Dependent,
20762093 Overload,
20772094 BoundMember,
2095 UnresolvedTemplate,
20782096 PseudoObject,
20792097 UnknownAny,
20802098 BuiltinFn,
......@@ -2108,6 +2126,8 @@ pub const CallingConv = enum(c_int) {
21082126 AArch64SVEPCS,
21092127 AMDGPUKernelCall,
21102128 M68kRTD,
2129 PreserveNone,
2130 RISCVVectorCall,
21112131};
21122132
21132133pub const StorageClass = enum(c_int) {
......@@ -2172,6 +2192,7 @@ pub const UnaryExprOrTypeTrait_Kind = enum(c_int) {
21722192 DataSizeOf,
21732193 AlignOf,
21742194 PreferredAlignOf,
2195 PtrAuthTypeDiscriminator,
21752196 VecStep,
21762197 OpenMPRequiredSimdAlign,
21772198};
src/translate_c.zig+7-2
......@@ -2644,7 +2644,9 @@ fn transInitListExprArray(
26442644 const init_count = expr.getNumInits();
26452645 assert(@as(*const clang.Type, @ptrCast(arr_type)).isConstantArrayType());
26462646 const const_arr_ty = @as(*const clang.ConstantArrayType, @ptrCast(arr_type));
2647 const size_ap_int = const_arr_ty.getSize();
2647 var size_ap_int: *const clang.APInt = undefined;
2648 const_arr_ty.getSize(&size_ap_int);
2649 defer size_ap_int.free();
26482650 const all_count = size_ap_int.getLimitedValue(usize);
26492651 const leftover_count = all_count - init_count;
26502652
......@@ -3665,6 +3667,7 @@ fn transUnaryExprOrTypeTraitExpr(
36653667 .AlignOf => try Tag.alignof.create(c.arena, type_node),
36663668 .DataSizeOf,
36673669 .PreferredAlignOf,
3670 .PtrAuthTypeDiscriminator,
36683671 .VecStep,
36693672 .OpenMPRequiredSimdAlign,
36703673 => return fail(
......@@ -4793,7 +4796,9 @@ fn transType(c: *Context, scope: *Scope, ty: *const clang.Type, source_loc: clan
47934796 .ConstantArray => {
47944797 const const_arr_ty = @as(*const clang.ConstantArrayType, @ptrCast(ty));
47954798
4796 const size_ap_int = const_arr_ty.getSize();
4799 var size_ap_int: *const clang.APInt = undefined;
4800 const_arr_ty.getSize(&size_ap_int);
4801 defer size_ap_int.free();
47974802 const size = size_ap_int.getLimitedValue(usize);
47984803 const elem_type = try transType(c, scope, const_arr_ty.getElementType().getTypePtr(), source_loc);
47994804
src/zig_clang.cpp+47-9
......@@ -208,6 +208,8 @@ void ZigClang_detect_enum_CK(clang::CastKind x) {
208208 case clang::CK_UserDefinedConversion:
209209 case clang::CK_VectorSplat:
210210 case clang::CK_ZeroToOCLOpaqueType:
211 case clang::CK_HLSLVectorTruncation:
212 case clang::CK_HLSLArrayRValue:
211213 break;
212214 }
213215};
......@@ -285,10 +287,12 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
285287 case clang::Type::Complex:
286288 case clang::Type::Pointer:
287289 case clang::Type::BlockPointer:
290 case clang::Type::CountAttributed:
288291 case clang::Type::LValueReference:
289292 case clang::Type::RValueReference:
290293 case clang::Type::MemberPointer:
291294 case clang::Type::ConstantArray:
295 case clang::Type::ArrayParameter:
292296 case clang::Type::IncompleteArray:
293297 case clang::Type::VariableArray:
294298 case clang::Type::DependentSizedArray:
......@@ -329,6 +333,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
329333 case clang::Type::DependentName:
330334 case clang::Type::DependentTemplateSpecialization:
331335 case clang::Type::PackExpansion:
336 case clang::Type::PackIndexing:
332337 case clang::Type::ObjCTypeParam:
333338 case clang::Type::ObjCObject:
334339 case clang::Type::ObjCInterface:
......@@ -342,6 +347,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
342347static_assert((clang::Type::TypeClass)ZigClangType_Adjusted == clang::Type::Adjusted, "");
343348static_assert((clang::Type::TypeClass)ZigClangType_Decayed == clang::Type::Decayed, "");
344349static_assert((clang::Type::TypeClass)ZigClangType_ConstantArray == clang::Type::ConstantArray, "");
350static_assert((clang::Type::TypeClass)ZigClangType_ArrayParameter == clang::Type::ArrayParameter, "");
345351static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedArray == clang::Type::DependentSizedArray, "");
346352static_assert((clang::Type::TypeClass)ZigClangType_IncompleteArray == clang::Type::IncompleteArray, "");
347353static_assert((clang::Type::TypeClass)ZigClangType_VariableArray == clang::Type::VariableArray, "");
......@@ -350,6 +356,7 @@ static_assert((clang::Type::TypeClass)ZigClangType_Attributed == clang::Type::At
350356static_assert((clang::Type::TypeClass)ZigClangType_BTFTagAttributed == clang::Type::BTFTagAttributed, "");
351357static_assert((clang::Type::TypeClass)ZigClangType_BitInt == clang::Type::BitInt, "");
352358static_assert((clang::Type::TypeClass)ZigClangType_BlockPointer == clang::Type::BlockPointer, "");
359static_assert((clang::Type::TypeClass)ZigClangType_CountAttributed == clang::Type::CountAttributed, "");
353360static_assert((clang::Type::TypeClass)ZigClangType_Builtin == clang::Type::Builtin, "");
354361static_assert((clang::Type::TypeClass)ZigClangType_Complex == clang::Type::Complex, "");
355362static_assert((clang::Type::TypeClass)ZigClangType_Decltype == clang::Type::Decltype, "");
......@@ -374,6 +381,7 @@ static_assert((clang::Type::TypeClass)ZigClangType_ObjCObject == clang::Type::Ob
374381static_assert((clang::Type::TypeClass)ZigClangType_ObjCInterface == clang::Type::ObjCInterface, "");
375382static_assert((clang::Type::TypeClass)ZigClangType_ObjCTypeParam == clang::Type::ObjCTypeParam, "");
376383static_assert((clang::Type::TypeClass)ZigClangType_PackExpansion == clang::Type::PackExpansion, "");
384static_assert((clang::Type::TypeClass)ZigClangType_PackIndexing == clang::Type::PackIndexing, "");
377385static_assert((clang::Type::TypeClass)ZigClangType_Paren == clang::Type::Paren, "");
378386static_assert((clang::Type::TypeClass)ZigClangType_Pipe == clang::Type::Pipe, "");
379387static_assert((clang::Type::TypeClass)ZigClangType_Pointer == clang::Type::Pointer, "");
......@@ -419,6 +427,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
419427 case clang::Stmt::PredefinedExprClass:
420428 case clang::Stmt::ParenListExprClass:
421429 case clang::Stmt::ParenExprClass:
430 case clang::Stmt::PackIndexingExprClass:
422431 case clang::Stmt::PackExpansionExprClass:
423432 case clang::Stmt::UnresolvedMemberExprClass:
424433 case clang::Stmt::UnresolvedLookupExprClass:
......@@ -441,7 +450,6 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
441450 case clang::Stmt::ObjCArrayLiteralClass:
442451 case clang::Stmt::OMPIteratorExprClass:
443452 case clang::Stmt::OMPArrayShapingExprClass:
444 case clang::Stmt::OMPArraySectionExprClass:
445453 case clang::Stmt::NoInitExprClass:
446454 case clang::Stmt::MemberExprClass:
447455 case clang::Stmt::MatrixSubscriptExprClass:
......@@ -462,6 +470,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
462470 case clang::Stmt::FixedPointLiteralClass:
463471 case clang::Stmt::ExtVectorElementExprClass:
464472 case clang::Stmt::ExpressionTraitExprClass:
473 case clang::Stmt::EmbedExprClass:
465474 case clang::Stmt::DesignatedInitUpdateExprClass:
466475 case clang::Stmt::DesignatedInitExprClass:
467476 case clang::Stmt::DependentScopeDeclRefExprClass:
......@@ -519,6 +528,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
519528 case clang::Stmt::AsTypeExprClass:
520529 case clang::Stmt::ArrayTypeTraitExprClass:
521530 case clang::Stmt::ArraySubscriptExprClass:
531 case clang::Stmt::ArraySectionExprClass:
522532 case clang::Stmt::ArrayInitLoopExprClass:
523533 case clang::Stmt::ArrayInitIndexExprClass:
524534 case clang::Stmt::AddrLabelExprClass:
......@@ -533,6 +543,8 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
533543 case clang::Stmt::SEHFinallyStmtClass:
534544 case clang::Stmt::SEHExceptStmtClass:
535545 case clang::Stmt::ReturnStmtClass:
546 case clang::Stmt::OpenACCLoopConstructClass:
547 case clang::Stmt::OpenACCComputeConstructClass:
536548 case clang::Stmt::ObjCForCollectionStmtClass:
537549 case clang::Stmt::ObjCAutoreleasePoolStmtClass:
538550 case clang::Stmt::ObjCAtTryStmtClass:
......@@ -568,6 +580,8 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
568580 case clang::Stmt::OMPMaskedDirectiveClass:
569581 case clang::Stmt::OMPUnrollDirectiveClass:
570582 case clang::Stmt::OMPTileDirectiveClass:
583 case clang::Stmt::OMPReverseDirectiveClass:
584 case clang::Stmt::OMPInterchangeDirectiveClass:
571585 case clang::Stmt::OMPTeamsGenericLoopDirectiveClass:
572586 case clang::Stmt::OMPTeamsDistributeSimdDirectiveClass:
573587 case clang::Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass:
......@@ -658,6 +672,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_PseudoObjectExprClass == clan
658672static_assert((clang::Stmt::StmtClass)ZigClangStmt_PredefinedExprClass == clang::Stmt::PredefinedExprClass, "");
659673static_assert((clang::Stmt::StmtClass)ZigClangStmt_ParenListExprClass == clang::Stmt::ParenListExprClass, "");
660674static_assert((clang::Stmt::StmtClass)ZigClangStmt_ParenExprClass == clang::Stmt::ParenExprClass, "");
675static_assert((clang::Stmt::StmtClass)ZigClangStmt_PackIndexingExprClass == clang::Stmt::PackIndexingExprClass, "");
661676static_assert((clang::Stmt::StmtClass)ZigClangStmt_PackExpansionExprClass == clang::Stmt::PackExpansionExprClass, "");
662677static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnresolvedMemberExprClass == clang::Stmt::UnresolvedMemberExprClass, "");
663678static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnresolvedLookupExprClass == clang::Stmt::UnresolvedLookupExprClass, "");
......@@ -680,7 +695,6 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAvailabilityCheckExprClas
680695static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCArrayLiteralClass == clang::Stmt::ObjCArrayLiteralClass, "");
681696static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPIteratorExprClass == clang::Stmt::OMPIteratorExprClass, "");
682697static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPArrayShapingExprClass == clang::Stmt::OMPArrayShapingExprClass, "");
683static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPArraySectionExprClass == clang::Stmt::OMPArraySectionExprClass, "");
684698static_assert((clang::Stmt::StmtClass)ZigClangStmt_NoInitExprClass == clang::Stmt::NoInitExprClass, "");
685699static_assert((clang::Stmt::StmtClass)ZigClangStmt_MemberExprClass == clang::Stmt::MemberExprClass, "");
686700static_assert((clang::Stmt::StmtClass)ZigClangStmt_MatrixSubscriptExprClass == clang::Stmt::MatrixSubscriptExprClass, "");
......@@ -701,6 +715,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_FloatingLiteralClass == clang
701715static_assert((clang::Stmt::StmtClass)ZigClangStmt_FixedPointLiteralClass == clang::Stmt::FixedPointLiteralClass, "");
702716static_assert((clang::Stmt::StmtClass)ZigClangStmt_ExtVectorElementExprClass == clang::Stmt::ExtVectorElementExprClass, "");
703717static_assert((clang::Stmt::StmtClass)ZigClangStmt_ExpressionTraitExprClass == clang::Stmt::ExpressionTraitExprClass, "");
718static_assert((clang::Stmt::StmtClass)ZigClangStmt_EmbedExprClass == clang::Stmt::EmbedExprClass, "");
704719static_assert((clang::Stmt::StmtClass)ZigClangStmt_DesignatedInitUpdateExprClass == clang::Stmt::DesignatedInitUpdateExprClass, "");
705720static_assert((clang::Stmt::StmtClass)ZigClangStmt_DesignatedInitExprClass == clang::Stmt::DesignatedInitExprClass, "");
706721static_assert((clang::Stmt::StmtClass)ZigClangStmt_DependentScopeDeclRefExprClass == clang::Stmt::DependentScopeDeclRefExprClass, "");
......@@ -758,6 +773,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_AtomicExprClass == clang::Stm
758773static_assert((clang::Stmt::StmtClass)ZigClangStmt_AsTypeExprClass == clang::Stmt::AsTypeExprClass, "");
759774static_assert((clang::Stmt::StmtClass)ZigClangStmt_ArrayTypeTraitExprClass == clang::Stmt::ArrayTypeTraitExprClass, "");
760775static_assert((clang::Stmt::StmtClass)ZigClangStmt_ArraySubscriptExprClass == clang::Stmt::ArraySubscriptExprClass, "");
776static_assert((clang::Stmt::StmtClass)ZigClangStmt_ArraySectionExprClass == clang::Stmt::ArraySectionExprClass, "");
761777static_assert((clang::Stmt::StmtClass)ZigClangStmt_ArrayInitLoopExprClass == clang::Stmt::ArrayInitLoopExprClass, "");
762778static_assert((clang::Stmt::StmtClass)ZigClangStmt_ArrayInitIndexExprClass == clang::Stmt::ArrayInitIndexExprClass, "");
763779static_assert((clang::Stmt::StmtClass)ZigClangStmt_AddrLabelExprClass == clang::Stmt::AddrLabelExprClass, "");
......@@ -772,6 +788,8 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHLeaveStmtClass == clang::S
772788static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHFinallyStmtClass == clang::Stmt::SEHFinallyStmtClass, "");
773789static_assert((clang::Stmt::StmtClass)ZigClangStmt_SEHExceptStmtClass == clang::Stmt::SEHExceptStmtClass, "");
774790static_assert((clang::Stmt::StmtClass)ZigClangStmt_ReturnStmtClass == clang::Stmt::ReturnStmtClass, "");
791static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCLoopConstructClass == clang::Stmt::OpenACCLoopConstructClass, "");
792static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCComputeConstructClass == clang::Stmt::OpenACCComputeConstructClass, "");
775793static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCForCollectionStmtClass == clang::Stmt::ObjCForCollectionStmtClass, "");
776794static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAutoreleasePoolStmtClass == clang::Stmt::ObjCAutoreleasePoolStmtClass, "");
777795static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAtTryStmtClass == clang::Stmt::ObjCAtTryStmtClass, "");
......@@ -807,6 +825,8 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterDirectiveClass == cl
807825static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMaskedDirectiveClass == clang::Stmt::OMPMaskedDirectiveClass, "");
808826static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPUnrollDirectiveClass == clang::Stmt::OMPUnrollDirectiveClass, "");
809827static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTileDirectiveClass == clang::Stmt::OMPTileDirectiveClass, "");
828static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPReverseDirectiveClass == clang::Stmt::OMPReverseDirectiveClass, "");
829static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPInterchangeDirectiveClass == clang::Stmt::OMPInterchangeDirectiveClass, "");
810830static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsGenericLoopDirectiveClass == clang::Stmt::OMPTeamsGenericLoopDirectiveClass, "");
811831static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass == clang::Stmt::OMPTeamsDistributeSimdDirectiveClass, "");
812832static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass == clang::Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass, "");
......@@ -1001,13 +1021,13 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
10011021}
10021022
10031023static_assert((clang::Decl::Kind)ZigClangDeclTranslationUnit == clang::Decl::TranslationUnit, "");
1024static_assert((clang::Decl::Kind)ZigClangDeclTopLevelStmt == clang::Decl::TopLevelStmt, "");
10041025static_assert((clang::Decl::Kind)ZigClangDeclRequiresExprBody == clang::Decl::RequiresExprBody, "");
10051026static_assert((clang::Decl::Kind)ZigClangDeclLinkageSpec == clang::Decl::LinkageSpec, "");
10061027static_assert((clang::Decl::Kind)ZigClangDeclExternCContext == clang::Decl::ExternCContext, "");
10071028static_assert((clang::Decl::Kind)ZigClangDeclExport == clang::Decl::Export, "");
10081029static_assert((clang::Decl::Kind)ZigClangDeclCaptured == clang::Decl::Captured, "");
10091030static_assert((clang::Decl::Kind)ZigClangDeclBlock == clang::Decl::Block, "");
1010static_assert((clang::Decl::Kind)ZigClangDeclTopLevelStmt == clang::Decl::TopLevelStmt, "");
10111031static_assert((clang::Decl::Kind)ZigClangDeclStaticAssert == clang::Decl::StaticAssert, "");
10121032static_assert((clang::Decl::Kind)ZigClangDeclPragmaDetectMismatch == clang::Decl::PragmaDetectMismatch, "");
10131033static_assert((clang::Decl::Kind)ZigClangDeclPragmaComment == clang::Decl::PragmaComment, "");
......@@ -1515,6 +1535,7 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
15151535 case clang::BuiltinType::RvvBFloat16m2x4:
15161536 case clang::BuiltinType::RvvBFloat16m4x2:
15171537 case clang::BuiltinType::WasmExternRef:
1538 case clang::BuiltinType::AMDGPUBufferRsrc:
15181539 case clang::BuiltinType::Void:
15191540 case clang::BuiltinType::Bool:
15201541 case clang::BuiltinType::Char_U:
......@@ -1580,14 +1601,15 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
15801601 case clang::BuiltinType::Dependent:
15811602 case clang::BuiltinType::Overload:
15821603 case clang::BuiltinType::BoundMember:
1604 case clang::BuiltinType::UnresolvedTemplate:
15831605 case clang::BuiltinType::PseudoObject:
15841606 case clang::BuiltinType::UnknownAny:
15851607 case clang::BuiltinType::BuiltinFn:
15861608 case clang::BuiltinType::ARCUnbridgedCast:
15871609 case clang::BuiltinType::IncompleteMatrixIdx:
1588 case clang::BuiltinType::OMPArraySection:
15891610 case clang::BuiltinType::OMPArrayShaping:
15901611 case clang::BuiltinType::OMPIterator:
1612 case clang::BuiltinType::ArraySection:
15911613 break;
15921614 }
15931615}
......@@ -2018,6 +2040,7 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBFloat16m2x3 == cl
20182040static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBFloat16m2x4 == clang::BuiltinType::RvvBFloat16m2x4, "");
20192041static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvBFloat16m4x2 == clang::BuiltinType::RvvBFloat16m4x2, "");
20202042static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeWasmExternRef == clang::BuiltinType::WasmExternRef, "");
2043static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeAMDGPUBufferRsrc == clang::BuiltinType::AMDGPUBufferRsrc, "");
20212044static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, "");
20222045static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, "");
20232046static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_U == clang::BuiltinType::Char_U, "");
......@@ -2083,12 +2106,12 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLReserveID == clang
20832106static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeDependent == clang::BuiltinType::Dependent, "");
20842107static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOverload == clang::BuiltinType::Overload, "");
20852108static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBoundMember == clang::BuiltinType::BoundMember, "");
2109static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUnresolvedTemplate == clang::BuiltinType::UnresolvedTemplate, "");
20862110static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypePseudoObject == clang::BuiltinType::PseudoObject, "");
20872111static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUnknownAny == clang::BuiltinType::UnknownAny, "");
20882112static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBuiltinFn == clang::BuiltinType::BuiltinFn, "");
20892113static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeARCUnbridgedCast == clang::BuiltinType::ARCUnbridgedCast, "");
20902114static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeIncompleteMatrixIdx == clang::BuiltinType::IncompleteMatrixIdx, "");
2091static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOMPArraySection == clang::BuiltinType::OMPArraySection, "");
20922115static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOMPArrayShaping == clang::BuiltinType::OMPArrayShaping, "");
20932116static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOMPIterator == clang::BuiltinType::OMPIterator, "");
20942117
......@@ -2116,6 +2139,8 @@ void ZigClang_detect_enum_CallingConv(clang::CallingConv x) {
21162139 case clang::CC_AArch64SVEPCS:
21172140 case clang::CC_AMDGPUKernelCall:
21182141 case clang::CC_M68kRTD:
2142 case clang::CC_PreserveNone:
2143 case clang::CC_RISCVVectorCall:
21192144 break;
21202145 }
21212146}
......@@ -2142,6 +2167,8 @@ static_assert((clang::CallingConv)ZigClangCallingConv_AArch64VectorCall == clang
21422167static_assert((clang::CallingConv)ZigClangCallingConv_AArch64SVEPCS == clang::CC_AArch64SVEPCS, "");
21432168static_assert((clang::CallingConv)ZigClangCallingConv_AMDGPUKernelCall == clang::CC_AMDGPUKernelCall, "");
21442169static_assert((clang::CallingConv)ZigClangCallingConv_M68kRTD == clang::CC_M68kRTD, "");
2170static_assert((clang::CallingConv)ZigClangCallingConv_PreserveNone == clang::CC_PreserveNone, "");
2171static_assert((clang::CallingConv)ZigClangCallingConv_RISCVVectorCall == clang::CC_RISCVVectorCall, "");
21452172
21462173void ZigClang_detect_enum_StorageClass(clang::StorageClass x) {
21472174 switch (x) {
......@@ -2251,6 +2278,7 @@ static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::Zi
22512278static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindDataSizeOf == clang::UnaryExprOrTypeTrait::UETT_DataSizeOf, "");
22522279static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindAlignOf == clang::UnaryExprOrTypeTrait::UETT_AlignOf, "");
22532280static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindPreferredAlignOf == clang::UnaryExprOrTypeTrait::UETT_PreferredAlignOf, "");
2281static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindPtrAuthTypeDiscriminator == clang::UnaryExprOrTypeTrait::UETT_PtrAuthTypeDiscriminator, "");
22542282static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindVecStep == clang::UnaryExprOrTypeTrait::UETT_VecStep, "");
22552283static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindOpenMPRequiredSimdAlign == clang::UnaryExprOrTypeTrait::UETT_OpenMPRequiredSimdAlign, "");
22562284
......@@ -2811,7 +2839,7 @@ bool ZigClangType_isIncompleteOrZeroLengthArrayType(const ZigClangQualType *self
28112839 if (casted_type->isIncompleteArrayType())
28122840 return true;
28132841
2814 clang::QualType elem_type = *casted;
2842 clang::QualType elem_type = *casted;
28152843 while (const clang::ConstantArrayType *ArrayT = casted_ctx->getAsConstantArrayType(elem_type)) {
28162844 if (ArrayT->getSize() == 0)
28172845 return true;
......@@ -3021,6 +3049,11 @@ bool ZigClangAPSInt_lessThanEqual(const ZigClangAPSInt *self, uint64_t rhs) {
30213049 return casted->ule(rhs);
30223050}
30233051
3052void ZigClangAPInt_free(const ZigClangAPInt *self) {
3053 auto casted = reinterpret_cast<const llvm::APInt *>(self);
3054 delete casted;
3055}
3056
30243057uint64_t ZigClangAPInt_getLimitedValue(const ZigClangAPInt *self, uint64_t limit) {
30253058 auto casted = reinterpret_cast<const llvm::APInt *>(self);
30263059 return casted->getLimitedValue(limit);
......@@ -3400,9 +3433,10 @@ struct ZigClangQualType ZigClangConstantArrayType_getElementType(const struct Zi
34003433 return bitcast(casted->getElementType());
34013434}
34023435
3403const struct ZigClangAPInt *ZigClangConstantArrayType_getSize(const struct ZigClangConstantArrayType *self) {
3436void ZigClangConstantArrayType_getSize(const struct ZigClangConstantArrayType *self, const struct ZigClangAPInt **result) {
34043437 auto casted = reinterpret_cast<const clang::ConstantArrayType *>(self);
3405 return reinterpret_cast<const ZigClangAPInt *>(&casted->getSize());
3438 llvm::APInt *ap_int = new llvm::APInt(casted->getSize());
3439 *result = reinterpret_cast<const ZigClangAPInt *>(ap_int);
34063440}
34073441
34083442const struct ZigClangValueDecl *ZigClangDeclRefExpr_getDecl(const struct ZigClangDeclRefExpr *self) {
......@@ -4059,7 +4093,7 @@ const struct ZigClangAPSInt *ZigClangEnumConstantDecl_getInitVal(const struct Zi
40594093// See also: https://github.com/ziglang/zig/issues/11168
40604094bool ZigClangIsLLVMUsingSeparateLibcxx() {
40614095
4062 // Temporarily create an InMemoryFileSystem, so that we can perform a file
4096 // Temporarily create an InMemoryFileSystem, so that we can perform a file
40634097 // lookup that is guaranteed to fail.
40644098 auto FS = new llvm::vfs::InMemoryFileSystem(true);
40654099 auto StatusOrErr = FS->status("foo.txt");
......@@ -4080,9 +4114,13 @@ static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_IEEEqu
40804114static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_PPCDoubleDouble == llvm::APFloatBase::S_PPCDoubleDouble);
40814115static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E5M2 == llvm::APFloatBase::S_Float8E5M2);
40824116static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E5M2FNUZ == llvm::APFloatBase::S_Float8E5M2FNUZ);
4117static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3 == llvm::APFloatBase::S_Float8E4M3);
40834118static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3FN == llvm::APFloatBase::S_Float8E4M3FN);
40844119static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3FNUZ == llvm::APFloatBase::S_Float8E4M3FNUZ);
40854120static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float8E4M3B11FNUZ == llvm::APFloatBase::S_Float8E4M3B11FNUZ);
40864121static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_FloatTF32 == llvm::APFloatBase::S_FloatTF32);
4122static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float6E3M2FN == llvm::APFloatBase::S_Float6E3M2FN);
4123static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float6E2M3FN == llvm::APFloatBase::S_Float6E2M3FN);
4124static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_Float4E2M1FN == llvm::APFloatBase::S_Float4E2M1FN);
40874125static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_x87DoubleExtended == llvm::APFloatBase::S_x87DoubleExtended);
40884126static_assert((llvm::APFloatBase::Semantics)ZigClangAPFloatBase_Semantics_MaxSemantics == llvm::APFloatBase::S_MaxSemantics);
src/zig_clang.h+22-3
......@@ -247,6 +247,7 @@ enum ZigClangTypeClass {
247247 ZigClangType_Adjusted,
248248 ZigClangType_Decayed,
249249 ZigClangType_ConstantArray,
250 ZigClangType_ArrayParameter,
250251 ZigClangType_DependentSizedArray,
251252 ZigClangType_IncompleteArray,
252253 ZigClangType_VariableArray,
......@@ -255,6 +256,7 @@ enum ZigClangTypeClass {
255256 ZigClangType_BTFTagAttributed,
256257 ZigClangType_BitInt,
257258 ZigClangType_BlockPointer,
259 ZigClangType_CountAttributed,
258260 ZigClangType_Builtin,
259261 ZigClangType_Complex,
260262 ZigClangType_Decltype,
......@@ -279,6 +281,7 @@ enum ZigClangTypeClass {
279281 ZigClangType_ObjCInterface,
280282 ZigClangType_ObjCTypeParam,
281283 ZigClangType_PackExpansion,
284 ZigClangType_PackIndexing,
282285 ZigClangType_Paren,
283286 ZigClangType_Pipe,
284287 ZigClangType_Pointer,
......@@ -323,6 +326,7 @@ enum ZigClangStmtClass {
323326 ZigClangStmt_PredefinedExprClass,
324327 ZigClangStmt_ParenListExprClass,
325328 ZigClangStmt_ParenExprClass,
329 ZigClangStmt_PackIndexingExprClass,
326330 ZigClangStmt_PackExpansionExprClass,
327331 ZigClangStmt_UnresolvedMemberExprClass,
328332 ZigClangStmt_UnresolvedLookupExprClass,
......@@ -345,7 +349,6 @@ enum ZigClangStmtClass {
345349 ZigClangStmt_ObjCArrayLiteralClass,
346350 ZigClangStmt_OMPIteratorExprClass,
347351 ZigClangStmt_OMPArrayShapingExprClass,
348 ZigClangStmt_OMPArraySectionExprClass,
349352 ZigClangStmt_NoInitExprClass,
350353 ZigClangStmt_MemberExprClass,
351354 ZigClangStmt_MatrixSubscriptExprClass,
......@@ -366,6 +369,7 @@ enum ZigClangStmtClass {
366369 ZigClangStmt_FixedPointLiteralClass,
367370 ZigClangStmt_ExtVectorElementExprClass,
368371 ZigClangStmt_ExpressionTraitExprClass,
372 ZigClangStmt_EmbedExprClass,
369373 ZigClangStmt_DesignatedInitUpdateExprClass,
370374 ZigClangStmt_DesignatedInitExprClass,
371375 ZigClangStmt_DependentScopeDeclRefExprClass,
......@@ -423,6 +427,7 @@ enum ZigClangStmtClass {
423427 ZigClangStmt_AsTypeExprClass,
424428 ZigClangStmt_ArrayTypeTraitExprClass,
425429 ZigClangStmt_ArraySubscriptExprClass,
430 ZigClangStmt_ArraySectionExprClass,
426431 ZigClangStmt_ArrayInitLoopExprClass,
427432 ZigClangStmt_ArrayInitIndexExprClass,
428433 ZigClangStmt_AddrLabelExprClass,
......@@ -437,6 +442,8 @@ enum ZigClangStmtClass {
437442 ZigClangStmt_SEHFinallyStmtClass,
438443 ZigClangStmt_SEHExceptStmtClass,
439444 ZigClangStmt_ReturnStmtClass,
445 ZigClangStmt_OpenACCLoopConstructClass,
446 ZigClangStmt_OpenACCComputeConstructClass,
440447 ZigClangStmt_ObjCForCollectionStmtClass,
441448 ZigClangStmt_ObjCAutoreleasePoolStmtClass,
442449 ZigClangStmt_ObjCAtTryStmtClass,
......@@ -472,6 +479,8 @@ enum ZigClangStmtClass {
472479 ZigClangStmt_OMPMaskedDirectiveClass,
473480 ZigClangStmt_OMPUnrollDirectiveClass,
474481 ZigClangStmt_OMPTileDirectiveClass,
482 ZigClangStmt_OMPReverseDirectiveClass,
483 ZigClangStmt_OMPInterchangeDirectiveClass,
475484 ZigClangStmt_OMPTeamsGenericLoopDirectiveClass,
476485 ZigClangStmt_OMPTeamsDistributeSimdDirectiveClass,
477486 ZigClangStmt_OMPTeamsDistributeParallelForSimdDirectiveClass,
......@@ -608,13 +617,13 @@ enum ZigClangCK {
608617
609618enum ZigClangDeclKind {
610619 ZigClangDeclTranslationUnit,
620 ZigClangDeclTopLevelStmt,
611621 ZigClangDeclRequiresExprBody,
612622 ZigClangDeclLinkageSpec,
613623 ZigClangDeclExternCContext,
614624 ZigClangDeclExport,
615625 ZigClangDeclCaptured,
616626 ZigClangDeclBlock,
617 ZigClangDeclTopLevelStmt,
618627 ZigClangDeclStaticAssert,
619628 ZigClangDeclPragmaDetectMismatch,
620629 ZigClangDeclPragmaComment,
......@@ -1122,6 +1131,7 @@ enum ZigClangBuiltinTypeKind {
11221131 ZigClangBuiltinTypeRvvBFloat16m2x4,
11231132 ZigClangBuiltinTypeRvvBFloat16m4x2,
11241133 ZigClangBuiltinTypeWasmExternRef,
1134 ZigClangBuiltinTypeAMDGPUBufferRsrc,
11251135 ZigClangBuiltinTypeVoid,
11261136 ZigClangBuiltinTypeBool,
11271137 ZigClangBuiltinTypeChar_U,
......@@ -1187,6 +1197,7 @@ enum ZigClangBuiltinTypeKind {
11871197 ZigClangBuiltinTypeDependent,
11881198 ZigClangBuiltinTypeOverload,
11891199 ZigClangBuiltinTypeBoundMember,
1200 ZigClangBuiltinTypeUnresolvedTemplate,
11901201 ZigClangBuiltinTypePseudoObject,
11911202 ZigClangBuiltinTypeUnknownAny,
11921203 ZigClangBuiltinTypeBuiltinFn,
......@@ -1220,6 +1231,8 @@ enum ZigClangCallingConv {
12201231 ZigClangCallingConv_AArch64SVEPCS,
12211232 ZigClangCallingConv_AMDGPUKernelCall,
12221233 ZigClangCallingConv_M68kRTD,
1234 ZigClangCallingConv_PreserveNone,
1235 ZigClangCallingConv_RISCVVectorCall,
12231236};
12241237
12251238enum ZigClangStorageClass {
......@@ -1255,10 +1268,14 @@ enum ZigClangAPFloatBase_Semantics {
12551268 ZigClangAPFloatBase_Semantics_PPCDoubleDouble,
12561269 ZigClangAPFloatBase_Semantics_Float8E5M2,
12571270 ZigClangAPFloatBase_Semantics_Float8E5M2FNUZ,
1271 ZigClangAPFloatBase_Semantics_Float8E4M3,
12581272 ZigClangAPFloatBase_Semantics_Float8E4M3FN,
12591273 ZigClangAPFloatBase_Semantics_Float8E4M3FNUZ,
12601274 ZigClangAPFloatBase_Semantics_Float8E4M3B11FNUZ,
12611275 ZigClangAPFloatBase_Semantics_FloatTF32,
1276 ZigClangAPFloatBase_Semantics_Float6E3M2FN,
1277 ZigClangAPFloatBase_Semantics_Float6E2M3FN,
1278 ZigClangAPFloatBase_Semantics_Float4E2M1FN,
12621279 ZigClangAPFloatBase_Semantics_x87DoubleExtended,
12631280 ZigClangAPFloatBase_Semantics_MaxSemantics = ZigClangAPFloatBase_Semantics_x87DoubleExtended,
12641281};
......@@ -1314,6 +1331,7 @@ enum ZigClangUnaryExprOrTypeTrait_Kind {
13141331 ZigClangUnaryExprOrTypeTrait_KindDataSizeOf,
13151332 ZigClangUnaryExprOrTypeTrait_KindAlignOf,
13161333 ZigClangUnaryExprOrTypeTrait_KindPreferredAlignOf,
1334 ZigClangUnaryExprOrTypeTrait_KindPtrAuthTypeDiscriminator,
13171335 ZigClangUnaryExprOrTypeTrait_KindVecStep,
13181336 ZigClangUnaryExprOrTypeTrait_KindOpenMPRequiredSimdAlign,
13191337};
......@@ -1515,6 +1533,7 @@ ZIG_EXTERN_C const uint64_t *ZigClangAPSInt_getRawData(const struct ZigClangAPSI
15151533ZIG_EXTERN_C unsigned ZigClangAPSInt_getNumWords(const struct ZigClangAPSInt *self);
15161534ZIG_EXTERN_C bool ZigClangAPSInt_lessThanEqual(const struct ZigClangAPSInt *self, uint64_t rhs);
15171535
1536ZIG_EXTERN_C void ZigClangAPInt_free(const struct ZigClangAPInt *self);
15181537ZIG_EXTERN_C uint64_t ZigClangAPInt_getLimitedValue(const struct ZigClangAPInt *self, uint64_t limit);
15191538
15201539ZIG_EXTERN_C const struct ZigClangExpr *ZigClangAPValueLValueBase_dyn_cast_Expr(struct ZigClangAPValueLValueBase self);
......@@ -1569,7 +1588,7 @@ ZIG_EXTERN_C struct ZigClangQualType ZigClangArrayType_getElementType(const stru
15691588ZIG_EXTERN_C struct ZigClangQualType ZigClangIncompleteArrayType_getElementType(const struct ZigClangIncompleteArrayType *);
15701589
15711590ZIG_EXTERN_C struct ZigClangQualType ZigClangConstantArrayType_getElementType(const struct ZigClangConstantArrayType *);
1572ZIG_EXTERN_C const struct ZigClangAPInt *ZigClangConstantArrayType_getSize(const struct ZigClangConstantArrayType *);
1591ZIG_EXTERN_C void ZigClangConstantArrayType_getSize(const struct ZigClangConstantArrayType *, const struct ZigClangAPInt **result);
15731592
15741593ZIG_EXTERN_C const struct ZigClangValueDecl *ZigClangDeclRefExpr_getDecl(const struct ZigClangDeclRefExpr *);
15751594ZIG_EXTERN_C const struct ZigClangNamedDecl *ZigClangDeclRefExpr_getFoundDecl(const struct ZigClangDeclRefExpr *);