Commit b260bf42d3
Changed files (4)
src/clang.zig
@@ -662,8 +662,8 @@ pub const MacroQualifiedType = opaque {
};
pub const TypeOfType = opaque {
- pub const getUnderlyingType = ZigClangTypeOfType_getUnderlyingType;
- extern fn ZigClangTypeOfType_getUnderlyingType(*const TypeOfType) QualType;
+ pub const getUnmodifiedType = ZigClangTypeOfType_getUnmodifiedType;
+ extern fn ZigClangTypeOfType_getUnmodifiedType(*const TypeOfType) QualType;
};
pub const TypeOfExprType = opaque {
@@ -1199,6 +1199,7 @@ const StmtClass = enum(c_int) {
OMPCriticalDirectiveClass,
OMPDepobjDirectiveClass,
OMPDispatchDirectiveClass,
+ OMPErrorDirectiveClass,
OMPFlushDirectiveClass,
OMPInteropDirectiveClass,
OMPDistributeDirectiveClass,
@@ -1303,6 +1304,7 @@ const StmtClass = enum(c_int) {
CXXNewExprClass,
CXXNoexceptExprClass,
CXXNullPtrLiteralExprClass,
+ CXXParenListInitExprClass,
CXXPseudoDestructorExprClass,
CXXRewrittenBinaryOperatorClass,
CXXScalarValueInitExprClass,
@@ -1484,11 +1486,13 @@ pub const DeclKind = enum(c_int) {
FileScopeAsm,
Friend,
FriendTemplate,
+ ImplicitConceptSpecialization,
Import,
LifetimeExtendedTemporary,
LinkageSpec,
Using,
UsingEnum,
+ HLSLBuffer,
Label,
Namespace,
NamespaceAlias,
@@ -1557,6 +1561,7 @@ pub const DeclKind = enum(c_int) {
PragmaDetectMismatch,
RequiresExprBody,
StaticAssert,
+ TopLevelStmt,
TranslationUnit,
};
src/translate_c.zig
@@ -4825,7 +4825,7 @@ fn transType(c: *Context, scope: *Scope, ty: *const clang.Type, source_loc: clan
},
.TypeOf => {
const typeof_ty = @ptrCast(*const clang.TypeOfType, ty);
- return transQualType(c, scope, typeof_ty.getUnderlyingType(), source_loc);
+ return transQualType(c, scope, typeof_ty.getUnmodifiedType(), source_loc);
},
.TypeOfExpr => {
const typeofexpr_ty = @ptrCast(*const clang.TypeOfExprType, ty);
src/zig_clang.cpp
@@ -425,6 +425,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
case clang::Stmt::OMPCriticalDirectiveClass:
case clang::Stmt::OMPDepobjDirectiveClass:
case clang::Stmt::OMPDispatchDirectiveClass:
+ case clang::Stmt::OMPErrorDirectiveClass:
case clang::Stmt::OMPFlushDirectiveClass:
case clang::Stmt::OMPInteropDirectiveClass:
case clang::Stmt::OMPDistributeDirectiveClass:
@@ -529,6 +530,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
case clang::Stmt::CXXNewExprClass:
case clang::Stmt::CXXNoexceptExprClass:
case clang::Stmt::CXXNullPtrLiteralExprClass:
+ case clang::Stmt::CXXParenListInitExprClass:
case clang::Stmt::CXXPseudoDestructorExprClass:
case clang::Stmt::CXXRewrittenBinaryOperatorClass:
case clang::Stmt::CXXScalarValueInitExprClass:
@@ -661,6 +663,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancellationPointDirective
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCriticalDirectiveClass == clang::Stmt::OMPCriticalDirectiveClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDepobjDirectiveClass == clang::Stmt::OMPDepobjDirectiveClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDispatchDirectiveClass == clang::Stmt::OMPDispatchDirectiveClass, "");
+static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPErrorDirectiveClass == clang::Stmt::OMPErrorDirectiveClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPFlushDirectiveClass == clang::Stmt::OMPFlushDirectiveClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPInteropDirectiveClass == clang::Stmt::OMPInteropDirectiveClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeDirectiveClass == clang::Stmt::OMPDistributeDirectiveClass, "");
@@ -765,6 +768,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXInheritedCtorInitExprClass
static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXNewExprClass == clang::Stmt::CXXNewExprClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXNoexceptExprClass == clang::Stmt::CXXNoexceptExprClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXNullPtrLiteralExprClass == clang::Stmt::CXXNullPtrLiteralExprClass, "");
+static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXParenListInitExprClass == clang::Stmt::CXXParenListInitExprClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXPseudoDestructorExprClass == clang::Stmt::CXXPseudoDestructorExprClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXRewrittenBinaryOperatorClass == clang::Stmt::CXXRewrittenBinaryOperatorClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXScalarValueInitExprClass == clang::Stmt::CXXScalarValueInitExprClass, "");
@@ -915,11 +919,13 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
case clang::Decl::FileScopeAsm:
case clang::Decl::Friend:
case clang::Decl::FriendTemplate:
+ case clang::Decl::ImplicitConceptSpecialization:
case clang::Decl::Import:
case clang::Decl::LifetimeExtendedTemporary:
case clang::Decl::LinkageSpec:
case clang::Decl::Using:
case clang::Decl::UsingEnum:
+ case clang::Decl::HLSLBuffer:
case clang::Decl::Label:
case clang::Decl::Namespace:
case clang::Decl::NamespaceAlias:
@@ -988,6 +994,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
case clang::Decl::PragmaDetectMismatch:
case clang::Decl::RequiresExprBody:
case clang::Decl::StaticAssert:
+ case clang::Decl::TopLevelStmt:
case clang::Decl::TranslationUnit:
break;
}
@@ -1003,11 +1010,13 @@ static_assert((clang::Decl::Kind)ZigClangDeclExternCContext == clang::Decl::Exte
static_assert((clang::Decl::Kind)ZigClangDeclFileScopeAsm == clang::Decl::FileScopeAsm, "");
static_assert((clang::Decl::Kind)ZigClangDeclFriend == clang::Decl::Friend, "");
static_assert((clang::Decl::Kind)ZigClangDeclFriendTemplate == clang::Decl::FriendTemplate, "");
+static_assert((clang::Decl::Kind)ZigClangDeclImplicitConceptSpecialization == clang::Decl::ImplicitConceptSpecialization, "");
static_assert((clang::Decl::Kind)ZigClangDeclImport == clang::Decl::Import, "");
static_assert((clang::Decl::Kind)ZigClangDeclLifetimeExtendedTemporary == clang::Decl::LifetimeExtendedTemporary, "");
static_assert((clang::Decl::Kind)ZigClangDeclLinkageSpec == clang::Decl::LinkageSpec, "");
static_assert((clang::Decl::Kind)ZigClangDeclUsing == clang::Decl::Using, "");
static_assert((clang::Decl::Kind)ZigClangDeclUsingEnum == clang::Decl::UsingEnum, "");
+static_assert((clang::Decl::Kind)ZigClangDeclHLSLBuffer == clang::Decl::HLSLBuffer, "");
static_assert((clang::Decl::Kind)ZigClangDeclLabel == clang::Decl::Label, "");
static_assert((clang::Decl::Kind)ZigClangDeclNamespace == clang::Decl::Namespace, "");
static_assert((clang::Decl::Kind)ZigClangDeclNamespaceAlias == clang::Decl::NamespaceAlias, "");
@@ -1076,6 +1085,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclPragmaComment == clang::Decl::Pragm
static_assert((clang::Decl::Kind)ZigClangDeclPragmaDetectMismatch == clang::Decl::PragmaDetectMismatch, "");
static_assert((clang::Decl::Kind)ZigClangDeclRequiresExprBody == clang::Decl::RequiresExprBody, "");
static_assert((clang::Decl::Kind)ZigClangDeclStaticAssert == clang::Decl::StaticAssert, "");
+static_assert((clang::Decl::Kind)ZigClangDeclTopLevelStmt == clang::Decl::TopLevelStmt, "");
static_assert((clang::Decl::Kind)ZigClangDeclTranslationUnit == clang::Decl::TranslationUnit, "");
void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
@@ -2496,14 +2506,32 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char
bool single_file_parse = false;
bool for_serialization = false;
bool retain_excluded_conditional_blocks = false;
+ clang::ArrayRef<clang::ASTUnit::RemappedFile> remapped_files = std::nullopt;
std::unique_ptr<clang::ASTUnit> err_unit;
+ llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS = nullptr;
+ std::optional<llvm::StringRef> ModuleFormat = std::nullopt;
clang::ASTUnit *ast_unit = clang::ASTUnit::LoadFromCommandLine(
- args_begin, args_end,
- pch_container_ops, diags, resources_path,
- only_local_decls, clang::CaptureDiagsKind::All, clang::None, true, 0, clang::TU_Complete,
- false, false, allow_pch_with_compiler_errors, clang::SkipFunctionBodiesScope::None,
- single_file_parse, user_files_are_volatile, for_serialization, retain_excluded_conditional_blocks,
- clang::None, &err_unit, nullptr);
+ args_begin, args_end,
+ pch_container_ops,
+ diags,
+ resources_path,
+ only_local_decls,
+ clang::CaptureDiagsKind::All,
+ remapped_files,
+ true, // remapped files keep original name
+ 0, // precompiled preable after n parses
+ clang::TU_Complete,
+ false, // cache code completion results
+ false, // include brief comments in code completion
+ allow_pch_with_compiler_errors,
+ clang::SkipFunctionBodiesScope::None,
+ single_file_parse,
+ user_files_are_volatile,
+ for_serialization,
+ retain_excluded_conditional_blocks,
+ ModuleFormat,
+ &err_unit,
+ VFS);
*errors_len = 0;
@@ -2836,9 +2864,9 @@ struct ZigClangQualType ZigClangMacroQualifiedType_getModifiedType(const struct
return bitcast(casted->getModifiedType());
}
-struct ZigClangQualType ZigClangTypeOfType_getUnderlyingType(const struct ZigClangTypeOfType *self) {
+struct ZigClangQualType ZigClangTypeOfType_getUnmodifiedType(const struct ZigClangTypeOfType *self) {
auto casted = reinterpret_cast<const clang::TypeOfType *>(self);
- return bitcast(casted->getUnderlyingType());
+ return bitcast(casted->getUnmodifiedType());
}
const struct ZigClangExpr *ZigClangTypeOfExprType_getUnderlyingExpr(const struct ZigClangTypeOfExprType *self) {
src/zig_clang.h
@@ -329,6 +329,7 @@ enum ZigClangStmtClass {
ZigClangStmt_OMPCriticalDirectiveClass,
ZigClangStmt_OMPDepobjDirectiveClass,
ZigClangStmt_OMPDispatchDirectiveClass,
+ ZigClangStmt_OMPErrorDirectiveClass,
ZigClangStmt_OMPFlushDirectiveClass,
ZigClangStmt_OMPInteropDirectiveClass,
ZigClangStmt_OMPDistributeDirectiveClass,
@@ -433,6 +434,7 @@ enum ZigClangStmtClass {
ZigClangStmt_CXXNewExprClass,
ZigClangStmt_CXXNoexceptExprClass,
ZigClangStmt_CXXNullPtrLiteralExprClass,
+ ZigClangStmt_CXXParenListInitExprClass,
ZigClangStmt_CXXPseudoDestructorExprClass,
ZigClangStmt_CXXRewrittenBinaryOperatorClass,
ZigClangStmt_CXXScalarValueInitExprClass,
@@ -614,11 +616,13 @@ enum ZigClangDeclKind {
ZigClangDeclFileScopeAsm,
ZigClangDeclFriend,
ZigClangDeclFriendTemplate,
+ ZigClangDeclImplicitConceptSpecialization,
ZigClangDeclImport,
ZigClangDeclLifetimeExtendedTemporary,
ZigClangDeclLinkageSpec,
ZigClangDeclUsing,
ZigClangDeclUsingEnum,
+ ZigClangDeclHLSLBuffer,
ZigClangDeclLabel,
ZigClangDeclNamespace,
ZigClangDeclNamespaceAlias,
@@ -687,6 +691,7 @@ enum ZigClangDeclKind {
ZigClangDeclPragmaDetectMismatch,
ZigClangDeclRequiresExprBody,
ZigClangDeclStaticAssert,
+ ZigClangDeclTopLevelStmt,
ZigClangDeclTranslationUnit,
};
@@ -1301,7 +1306,7 @@ ZIG_EXTERN_C struct ZigClangQualType ZigClangAttributedType_getEquivalentType(co
ZIG_EXTERN_C struct ZigClangQualType ZigClangMacroQualifiedType_getModifiedType(const struct ZigClangMacroQualifiedType *);
-ZIG_EXTERN_C struct ZigClangQualType ZigClangTypeOfType_getUnderlyingType(const struct ZigClangTypeOfType *);
+ZIG_EXTERN_C struct ZigClangQualType ZigClangTypeOfType_getUnmodifiedType(const struct ZigClangTypeOfType *);
ZIG_EXTERN_C const struct ZigClangExpr *ZigClangTypeOfExprType_getUnderlyingExpr(const struct ZigClangTypeOfExprType *);