Commit 6439759298

LemonBoy <thatlemon@gmail.com>
2019-10-12 16:15:58
Add/shuffle several enum members to match Clang's API
1 parent 8a36064
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;
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, "");
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,