authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-01-26 13:12:34-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-01-26 16:36:13-07:00
logb260bf42d3cadc12e814220b80fe9b41eeccb345
treebee9f01661a02e12bc57ddc2a8ed164231897356
parent740a0d8f12a20b8feb2e756929f3063cf8740c65

update clang API to 16


4 files changed, 50 insertions(+), 12 deletions(-)

src/clang.zig+7-2
......@@ -662,8 +662,8 @@ pub const MacroQualifiedType = opaque {
662662};
663663
664664pub const TypeOfType = opaque {
665 pub const getUnderlyingType = ZigClangTypeOfType_getUnderlyingType;
666 extern fn ZigClangTypeOfType_getUnderlyingType(*const TypeOfType) QualType;
665 pub const getUnmodifiedType = ZigClangTypeOfType_getUnmodifiedType;
666 extern fn ZigClangTypeOfType_getUnmodifiedType(*const TypeOfType) QualType;
667667};
668668
669669pub const TypeOfExprType = opaque {
......@@ -1199,6 +1199,7 @@ const StmtClass = enum(c_int) {
11991199 OMPCriticalDirectiveClass,
12001200 OMPDepobjDirectiveClass,
12011201 OMPDispatchDirectiveClass,
1202 OMPErrorDirectiveClass,
12021203 OMPFlushDirectiveClass,
12031204 OMPInteropDirectiveClass,
12041205 OMPDistributeDirectiveClass,
......@@ -1303,6 +1304,7 @@ const StmtClass = enum(c_int) {
13031304 CXXNewExprClass,
13041305 CXXNoexceptExprClass,
13051306 CXXNullPtrLiteralExprClass,
1307 CXXParenListInitExprClass,
13061308 CXXPseudoDestructorExprClass,
13071309 CXXRewrittenBinaryOperatorClass,
13081310 CXXScalarValueInitExprClass,
......@@ -1484,11 +1486,13 @@ pub const DeclKind = enum(c_int) {
14841486 FileScopeAsm,
14851487 Friend,
14861488 FriendTemplate,
1489 ImplicitConceptSpecialization,
14871490 Import,
14881491 LifetimeExtendedTemporary,
14891492 LinkageSpec,
14901493 Using,
14911494 UsingEnum,
1495 HLSLBuffer,
14921496 Label,
14931497 Namespace,
14941498 NamespaceAlias,
......@@ -1557,6 +1561,7 @@ pub const DeclKind = enum(c_int) {
15571561 PragmaDetectMismatch,
15581562 RequiresExprBody,
15591563 StaticAssert,
1564 TopLevelStmt,
15601565 TranslationUnit,
15611566};
15621567
src/translate_c.zig+1-1
......@@ -4825,7 +4825,7 @@ fn transType(c: *Context, scope: *Scope, ty: *const clang.Type, source_loc: clan
48254825 },
48264826 .TypeOf => {
48274827 const typeof_ty = @ptrCast(*const clang.TypeOfType, ty);
4828 return transQualType(c, scope, typeof_ty.getUnderlyingType(), source_loc);
4828 return transQualType(c, scope, typeof_ty.getUnmodifiedType(), source_loc);
48294829 },
48304830 .TypeOfExpr => {
48314831 const typeofexpr_ty = @ptrCast(*const clang.TypeOfExprType, ty);
src/zig_clang.cpp+36-8
......@@ -425,6 +425,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
425425 case clang::Stmt::OMPCriticalDirectiveClass:
426426 case clang::Stmt::OMPDepobjDirectiveClass:
427427 case clang::Stmt::OMPDispatchDirectiveClass:
428 case clang::Stmt::OMPErrorDirectiveClass:
428429 case clang::Stmt::OMPFlushDirectiveClass:
429430 case clang::Stmt::OMPInteropDirectiveClass:
430431 case clang::Stmt::OMPDistributeDirectiveClass:
......@@ -529,6 +530,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
529530 case clang::Stmt::CXXNewExprClass:
530531 case clang::Stmt::CXXNoexceptExprClass:
531532 case clang::Stmt::CXXNullPtrLiteralExprClass:
533 case clang::Stmt::CXXParenListInitExprClass:
532534 case clang::Stmt::CXXPseudoDestructorExprClass:
533535 case clang::Stmt::CXXRewrittenBinaryOperatorClass:
534536 case clang::Stmt::CXXScalarValueInitExprClass:
......@@ -661,6 +663,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancellationPointDirective
661663static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCriticalDirectiveClass == clang::Stmt::OMPCriticalDirectiveClass, "");
662664static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDepobjDirectiveClass == clang::Stmt::OMPDepobjDirectiveClass, "");
663665static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDispatchDirectiveClass == clang::Stmt::OMPDispatchDirectiveClass, "");
666static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPErrorDirectiveClass == clang::Stmt::OMPErrorDirectiveClass, "");
664667static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPFlushDirectiveClass == clang::Stmt::OMPFlushDirectiveClass, "");
665668static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPInteropDirectiveClass == clang::Stmt::OMPInteropDirectiveClass, "");
666669static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeDirectiveClass == clang::Stmt::OMPDistributeDirectiveClass, "");
......@@ -765,6 +768,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXInheritedCtorInitExprClass
765768static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXNewExprClass == clang::Stmt::CXXNewExprClass, "");
766769static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXNoexceptExprClass == clang::Stmt::CXXNoexceptExprClass, "");
767770static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXNullPtrLiteralExprClass == clang::Stmt::CXXNullPtrLiteralExprClass, "");
771static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXParenListInitExprClass == clang::Stmt::CXXParenListInitExprClass, "");
768772static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXPseudoDestructorExprClass == clang::Stmt::CXXPseudoDestructorExprClass, "");
769773static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXRewrittenBinaryOperatorClass == clang::Stmt::CXXRewrittenBinaryOperatorClass, "");
770774static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXScalarValueInitExprClass == clang::Stmt::CXXScalarValueInitExprClass, "");
......@@ -915,11 +919,13 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
915919 case clang::Decl::FileScopeAsm:
916920 case clang::Decl::Friend:
917921 case clang::Decl::FriendTemplate:
922 case clang::Decl::ImplicitConceptSpecialization:
918923 case clang::Decl::Import:
919924 case clang::Decl::LifetimeExtendedTemporary:
920925 case clang::Decl::LinkageSpec:
921926 case clang::Decl::Using:
922927 case clang::Decl::UsingEnum:
928 case clang::Decl::HLSLBuffer:
923929 case clang::Decl::Label:
924930 case clang::Decl::Namespace:
925931 case clang::Decl::NamespaceAlias:
......@@ -988,6 +994,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
988994 case clang::Decl::PragmaDetectMismatch:
989995 case clang::Decl::RequiresExprBody:
990996 case clang::Decl::StaticAssert:
997 case clang::Decl::TopLevelStmt:
991998 case clang::Decl::TranslationUnit:
992999 break;
9931000 }
......@@ -1003,11 +1010,13 @@ static_assert((clang::Decl::Kind)ZigClangDeclExternCContext == clang::Decl::Exte
10031010static_assert((clang::Decl::Kind)ZigClangDeclFileScopeAsm == clang::Decl::FileScopeAsm, "");
10041011static_assert((clang::Decl::Kind)ZigClangDeclFriend == clang::Decl::Friend, "");
10051012static_assert((clang::Decl::Kind)ZigClangDeclFriendTemplate == clang::Decl::FriendTemplate, "");
1013static_assert((clang::Decl::Kind)ZigClangDeclImplicitConceptSpecialization == clang::Decl::ImplicitConceptSpecialization, "");
10061014static_assert((clang::Decl::Kind)ZigClangDeclImport == clang::Decl::Import, "");
10071015static_assert((clang::Decl::Kind)ZigClangDeclLifetimeExtendedTemporary == clang::Decl::LifetimeExtendedTemporary, "");
10081016static_assert((clang::Decl::Kind)ZigClangDeclLinkageSpec == clang::Decl::LinkageSpec, "");
10091017static_assert((clang::Decl::Kind)ZigClangDeclUsing == clang::Decl::Using, "");
10101018static_assert((clang::Decl::Kind)ZigClangDeclUsingEnum == clang::Decl::UsingEnum, "");
1019static_assert((clang::Decl::Kind)ZigClangDeclHLSLBuffer == clang::Decl::HLSLBuffer, "");
10111020static_assert((clang::Decl::Kind)ZigClangDeclLabel == clang::Decl::Label, "");
10121021static_assert((clang::Decl::Kind)ZigClangDeclNamespace == clang::Decl::Namespace, "");
10131022static_assert((clang::Decl::Kind)ZigClangDeclNamespaceAlias == clang::Decl::NamespaceAlias, "");
......@@ -1076,6 +1085,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclPragmaComment == clang::Decl::Pragm
10761085static_assert((clang::Decl::Kind)ZigClangDeclPragmaDetectMismatch == clang::Decl::PragmaDetectMismatch, "");
10771086static_assert((clang::Decl::Kind)ZigClangDeclRequiresExprBody == clang::Decl::RequiresExprBody, "");
10781087static_assert((clang::Decl::Kind)ZigClangDeclStaticAssert == clang::Decl::StaticAssert, "");
1088static_assert((clang::Decl::Kind)ZigClangDeclTopLevelStmt == clang::Decl::TopLevelStmt, "");
10791089static_assert((clang::Decl::Kind)ZigClangDeclTranslationUnit == clang::Decl::TranslationUnit, "");
10801090
10811091void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
......@@ -2496,14 +2506,32 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char
24962506 bool single_file_parse = false;
24972507 bool for_serialization = false;
24982508 bool retain_excluded_conditional_blocks = false;
2509 clang::ArrayRef<clang::ASTUnit::RemappedFile> remapped_files = std::nullopt;
24992510 std::unique_ptr<clang::ASTUnit> err_unit;
2511 llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS = nullptr;
2512 std::optional<llvm::StringRef> ModuleFormat = std::nullopt;
25002513 clang::ASTUnit *ast_unit = clang::ASTUnit::LoadFromCommandLine(
2501 args_begin, args_end,
2502 pch_container_ops, diags, resources_path,
2503 only_local_decls, clang::CaptureDiagsKind::All, clang::None, true, 0, clang::TU_Complete,
2504 false, false, allow_pch_with_compiler_errors, clang::SkipFunctionBodiesScope::None,
2505 single_file_parse, user_files_are_volatile, for_serialization, retain_excluded_conditional_blocks,
2506 clang::None, &err_unit, nullptr);
2514 args_begin, args_end,
2515 pch_container_ops,
2516 diags,
2517 resources_path,
2518 only_local_decls,
2519 clang::CaptureDiagsKind::All,
2520 remapped_files,
2521 true, // remapped files keep original name
2522 0, // precompiled preable after n parses
2523 clang::TU_Complete,
2524 false, // cache code completion results
2525 false, // include brief comments in code completion
2526 allow_pch_with_compiler_errors,
2527 clang::SkipFunctionBodiesScope::None,
2528 single_file_parse,
2529 user_files_are_volatile,
2530 for_serialization,
2531 retain_excluded_conditional_blocks,
2532 ModuleFormat,
2533 &err_unit,
2534 VFS);
25072535
25082536 *errors_len = 0;
25092537
......@@ -2836,9 +2864,9 @@ struct ZigClangQualType ZigClangMacroQualifiedType_getModifiedType(const struct
28362864 return bitcast(casted->getModifiedType());
28372865}
28382866
2839struct ZigClangQualType ZigClangTypeOfType_getUnderlyingType(const struct ZigClangTypeOfType *self) {
2867struct ZigClangQualType ZigClangTypeOfType_getUnmodifiedType(const struct ZigClangTypeOfType *self) {
28402868 auto casted = reinterpret_cast<const clang::TypeOfType *>(self);
2841 return bitcast(casted->getUnderlyingType());
2869 return bitcast(casted->getUnmodifiedType());
28422870}
28432871
28442872const struct ZigClangExpr *ZigClangTypeOfExprType_getUnderlyingExpr(const struct ZigClangTypeOfExprType *self) {
src/zig_clang.h+6-1
......@@ -329,6 +329,7 @@ enum ZigClangStmtClass {
329329 ZigClangStmt_OMPCriticalDirectiveClass,
330330 ZigClangStmt_OMPDepobjDirectiveClass,
331331 ZigClangStmt_OMPDispatchDirectiveClass,
332 ZigClangStmt_OMPErrorDirectiveClass,
332333 ZigClangStmt_OMPFlushDirectiveClass,
333334 ZigClangStmt_OMPInteropDirectiveClass,
334335 ZigClangStmt_OMPDistributeDirectiveClass,
......@@ -433,6 +434,7 @@ enum ZigClangStmtClass {
433434 ZigClangStmt_CXXNewExprClass,
434435 ZigClangStmt_CXXNoexceptExprClass,
435436 ZigClangStmt_CXXNullPtrLiteralExprClass,
437 ZigClangStmt_CXXParenListInitExprClass,
436438 ZigClangStmt_CXXPseudoDestructorExprClass,
437439 ZigClangStmt_CXXRewrittenBinaryOperatorClass,
438440 ZigClangStmt_CXXScalarValueInitExprClass,
......@@ -614,11 +616,13 @@ enum ZigClangDeclKind {
614616 ZigClangDeclFileScopeAsm,
615617 ZigClangDeclFriend,
616618 ZigClangDeclFriendTemplate,
619 ZigClangDeclImplicitConceptSpecialization,
617620 ZigClangDeclImport,
618621 ZigClangDeclLifetimeExtendedTemporary,
619622 ZigClangDeclLinkageSpec,
620623 ZigClangDeclUsing,
621624 ZigClangDeclUsingEnum,
625 ZigClangDeclHLSLBuffer,
622626 ZigClangDeclLabel,
623627 ZigClangDeclNamespace,
624628 ZigClangDeclNamespaceAlias,
......@@ -687,6 +691,7 @@ enum ZigClangDeclKind {
687691 ZigClangDeclPragmaDetectMismatch,
688692 ZigClangDeclRequiresExprBody,
689693 ZigClangDeclStaticAssert,
694 ZigClangDeclTopLevelStmt,
690695 ZigClangDeclTranslationUnit,
691696};
692697
......@@ -1301,7 +1306,7 @@ ZIG_EXTERN_C struct ZigClangQualType ZigClangAttributedType_getEquivalentType(co
13011306
13021307ZIG_EXTERN_C struct ZigClangQualType ZigClangMacroQualifiedType_getModifiedType(const struct ZigClangMacroQualifiedType *);
13031308
1304ZIG_EXTERN_C struct ZigClangQualType ZigClangTypeOfType_getUnderlyingType(const struct ZigClangTypeOfType *);
1309ZIG_EXTERN_C struct ZigClangQualType ZigClangTypeOfType_getUnmodifiedType(const struct ZigClangTypeOfType *);
13051310
13061311ZIG_EXTERN_C const struct ZigClangExpr *ZigClangTypeOfExprType_getUnderlyingExpr(const struct ZigClangTypeOfExprType *);
13071312