Commit 7e6cb7c7a5
Changed files (5)
src/clang.zig
@@ -973,7 +973,10 @@ pub const TypedefNameDecl = opaque {
pub const FileScopeAsmDecl = opaque {
pub const getAsmString = ZigClangFileScopeAsmDecl_getAsmString;
- extern fn ZigClangFileScopeAsmDecl_getAsmString(*const FileScopeAsmDecl) *const StringLiteral;
+ extern fn ZigClangFileScopeAsmDecl_getAsmString(*const FileScopeAsmDecl) [*:0]const u8;
+
+ pub const freeAsmString = ZigClangFileScopeAsmDecl_freeAsmString;
+ extern fn ZigClangFileScopeAsmDecl_freeAsmString([*:0]const u8) void;
};
pub const TypedefType = opaque {
@@ -1170,6 +1173,7 @@ pub const TypeClass = enum(c_int) {
FunctionNoProto,
FunctionProto,
HLSLAttributedResource,
+ HLSLInlineSpirv,
InjectedClassName,
MacroQualified,
ConstantMatrix,
@@ -1209,7 +1213,6 @@ const StmtClass = enum(c_int) {
VAArgExprClass,
UnaryOperatorClass,
UnaryExprOrTypeTraitExprClass,
- TypoExprClass,
TypeTraitExprClass,
SubstNonTypeTemplateParmPackExprClass,
SubstNonTypeTemplateParmExprClass,
@@ -1351,11 +1354,13 @@ const StmtClass = enum(c_int) {
OpenACCInitConstructClass,
OpenACCExitDataConstructClass,
OpenACCEnterDataConstructClass,
+ OpenACCCacheConstructClass,
OpenACCLoopConstructClass,
OpenACCHostDataConstructClass,
OpenACCDataConstructClass,
OpenACCComputeConstructClass,
OpenACCCombinedConstructClass,
+ OpenACCAtomicConstructClass,
ObjCForCollectionStmtClass,
ObjCAutoreleasePoolStmtClass,
ObjCAtTryStmtClass,
@@ -1391,6 +1396,7 @@ const StmtClass = enum(c_int) {
OMPMaskedDirectiveClass,
OMPUnrollDirectiveClass,
OMPTileDirectiveClass,
+ OMPStripeDirectiveClass,
OMPReverseDirectiveClass,
OMPInterchangeDirectiveClass,
OMPTeamsGenericLoopDirectiveClass,
@@ -1541,6 +1547,8 @@ pub const DeclKind = enum(c_int) {
StaticAssert,
PragmaDetectMismatch,
PragmaComment,
+ OpenACCRoutine,
+ OpenACCDeclare,
ObjCPropertyImpl,
OMPThreadPrivate,
OMPRequires,
@@ -1606,6 +1614,7 @@ pub const DeclKind = enum(c_int) {
ObjCCompatibleAlias,
NamespaceAlias,
Label,
+ HLSLRootSignature,
UsingEnum,
Using,
LifetimeExtendedTemporary,
@@ -1724,6 +1733,7 @@ pub const BuiltinTypeKind = enum(c_int) {
SveBoolx4,
SveCount,
MFloat8,
+ DMR1024,
VectorQuad,
VectorPair,
RvvInt8mf8,
@@ -2143,14 +2153,13 @@ pub const CallingConv = enum(c_int) {
AAPCS_VFP,
IntelOclBicc,
SpirFunction,
- OpenCLKernel,
+ DeviceKernel,
Swift,
SwiftAsync,
PreserveMost,
PreserveAll,
AArch64VectorCall,
AArch64SVEPCS,
- AMDGPUKernelCall,
M68kRTD,
PreserveNone,
RISCVVectorCall,
@@ -2216,6 +2225,7 @@ pub const Expr_ConstantExprKind = enum(c_int) {
pub const UnaryExprOrTypeTrait_Kind = enum(c_int) {
SizeOf,
DataSizeOf,
+ CountOf,
AlignOf,
PreferredAlignOf,
PtrAuthTypeDiscriminator,
src/translate_c.zig
@@ -353,11 +353,10 @@ fn declVisitor(c: *Context, decl: *const clang.Decl) Error!void {
}
fn transFileScopeAsm(c: *Context, scope: *Scope, file_scope_asm: *const clang.FileScopeAsmDecl) Error!void {
- const asm_string = file_scope_asm.getAsmString();
- var len: usize = undefined;
- const bytes_ptr = asm_string.getString_bytes_begin_size(&len);
+ const asm_string = std.mem.span(file_scope_asm.getAsmString());
+ defer clang.FileScopeAsmDecl.freeAsmString(asm_string.ptr);
- const str = try std.fmt.allocPrint(c.arena, "\"{f}\"", .{std.zig.fmtString(bytes_ptr[0..len])});
+ const str = try std.fmt.allocPrint(c.arena, "\"{f}\"", .{std.zig.fmtString(asm_string)});
const str_node = try Tag.string_literal.create(c.arena, str);
const asm_node = try Tag.asm_simple.create(c.arena, str_node);
@@ -3696,6 +3695,7 @@ fn transUnaryExprOrTypeTraitExpr(
.SizeOf => try Tag.sizeof.create(c.arena, type_node),
.AlignOf => try Tag.alignof.create(c.arena, type_node),
.DataSizeOf,
+ .CountOf,
.PreferredAlignOf,
.PtrAuthTypeDiscriminator,
.VecStep,
src/zig_clang.cpp
@@ -330,6 +330,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
case clang::Type::Auto:
case clang::Type::DeducedTemplateSpecialization:
case clang::Type::HLSLAttributedResource:
+ case clang::Type::HLSLInlineSpirv:
case clang::Type::InjectedClassName:
case clang::Type::DependentName:
case clang::Type::DependentTemplateSpecialization:
@@ -373,6 +374,7 @@ static_assert((clang::Type::TypeClass)ZigClangType_Elaborated == clang::Type::El
static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Type::FunctionNoProto, "");
static_assert((clang::Type::TypeClass)ZigClangType_FunctionProto == clang::Type::FunctionProto, "");
static_assert((clang::Type::TypeClass)ZigClangType_HLSLAttributedResource == clang::Type::HLSLAttributedResource, "");
+static_assert((clang::Type::TypeClass)ZigClangType_HLSLInlineSpirv == clang::Type::HLSLInlineSpirv, "");
static_assert((clang::Type::TypeClass)ZigClangType_InjectedClassName == clang::Type::InjectedClassName, "");
static_assert((clang::Type::TypeClass)ZigClangType_MacroQualified == clang::Type::MacroQualified, "");
static_assert((clang::Type::TypeClass)ZigClangType_ConstantMatrix == clang::Type::ConstantMatrix, "");
@@ -413,7 +415,6 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
case clang::Stmt::VAArgExprClass:
case clang::Stmt::UnaryOperatorClass:
case clang::Stmt::UnaryExprOrTypeTraitExprClass:
- case clang::Stmt::TypoExprClass:
case clang::Stmt::TypeTraitExprClass:
case clang::Stmt::SubstNonTypeTemplateParmPackExprClass:
case clang::Stmt::SubstNonTypeTemplateParmExprClass:
@@ -555,11 +556,13 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
case clang::Stmt::OpenACCInitConstructClass:
case clang::Stmt::OpenACCExitDataConstructClass:
case clang::Stmt::OpenACCEnterDataConstructClass:
+ case clang::Stmt::OpenACCCacheConstructClass:
case clang::Stmt::OpenACCLoopConstructClass:
case clang::Stmt::OpenACCHostDataConstructClass:
case clang::Stmt::OpenACCDataConstructClass:
case clang::Stmt::OpenACCComputeConstructClass:
case clang::Stmt::OpenACCCombinedConstructClass:
+ case clang::Stmt::OpenACCAtomicConstructClass:
case clang::Stmt::ObjCForCollectionStmtClass:
case clang::Stmt::ObjCAutoreleasePoolStmtClass:
case clang::Stmt::ObjCAtTryStmtClass:
@@ -595,6 +598,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
case clang::Stmt::OMPMaskedDirectiveClass:
case clang::Stmt::OMPUnrollDirectiveClass:
case clang::Stmt::OMPTileDirectiveClass:
+ case clang::Stmt::OMPStripeDirectiveClass:
case clang::Stmt::OMPReverseDirectiveClass:
case clang::Stmt::OMPInterchangeDirectiveClass:
case clang::Stmt::OMPTeamsGenericLoopDirectiveClass:
@@ -672,7 +676,6 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_LabelStmtClass == clang::Stmt
static_assert((clang::Stmt::StmtClass)ZigClangStmt_VAArgExprClass == clang::Stmt::VAArgExprClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnaryOperatorClass == clang::Stmt::UnaryOperatorClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_UnaryExprOrTypeTraitExprClass == clang::Stmt::UnaryExprOrTypeTraitExprClass, "");
-static_assert((clang::Stmt::StmtClass)ZigClangStmt_TypoExprClass == clang::Stmt::TypoExprClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_TypeTraitExprClass == clang::Stmt::TypeTraitExprClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_SubstNonTypeTemplateParmPackExprClass == clang::Stmt::SubstNonTypeTemplateParmPackExprClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_SubstNonTypeTemplateParmExprClass == clang::Stmt::SubstNonTypeTemplateParmExprClass, "");
@@ -814,11 +817,13 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCSetConstructClass == c
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCInitConstructClass == clang::Stmt::OpenACCInitConstructClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCExitDataConstructClass == clang::Stmt::OpenACCExitDataConstructClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCEnterDataConstructClass == clang::Stmt::OpenACCEnterDataConstructClass, "");
+static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCCacheConstructClass == clang::Stmt::OpenACCCacheConstructClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCLoopConstructClass == clang::Stmt::OpenACCLoopConstructClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCHostDataConstructClass == clang::Stmt::OpenACCHostDataConstructClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCDataConstructClass == clang::Stmt::OpenACCDataConstructClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCComputeConstructClass == clang::Stmt::OpenACCComputeConstructClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCCombinedConstructClass == clang::Stmt::OpenACCCombinedConstructClass, "");
+static_assert((clang::Stmt::StmtClass)ZigClangStmt_OpenACCAtomicConstructClass == clang::Stmt::OpenACCAtomicConstructClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCForCollectionStmtClass == clang::Stmt::ObjCForCollectionStmtClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAutoreleasePoolStmtClass == clang::Stmt::ObjCAutoreleasePoolStmtClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAtTryStmtClass == clang::Stmt::ObjCAtTryStmtClass, "");
@@ -854,6 +859,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMasterDirectiveClass == cl
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPMaskedDirectiveClass == clang::Stmt::OMPMaskedDirectiveClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPUnrollDirectiveClass == clang::Stmt::OMPUnrollDirectiveClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTileDirectiveClass == clang::Stmt::OMPTileDirectiveClass, "");
+static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPStripeDirectiveClass == clang::Stmt::OMPStripeDirectiveClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPReverseDirectiveClass == clang::Stmt::OMPReverseDirectiveClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPInterchangeDirectiveClass == clang::Stmt::OMPInterchangeDirectiveClass, "");
static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPTeamsGenericLoopDirectiveClass == clang::Stmt::OMPTeamsGenericLoopDirectiveClass, "");
@@ -972,6 +978,8 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
case clang::Decl::StaticAssert:
case clang::Decl::PragmaDetectMismatch:
case clang::Decl::PragmaComment:
+ case clang::Decl::OpenACCRoutine:
+ case clang::Decl::OpenACCDeclare:
case clang::Decl::ObjCPropertyImpl:
case clang::Decl::OMPThreadPrivate:
case clang::Decl::OMPRequires:
@@ -1037,6 +1045,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
case clang::Decl::ObjCCompatibleAlias:
case clang::Decl::NamespaceAlias:
case clang::Decl::Label:
+ case clang::Decl::HLSLRootSignature:
case clang::Decl::UsingEnum:
case clang::Decl::Using:
case clang::Decl::LifetimeExtendedTemporary:
@@ -1063,6 +1072,8 @@ static_assert((clang::Decl::Kind)ZigClangDeclBlock == clang::Decl::Block, "");
static_assert((clang::Decl::Kind)ZigClangDeclStaticAssert == clang::Decl::StaticAssert, "");
static_assert((clang::Decl::Kind)ZigClangDeclPragmaDetectMismatch == clang::Decl::PragmaDetectMismatch, "");
static_assert((clang::Decl::Kind)ZigClangDeclPragmaComment == clang::Decl::PragmaComment, "");
+static_assert((clang::Decl::Kind)ZigClangDeclOpenACCRoutine == clang::Decl::OpenACCRoutine, "");
+static_assert((clang::Decl::Kind)ZigClangDeclOpenACCDeclare == clang::Decl::OpenACCDeclare, "");
static_assert((clang::Decl::Kind)ZigClangDeclObjCPropertyImpl == clang::Decl::ObjCPropertyImpl, "");
static_assert((clang::Decl::Kind)ZigClangDeclOMPThreadPrivate == clang::Decl::OMPThreadPrivate, "");
static_assert((clang::Decl::Kind)ZigClangDeclOMPRequires == clang::Decl::OMPRequires, "");
@@ -1128,6 +1139,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclObjCProperty == clang::Decl::ObjCPr
static_assert((clang::Decl::Kind)ZigClangDeclObjCCompatibleAlias == clang::Decl::ObjCCompatibleAlias, "");
static_assert((clang::Decl::Kind)ZigClangDeclNamespaceAlias == clang::Decl::NamespaceAlias, "");
static_assert((clang::Decl::Kind)ZigClangDeclLabel == clang::Decl::Label, "");
+static_assert((clang::Decl::Kind)ZigClangDeclHLSLRootSignature == clang::Decl::HLSLRootSignature, "");
static_assert((clang::Decl::Kind)ZigClangDeclUsingEnum == clang::Decl::UsingEnum, "");
static_assert((clang::Decl::Kind)ZigClangDeclUsing == clang::Decl::Using, "");
static_assert((clang::Decl::Kind)ZigClangDeclLifetimeExtendedTemporary == clang::Decl::LifetimeExtendedTemporary, "");
@@ -1246,6 +1258,7 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
case clang::BuiltinType::SveBoolx4:
case clang::BuiltinType::SveCount:
case clang::BuiltinType::MFloat8:
+ case clang::BuiltinType::DMR1024:
case clang::BuiltinType::VectorQuad:
case clang::BuiltinType::VectorPair:
case clang::BuiltinType::RvvInt8mf8:
@@ -1758,6 +1771,7 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBoolx2 == clang::B
static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBoolx4 == clang::BuiltinType::SveBoolx4, "");
static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveCount == clang::BuiltinType::SveCount, "");
static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeMFloat8 == clang::BuiltinType::MFloat8, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeDMR1024 == clang::BuiltinType::DMR1024, "");
static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorQuad == clang::BuiltinType::VectorQuad, "");
static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVectorPair == clang::BuiltinType::VectorPair, "");
static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeRvvInt8mf8 == clang::BuiltinType::RvvInt8mf8, "");
@@ -2176,14 +2190,13 @@ void ZigClang_detect_enum_CallingConv(clang::CallingConv x) {
case clang::CC_AAPCS_VFP:
case clang::CC_IntelOclBicc:
case clang::CC_SpirFunction:
- case clang::CC_OpenCLKernel:
+ case clang::CC_DeviceKernel:
case clang::CC_Swift:
case clang::CC_SwiftAsync:
case clang::CC_PreserveMost:
case clang::CC_PreserveAll:
case clang::CC_AArch64VectorCall:
case clang::CC_AArch64SVEPCS:
- case clang::CC_AMDGPUKernelCall:
case clang::CC_M68kRTD:
case clang::CC_PreserveNone:
case clang::CC_RISCVVectorCall:
@@ -2204,14 +2217,13 @@ static_assert((clang::CallingConv)ZigClangCallingConv_AAPCS == clang::CC_AAPCS,
static_assert((clang::CallingConv)ZigClangCallingConv_AAPCS_VFP == clang::CC_AAPCS_VFP, "");
static_assert((clang::CallingConv)ZigClangCallingConv_IntelOclBicc == clang::CC_IntelOclBicc, "");
static_assert((clang::CallingConv)ZigClangCallingConv_SpirFunction == clang::CC_SpirFunction, "");
-static_assert((clang::CallingConv)ZigClangCallingConv_OpenCLKernel == clang::CC_OpenCLKernel, "");
+static_assert((clang::CallingConv)ZigClangCallingConv_DeviceKernel == clang::CC_DeviceKernel, "");
static_assert((clang::CallingConv)ZigClangCallingConv_Swift == clang::CC_Swift, "");
static_assert((clang::CallingConv)ZigClangCallingConv_SwiftAsync == clang::CC_SwiftAsync, "");
static_assert((clang::CallingConv)ZigClangCallingConv_PreserveMost == clang::CC_PreserveMost, "");
static_assert((clang::CallingConv)ZigClangCallingConv_PreserveAll == clang::CC_PreserveAll, "");
static_assert((clang::CallingConv)ZigClangCallingConv_AArch64VectorCall == clang::CC_AArch64VectorCall, "");
static_assert((clang::CallingConv)ZigClangCallingConv_AArch64SVEPCS == clang::CC_AArch64SVEPCS, "");
-static_assert((clang::CallingConv)ZigClangCallingConv_AMDGPUKernelCall == clang::CC_AMDGPUKernelCall, "");
static_assert((clang::CallingConv)ZigClangCallingConv_M68kRTD == clang::CC_M68kRTD, "");
static_assert((clang::CallingConv)ZigClangCallingConv_PreserveNone == clang::CC_PreserveNone, "");
static_assert((clang::CallingConv)ZigClangCallingConv_RISCVVectorCall == clang::CC_RISCVVectorCall, "");
@@ -2322,6 +2334,7 @@ static_assert((clang::Expr::ConstantExprKind)ZigClangExpr_ConstantExprKind_Immed
static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindSizeOf == clang::UnaryExprOrTypeTrait::UETT_SizeOf, "");
static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindDataSizeOf == clang::UnaryExprOrTypeTrait::UETT_DataSizeOf, "");
+static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindCountOf == clang::UnaryExprOrTypeTrait::UETT_CountOf, "");
static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindAlignOf == clang::UnaryExprOrTypeTrait::UETT_AlignOf, "");
static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindPreferredAlignOf == clang::UnaryExprOrTypeTrait::UETT_PreferredAlignOf, "");
static_assert((clang::UnaryExprOrTypeTrait)ZigClangUnaryExprOrTypeTrait_Kind::ZigClangUnaryExprOrTypeTrait_KindPtrAuthTypeDiscriminator == clang::UnaryExprOrTypeTrait::UETT_PtrAuthTypeDiscriminator, "");
@@ -2622,9 +2635,15 @@ const ZigClangEnumDecl *ZigClangEnumDecl_getDefinition(const ZigClangEnumDecl *z
return reinterpret_cast<const ZigClangEnumDecl *>(definition);
}
-const ZigClangStringLiteral *ZigClangFileScopeAsmDecl_getAsmString(const ZigClangFileScopeAsmDecl *self) {
- const clang::StringLiteral *result = reinterpret_cast<const clang::FileScopeAsmDecl*>(self)->getAsmString();
- return reinterpret_cast<const ZigClangStringLiteral *>(result);
+const char *ZigClangFileScopeAsmDecl_getAsmString(const ZigClangFileScopeAsmDecl *self) {
+ std::string str = reinterpret_cast<const clang::FileScopeAsmDecl*>(self)->getAsmString();
+ char *result = new char[str.size() + 1];
+ strcpy(result, str.c_str());
+ return result;
+}
+
+void ZigClangFileScopeAsmDecl_freeAsmString(const char *str) {
+ delete[] str;
}
bool ZigClangRecordDecl_isUnion(const ZigClangRecordDecl *record_decl) {
@@ -3122,7 +3141,8 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char
struct Stage2ErrorMsg **errors_ptr, size_t *errors_len, const char *resources_path)
{
llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS = llvm::vfs::getRealFileSystem();
- clang::IntrusiveRefCntPtr<clang::DiagnosticsEngine> diags(clang::CompilerInstance::createDiagnostics(*VFS, new clang::DiagnosticOptions));
+ auto diag_opts = std::make_shared<clang::DiagnosticOptions>();
+ clang::IntrusiveRefCntPtr<clang::DiagnosticsEngine> diags(clang::CompilerInstance::createDiagnostics(*VFS, *diag_opts));
std::shared_ptr<clang::PCHContainerOperations> pch_container_ops = std::make_shared<clang::PCHContainerOperations>();
@@ -3134,12 +3154,13 @@ ZigClangASTUnit *ZigClangLoadFromCommandLine(const char **args_begin, const char
bool retain_excluded_conditional_blocks = false;
bool store_preambles_in_memory = false;
llvm::StringRef preamble_storage_path = llvm::StringRef();
- clang::ArrayRef<clang::ASTUnit::RemappedFile> remapped_files = std::nullopt;
+ clang::ArrayRef<clang::ASTUnit::RemappedFile> remapped_files = {};
std::unique_ptr<clang::ASTUnit> err_unit;
std::optional<llvm::StringRef> ModuleFormat = std::nullopt;
std::unique_ptr<clang::ASTUnit> ast_unit_unique_ptr = clang::ASTUnit::LoadFromCommandLine(
args_begin, args_end,
pch_container_ops,
+ diag_opts,
diags,
resources_path,
store_preambles_in_memory,
src/zig_clang.h
@@ -273,6 +273,7 @@ enum ZigClangTypeClass {
ZigClangType_FunctionNoProto,
ZigClangType_FunctionProto,
ZigClangType_HLSLAttributedResource,
+ ZigClangType_HLSLInlineSpirv,
ZigClangType_InjectedClassName,
ZigClangType_MacroQualified,
ZigClangType_ConstantMatrix,
@@ -312,7 +313,6 @@ enum ZigClangStmtClass {
ZigClangStmt_VAArgExprClass,
ZigClangStmt_UnaryOperatorClass,
ZigClangStmt_UnaryExprOrTypeTraitExprClass,
- ZigClangStmt_TypoExprClass,
ZigClangStmt_TypeTraitExprClass,
ZigClangStmt_SubstNonTypeTemplateParmPackExprClass,
ZigClangStmt_SubstNonTypeTemplateParmExprClass,
@@ -454,11 +454,13 @@ enum ZigClangStmtClass {
ZigClangStmt_OpenACCInitConstructClass,
ZigClangStmt_OpenACCExitDataConstructClass,
ZigClangStmt_OpenACCEnterDataConstructClass,
+ ZigClangStmt_OpenACCCacheConstructClass,
ZigClangStmt_OpenACCLoopConstructClass,
ZigClangStmt_OpenACCHostDataConstructClass,
ZigClangStmt_OpenACCDataConstructClass,
ZigClangStmt_OpenACCComputeConstructClass,
ZigClangStmt_OpenACCCombinedConstructClass,
+ ZigClangStmt_OpenACCAtomicConstructClass,
ZigClangStmt_ObjCForCollectionStmtClass,
ZigClangStmt_ObjCAutoreleasePoolStmtClass,
ZigClangStmt_ObjCAtTryStmtClass,
@@ -494,6 +496,7 @@ enum ZigClangStmtClass {
ZigClangStmt_OMPMaskedDirectiveClass,
ZigClangStmt_OMPUnrollDirectiveClass,
ZigClangStmt_OMPTileDirectiveClass,
+ ZigClangStmt_OMPStripeDirectiveClass,
ZigClangStmt_OMPReverseDirectiveClass,
ZigClangStmt_OMPInterchangeDirectiveClass,
ZigClangStmt_OMPTeamsGenericLoopDirectiveClass,
@@ -644,6 +647,8 @@ enum ZigClangDeclKind {
ZigClangDeclStaticAssert,
ZigClangDeclPragmaDetectMismatch,
ZigClangDeclPragmaComment,
+ ZigClangDeclOpenACCRoutine,
+ ZigClangDeclOpenACCDeclare,
ZigClangDeclObjCPropertyImpl,
ZigClangDeclOMPThreadPrivate,
ZigClangDeclOMPRequires,
@@ -709,6 +714,7 @@ enum ZigClangDeclKind {
ZigClangDeclObjCCompatibleAlias,
ZigClangDeclNamespaceAlias,
ZigClangDeclLabel,
+ ZigClangDeclHLSLRootSignature,
ZigClangDeclUsingEnum,
ZigClangDeclUsing,
ZigClangDeclLifetimeExtendedTemporary,
@@ -827,6 +833,7 @@ enum ZigClangBuiltinTypeKind {
ZigClangBuiltinTypeSveBoolx4,
ZigClangBuiltinTypeSveCount,
ZigClangBuiltinTypeMFloat8,
+ ZigClangBuiltinTypeDMR1024,
ZigClangBuiltinTypeVectorQuad,
ZigClangBuiltinTypeVectorPair,
ZigClangBuiltinTypeRvvInt8mf8,
@@ -1246,14 +1253,13 @@ enum ZigClangCallingConv {
ZigClangCallingConv_AAPCS_VFP,
ZigClangCallingConv_IntelOclBicc,
ZigClangCallingConv_SpirFunction,
- ZigClangCallingConv_OpenCLKernel,
+ ZigClangCallingConv_DeviceKernel,
ZigClangCallingConv_Swift,
ZigClangCallingConv_SwiftAsync,
ZigClangCallingConv_PreserveMost,
ZigClangCallingConv_PreserveAll,
ZigClangCallingConv_AArch64VectorCall,
ZigClangCallingConv_AArch64SVEPCS,
- ZigClangCallingConv_AMDGPUKernelCall,
ZigClangCallingConv_M68kRTD,
ZigClangCallingConv_PreserveNone,
ZigClangCallingConv_RISCVVectorCall,
@@ -1356,6 +1362,7 @@ enum ZigClangExpr_ConstantExprKind {
enum ZigClangUnaryExprOrTypeTrait_Kind {
ZigClangUnaryExprOrTypeTrait_KindSizeOf,
ZigClangUnaryExprOrTypeTrait_KindDataSizeOf,
+ ZigClangUnaryExprOrTypeTrait_KindCountOf,
ZigClangUnaryExprOrTypeTrait_KindAlignOf,
ZigClangUnaryExprOrTypeTrait_KindPreferredAlignOf,
ZigClangUnaryExprOrTypeTrait_KindPtrAuthTypeDiscriminator,
@@ -1424,7 +1431,8 @@ ZIG_EXTERN_C unsigned ZigClangFieldDecl_getAlignedAttribute(const struct ZigClan
ZIG_EXTERN_C bool ZigClangVarDecl_getPackedAttribute(const struct ZigClangVarDecl *self);
ZIG_EXTERN_C bool ZigClangFieldDecl_getPackedAttribute(const struct ZigClangFieldDecl *self);
-ZIG_EXTERN_C const struct ZigClangStringLiteral *ZigClangFileScopeAsmDecl_getAsmString(const struct ZigClangFileScopeAsmDecl *self);
+ZIG_EXTERN_C const char *ZigClangFileScopeAsmDecl_getAsmString(const struct ZigClangFileScopeAsmDecl *self);
+ZIG_EXTERN_C void ZigClangFileScopeAsmDecl_freeAsmString(const char *str);
ZIG_EXTERN_C struct ZigClangQualType ZigClangParmVarDecl_getOriginalType(const struct ZigClangParmVarDecl *self);
src/zig_llvm.cpp
@@ -153,8 +153,16 @@ LLVMTargetMachineRef ZigLLVMCreateTargetMachine(LLVMTargetRef T, const char *Tri
opt.EmulatedTLS = true;
}
- TargetMachine *TM = reinterpret_cast<Target*>(T)->createTargetMachine(Triple, CPU, Features, opt, RM, CM,
- OL, JIT);
+ TargetMachine *TM = reinterpret_cast<Target*>(T)->createTargetMachine(
+ llvm::Triple(Triple),
+ CPU,
+ Features,
+ opt,
+ RM,
+ CM,
+ OL,
+ JIT);
+
return reinterpret_cast<LLVMTargetMachineRef>(TM);
}