diff --git a/src/translate_c.cpp b/src/translate_c.cpp index 660b3ad7d1effd48e57f2b70996450743d33ac4b..60ed5b45d9c519cb97e88f0f68b2ec5942db9b71 100644 --- a/src/translate_c.cpp +++ b/src/translate_c.cpp @@ -1038,6 +1038,18 @@ static AstNode *trans_type(Context *c, const ZigClangType *ty, ZigClangSourceLoc case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout: case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin: case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin: + case ZigClangBuiltinTypeSveInt8: + case ZigClangBuiltinTypeSveInt16: + case ZigClangBuiltinTypeSveInt32: + case ZigClangBuiltinTypeSveInt64: + case ZigClangBuiltinTypeSveUint8: + case ZigClangBuiltinTypeSveUint16: + case ZigClangBuiltinTypeSveUint32: + case ZigClangBuiltinTypeSveUint64: + case ZigClangBuiltinTypeSveFloat16: + case ZigClangBuiltinTypeSveFloat32: + case ZigClangBuiltinTypeSveFloat64: + case ZigClangBuiltinTypeSveBool: emit_warning(c, source_loc, "unsupported builtin type"); return nullptr; } @@ -2900,6 +2912,18 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope * case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout: case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin: case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin: + case ZigClangBuiltinTypeSveInt8: + case ZigClangBuiltinTypeSveInt16: + case ZigClangBuiltinTypeSveInt32: + case ZigClangBuiltinTypeSveInt64: + case ZigClangBuiltinTypeSveUint8: + case ZigClangBuiltinTypeSveUint16: + case ZigClangBuiltinTypeSveUint32: + case ZigClangBuiltinTypeSveUint64: + case ZigClangBuiltinTypeSveFloat16: + case ZigClangBuiltinTypeSveFloat32: + case ZigClangBuiltinTypeSveFloat64: + case ZigClangBuiltinTypeSveBool: return res; } break; diff --git a/src/zig_clang.cpp b/src/zig_clang.cpp index 2cf8ebc462dce5776017627bc596abff088ba4f5..99bd7bc721a25330dacf081d89b5189b346b30cb 100644 --- a/src/zig_clang.cpp +++ b/src/zig_clang.cpp @@ -325,54 +325,54 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) { } } +static_assert((clang::Type::TypeClass)ZigClangType_Adjusted == clang::Type::Adjusted, ""); +static_assert((clang::Type::TypeClass)ZigClangType_Atomic == clang::Type::Atomic, ""); +static_assert((clang::Type::TypeClass)ZigClangType_Attributed == clang::Type::Attributed, ""); +static_assert((clang::Type::TypeClass)ZigClangType_Auto == clang::Type::Auto, ""); +static_assert((clang::Type::TypeClass)ZigClangType_BlockPointer == clang::Type::BlockPointer, ""); static_assert((clang::Type::TypeClass)ZigClangType_Builtin == clang::Type::Builtin, ""); static_assert((clang::Type::TypeClass)ZigClangType_Complex == clang::Type::Complex, ""); -static_assert((clang::Type::TypeClass)ZigClangType_Pointer == clang::Type::Pointer, ""); -static_assert((clang::Type::TypeClass)ZigClangType_BlockPointer == clang::Type::BlockPointer, ""); -static_assert((clang::Type::TypeClass)ZigClangType_LValueReference == clang::Type::LValueReference, ""); -static_assert((clang::Type::TypeClass)ZigClangType_RValueReference == clang::Type::RValueReference, ""); -static_assert((clang::Type::TypeClass)ZigClangType_MemberPointer == clang::Type::MemberPointer, ""); static_assert((clang::Type::TypeClass)ZigClangType_ConstantArray == clang::Type::ConstantArray, ""); -static_assert((clang::Type::TypeClass)ZigClangType_IncompleteArray == clang::Type::IncompleteArray, ""); -static_assert((clang::Type::TypeClass)ZigClangType_VariableArray == clang::Type::VariableArray, ""); +static_assert((clang::Type::TypeClass)ZigClangType_Decayed == clang::Type::Decayed, ""); +static_assert((clang::Type::TypeClass)ZigClangType_Decltype == clang::Type::Decltype, ""); +static_assert((clang::Type::TypeClass)ZigClangType_DeducedTemplateSpecialization == clang::Type::DeducedTemplateSpecialization, ""); +static_assert((clang::Type::TypeClass)ZigClangType_DependentAddressSpace == clang::Type::DependentAddressSpace, ""); +static_assert((clang::Type::TypeClass)ZigClangType_DependentName == clang::Type::DependentName, ""); static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedArray == clang::Type::DependentSizedArray, ""); static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedExtVector == clang::Type::DependentSizedExtVector, ""); -static_assert((clang::Type::TypeClass)ZigClangType_DependentAddressSpace == clang::Type::DependentAddressSpace, ""); -static_assert((clang::Type::TypeClass)ZigClangType_Vector == clang::Type::Vector, ""); +static_assert((clang::Type::TypeClass)ZigClangType_DependentTemplateSpecialization == clang::Type::DependentTemplateSpecialization, ""); static_assert((clang::Type::TypeClass)ZigClangType_DependentVector == clang::Type::DependentVector, ""); +static_assert((clang::Type::TypeClass)ZigClangType_Elaborated == clang::Type::Elaborated, ""); +static_assert((clang::Type::TypeClass)ZigClangType_Enum == clang::Type::Enum, ""); static_assert((clang::Type::TypeClass)ZigClangType_ExtVector == clang::Type::ExtVector, ""); -static_assert((clang::Type::TypeClass)ZigClangType_FunctionProto == clang::Type::FunctionProto, ""); static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Type::FunctionNoProto, ""); -static_assert((clang::Type::TypeClass)ZigClangType_UnresolvedUsing == clang::Type::UnresolvedUsing, ""); -static_assert((clang::Type::TypeClass)ZigClangType_Paren == clang::Type::Paren, ""); -static_assert((clang::Type::TypeClass)ZigClangType_Typedef == clang::Type::Typedef, ""); +static_assert((clang::Type::TypeClass)ZigClangType_FunctionProto == clang::Type::FunctionProto, ""); +static_assert((clang::Type::TypeClass)ZigClangType_IncompleteArray == clang::Type::IncompleteArray, ""); +static_assert((clang::Type::TypeClass)ZigClangType_InjectedClassName == clang::Type::InjectedClassName, ""); +static_assert((clang::Type::TypeClass)ZigClangType_LValueReference == clang::Type::LValueReference, ""); static_assert((clang::Type::TypeClass)ZigClangType_MacroQualified == clang::Type::MacroQualified, ""); -static_assert((clang::Type::TypeClass)ZigClangType_Adjusted == clang::Type::Adjusted, ""); -static_assert((clang::Type::TypeClass)ZigClangType_Decayed == clang::Type::Decayed, ""); -static_assert((clang::Type::TypeClass)ZigClangType_TypeOfExpr == clang::Type::TypeOfExpr, ""); -static_assert((clang::Type::TypeClass)ZigClangType_TypeOf == clang::Type::TypeOf, ""); -static_assert((clang::Type::TypeClass)ZigClangType_Decltype == clang::Type::Decltype, ""); -static_assert((clang::Type::TypeClass)ZigClangType_UnaryTransform == clang::Type::UnaryTransform, ""); +static_assert((clang::Type::TypeClass)ZigClangType_MemberPointer == clang::Type::MemberPointer, ""); +static_assert((clang::Type::TypeClass)ZigClangType_ObjCInterface == clang::Type::ObjCInterface, ""); +static_assert((clang::Type::TypeClass)ZigClangType_ObjCObject == clang::Type::ObjCObject, ""); +static_assert((clang::Type::TypeClass)ZigClangType_ObjCObjectPointer == clang::Type::ObjCObjectPointer, ""); +static_assert((clang::Type::TypeClass)ZigClangType_ObjCTypeParam == clang::Type::ObjCTypeParam, ""); +static_assert((clang::Type::TypeClass)ZigClangType_PackExpansion == clang::Type::PackExpansion, ""); +static_assert((clang::Type::TypeClass)ZigClangType_Paren == clang::Type::Paren, ""); +static_assert((clang::Type::TypeClass)ZigClangType_Pipe == clang::Type::Pipe, ""); +static_assert((clang::Type::TypeClass)ZigClangType_Pointer == clang::Type::Pointer, ""); +static_assert((clang::Type::TypeClass)ZigClangType_RValueReference == clang::Type::RValueReference, ""); static_assert((clang::Type::TypeClass)ZigClangType_Record == clang::Type::Record, ""); -static_assert((clang::Type::TypeClass)ZigClangType_Enum == clang::Type::Enum, ""); -static_assert((clang::Type::TypeClass)ZigClangType_Elaborated == clang::Type::Elaborated, ""); -static_assert((clang::Type::TypeClass)ZigClangType_Attributed == clang::Type::Attributed, ""); -static_assert((clang::Type::TypeClass)ZigClangType_TemplateTypeParm == clang::Type::TemplateTypeParm, ""); static_assert((clang::Type::TypeClass)ZigClangType_SubstTemplateTypeParm == clang::Type::SubstTemplateTypeParm, ""); static_assert((clang::Type::TypeClass)ZigClangType_SubstTemplateTypeParmPack == clang::Type::SubstTemplateTypeParmPack, ""); static_assert((clang::Type::TypeClass)ZigClangType_TemplateSpecialization == clang::Type::TemplateSpecialization, ""); -static_assert((clang::Type::TypeClass)ZigClangType_Auto == clang::Type::Auto, ""); -static_assert((clang::Type::TypeClass)ZigClangType_DeducedTemplateSpecialization == clang::Type::DeducedTemplateSpecialization, ""); -static_assert((clang::Type::TypeClass)ZigClangType_InjectedClassName == clang::Type::InjectedClassName, ""); -static_assert((clang::Type::TypeClass)ZigClangType_DependentName == clang::Type::DependentName, ""); -static_assert((clang::Type::TypeClass)ZigClangType_DependentTemplateSpecialization == clang::Type::DependentTemplateSpecialization, ""); -static_assert((clang::Type::TypeClass)ZigClangType_PackExpansion == clang::Type::PackExpansion, ""); -static_assert((clang::Type::TypeClass)ZigClangType_ObjCTypeParam == clang::Type::ObjCTypeParam, ""); -static_assert((clang::Type::TypeClass)ZigClangType_ObjCObject == clang::Type::ObjCObject, ""); -static_assert((clang::Type::TypeClass)ZigClangType_ObjCInterface == clang::Type::ObjCInterface, ""); -static_assert((clang::Type::TypeClass)ZigClangType_ObjCObjectPointer == clang::Type::ObjCObjectPointer, ""); -static_assert((clang::Type::TypeClass)ZigClangType_Pipe == clang::Type::Pipe, ""); -static_assert((clang::Type::TypeClass)ZigClangType_Atomic == clang::Type::Atomic, ""); +static_assert((clang::Type::TypeClass)ZigClangType_TemplateTypeParm == clang::Type::TemplateTypeParm, ""); +static_assert((clang::Type::TypeClass)ZigClangType_TypeOf == clang::Type::TypeOf, ""); +static_assert((clang::Type::TypeClass)ZigClangType_TypeOfExpr == clang::Type::TypeOfExpr, ""); +static_assert((clang::Type::TypeClass)ZigClangType_Typedef == clang::Type::Typedef, ""); +static_assert((clang::Type::TypeClass)ZigClangType_UnaryTransform == clang::Type::UnaryTransform, ""); +static_assert((clang::Type::TypeClass)ZigClangType_UnresolvedUsing == clang::Type::UnresolvedUsing, ""); +static_assert((clang::Type::TypeClass)ZigClangType_VariableArray == clang::Type::VariableArray, ""); +static_assert((clang::Type::TypeClass)ZigClangType_Vector == clang::Type::Vector, ""); // Detect additions to the enum void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) { @@ -1027,6 +1027,18 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) { case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout: case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin: case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin: + case clang::BuiltinType::SveInt8: + case clang::BuiltinType::SveInt16: + case clang::BuiltinType::SveInt32: + case clang::BuiltinType::SveInt64: + case clang::BuiltinType::SveUint8: + case clang::BuiltinType::SveUint16: + case clang::BuiltinType::SveUint32: + case clang::BuiltinType::SveUint64: + case clang::BuiltinType::SveFloat16: + case clang::BuiltinType::SveFloat32: + case clang::BuiltinType::SveFloat64: + case clang::BuiltinType::SveBool: case clang::BuiltinType::Void: case clang::BuiltinType::Bool: case clang::BuiltinType::Char_U: @@ -1147,6 +1159,18 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCIm static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout == clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout, ""); static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin, ""); static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8 == clang::BuiltinType::SveInt8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16 == clang::BuiltinType::SveInt16, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32 == clang::BuiltinType::SveInt32, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt64 == clang::BuiltinType::SveInt64, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint8 == clang::BuiltinType::SveUint8, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint16 == clang::BuiltinType::SveUint16, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint32 == clang::BuiltinType::SveUint32, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint64 == clang::BuiltinType::SveUint64, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16 == clang::BuiltinType::SveFloat16, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32 == clang::BuiltinType::SveFloat32, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64 == clang::BuiltinType::SveFloat64, ""); +static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBool == clang::BuiltinType::SveBool, ""); static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, ""); static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, ""); static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_U == clang::BuiltinType::Char_U, ""); diff --git a/src/zig_clang.h b/src/zig_clang.h index 474ec57bafd948b165a63823459c6a29e39e2619..6575cf6d59cbab298d388b4bf5a1ebb34b14360d 100644 --- a/src/zig_clang.h +++ b/src/zig_clang.h @@ -200,54 +200,54 @@ enum ZigClangUO { }; enum ZigClangTypeClass { + ZigClangType_Adjusted, + ZigClangType_Atomic, + ZigClangType_Attributed, + ZigClangType_Auto, + ZigClangType_BlockPointer, ZigClangType_Builtin, ZigClangType_Complex, - ZigClangType_Pointer, - ZigClangType_BlockPointer, - ZigClangType_LValueReference, - ZigClangType_RValueReference, - ZigClangType_MemberPointer, ZigClangType_ConstantArray, - ZigClangType_IncompleteArray, - ZigClangType_VariableArray, + ZigClangType_Decayed, + ZigClangType_Decltype, + ZigClangType_DeducedTemplateSpecialization, + ZigClangType_DependentAddressSpace, + ZigClangType_DependentName, ZigClangType_DependentSizedArray, ZigClangType_DependentSizedExtVector, - ZigClangType_DependentAddressSpace, - ZigClangType_Vector, + ZigClangType_DependentTemplateSpecialization, ZigClangType_DependentVector, + ZigClangType_Elaborated, + ZigClangType_Enum, ZigClangType_ExtVector, - ZigClangType_FunctionProto, ZigClangType_FunctionNoProto, - ZigClangType_UnresolvedUsing, - ZigClangType_Paren, - ZigClangType_Typedef, - ZigClangType_MacroQualified, - ZigClangType_Adjusted, - ZigClangType_Decayed, - ZigClangType_TypeOfExpr, - ZigClangType_TypeOf, - ZigClangType_Decltype, - ZigClangType_UnaryTransform, - ZigClangType_Record, - ZigClangType_Enum, - ZigClangType_Elaborated, - ZigClangType_Attributed, - ZigClangType_TemplateTypeParm, - ZigClangType_SubstTemplateTypeParm, - ZigClangType_SubstTemplateTypeParmPack, - ZigClangType_TemplateSpecialization, - ZigClangType_Auto, - ZigClangType_DeducedTemplateSpecialization, + ZigClangType_FunctionProto, + ZigClangType_IncompleteArray, ZigClangType_InjectedClassName, - ZigClangType_DependentName, - ZigClangType_DependentTemplateSpecialization, - ZigClangType_PackExpansion, - ZigClangType_ObjCTypeParam, - ZigClangType_ObjCObject, + ZigClangType_LValueReference, + ZigClangType_MacroQualified, + ZigClangType_MemberPointer, ZigClangType_ObjCInterface, ZigClangType_ObjCObjectPointer, + ZigClangType_ObjCObject, + ZigClangType_ObjCTypeParam, + ZigClangType_PackExpansion, + ZigClangType_Paren, ZigClangType_Pipe, - ZigClangType_Atomic, + ZigClangType_Pointer, + ZigClangType_RValueReference, + ZigClangType_Record, + ZigClangType_SubstTemplateTypeParmPack, + ZigClangType_SubstTemplateTypeParm, + ZigClangType_TemplateSpecialization, + ZigClangType_TemplateTypeParm, + ZigClangType_TypeOfExpr, + ZigClangType_TypeOf, + ZigClangType_Typedef, + ZigClangType_UnaryTransform, + ZigClangType_UnresolvedUsing, + ZigClangType_VariableArray, + ZigClangType_Vector, }; enum ZigClangStmtClass { @@ -646,6 +646,18 @@ enum ZigClangBuiltinTypeKind { ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout, ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin, ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin, + ZigClangBuiltinTypeSveInt8, + ZigClangBuiltinTypeSveInt16, + ZigClangBuiltinTypeSveInt32, + ZigClangBuiltinTypeSveInt64, + ZigClangBuiltinTypeSveUint8, + ZigClangBuiltinTypeSveUint16, + ZigClangBuiltinTypeSveUint32, + ZigClangBuiltinTypeSveUint64, + ZigClangBuiltinTypeSveFloat16, + ZigClangBuiltinTypeSveFloat32, + ZigClangBuiltinTypeSveFloat64, + ZigClangBuiltinTypeSveBool, ZigClangBuiltinTypeVoid, ZigClangBuiltinTypeBool, ZigClangBuiltinTypeChar_U,