Commit c8ea8cf5df

Andrew Kelley <andrew@ziglang.org>
2020-07-25 01:49:57
update LLVM C++ API wrappers from llvm 10 to 11
1 parent cd91e17
Changed files (4)
src/zig_clang.cpp
@@ -288,6 +288,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
         case clang::Type::DependentSizedArray:
         case clang::Type::DependentSizedExtVector:
         case clang::Type::DependentAddressSpace:
+        case clang::Type::DependentExtInt:
         case clang::Type::Vector:
         case clang::Type::DependentVector:
         case clang::Type::ExtVector:
@@ -297,6 +298,8 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
         case clang::Type::Paren:
         case clang::Type::Typedef:
         case clang::Type::MacroQualified:
+        case clang::Type::ConstantMatrix:
+        case clang::Type::DependentSizedMatrix:
         case clang::Type::Adjusted:
         case clang::Type::Decayed:
         case clang::Type::TypeOfExpr:
@@ -306,6 +309,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
         case clang::Type::Record:
         case clang::Type::Enum:
         case clang::Type::Elaborated:
+        case clang::Type::ExtInt:
         case clang::Type::Attributed:
         case clang::Type::TemplateTypeParm:
         case clang::Type::SubstTemplateTypeParm:
@@ -342,15 +346,19 @@ static_assert((clang::Type::TypeClass)ZigClangType_Decltype == clang::Type::Decl
 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_DependentAddressSpace == clang::Type::DependentAddressSpace, "");
+static_assert((clang::Type::TypeClass)ZigClangType_DependentExtInt == clang::Type::DependentExtInt, "");
 static_assert((clang::Type::TypeClass)ZigClangType_DependentName == clang::Type::DependentName, "");
 static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedExtVector == clang::Type::DependentSizedExtVector, "");
 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_ExtInt == clang::Type::ExtInt, "");
 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_InjectedClassName == clang::Type::InjectedClassName, "");
 static_assert((clang::Type::TypeClass)ZigClangType_MacroQualified == clang::Type::MacroQualified, "");
+static_assert((clang::Type::TypeClass)ZigClangType_ConstantMatrix == clang::Type::ConstantMatrix, "");
+static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedMatrix == clang::Type::DependentSizedMatrix, "");
 static_assert((clang::Type::TypeClass)ZigClangType_MemberPointer == clang::Type::MemberPointer, "");
 static_assert((clang::Type::TypeClass)ZigClangType_ObjCObjectPointer == clang::Type::ObjCObjectPointer, "");
 static_assert((clang::Type::TypeClass)ZigClangType_ObjCObject == clang::Type::ObjCObject, "");
@@ -404,6 +412,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
         case ZigClangStmt_OMPCancelDirectiveClass:
         case ZigClangStmt_OMPCancellationPointDirectiveClass:
         case ZigClangStmt_OMPCriticalDirectiveClass:
+        case ZigClangStmt_OMPDepobjDirectiveClass:
         case ZigClangStmt_OMPFlushDirectiveClass:
         case ZigClangStmt_OMPDistributeDirectiveClass:
         case ZigClangStmt_OMPDistributeParallelForDirectiveClass:
@@ -435,6 +444,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
         case ZigClangStmt_OMPParallelDirectiveClass:
         case ZigClangStmt_OMPParallelMasterDirectiveClass:
         case ZigClangStmt_OMPParallelSectionsDirectiveClass:
+        case ZigClangStmt_OMPScanDirectiveClass:
         case ZigClangStmt_OMPSectionDirectiveClass:
         case ZigClangStmt_OMPSectionsDirectiveClass:
         case ZigClangStmt_OMPSingleDirectiveClass:
@@ -509,6 +519,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
         case ZigClangStmt_BuiltinBitCastExprClass:
         case ZigClangStmt_CStyleCastExprClass:
         case ZigClangStmt_CXXFunctionalCastExprClass:
+        case ZigClangStmt_CXXAddrspaceCastExprClass:
         case ZigClangStmt_CXXConstCastExprClass:
         case ZigClangStmt_CXXDynamicCastExprClass:
         case ZigClangStmt_CXXReinterpretCastExprClass:
@@ -544,9 +555,12 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
         case ZigClangStmt_MSPropertyRefExprClass:
         case ZigClangStmt_MSPropertySubscriptExprClass:
         case ZigClangStmt_MaterializeTemporaryExprClass:
+        case ZigClangStmt_MatrixSubscriptExprClass:
         case ZigClangStmt_MemberExprClass:
         case ZigClangStmt_NoInitExprClass:
         case ZigClangStmt_OMPArraySectionExprClass:
+        case ZigClangStmt_OMPArrayShapingExprClass:
+        case ZigClangStmt_OMPIteratorExprClass:
         case ZigClangStmt_ObjCArrayLiteralClass:
         case ZigClangStmt_ObjCAvailabilityCheckExprClass:
         case ZigClangStmt_ObjCBoolLiteralExprClass:
@@ -571,6 +585,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
         case ZigClangStmt_ParenListExprClass:
         case ZigClangStmt_PredefinedExprClass:
         case ZigClangStmt_PseudoObjectExprClass:
+        case ZigClangStmt_RecoveryExprClass:
         case ZigClangStmt_RequiresExprClass:
         case ZigClangStmt_ShuffleVectorExprClass:
         case ZigClangStmt_SizeOfPackExprClass:
@@ -590,7 +605,6 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
     }
 }
 
-//static_assert((clang::Stmt::StmtClass)ZigClangStmt_NoStmtClass == clang::Stmt::NoStmtClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_NoStmtClass == clang::Stmt::NoStmtClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_GCCAsmStmtClass == clang::Stmt::GCCAsmStmtClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSAsmStmtClass == clang::Stmt::MSAsmStmtClass, "");
@@ -616,6 +630,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPBarrierDirectiveClass == c
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancelDirectiveClass == clang::Stmt::OMPCancelDirectiveClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancellationPointDirectiveClass == clang::Stmt::OMPCancellationPointDirectiveClass, "");
 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_OMPFlushDirectiveClass == clang::Stmt::OMPFlushDirectiveClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeDirectiveClass == clang::Stmt::OMPDistributeDirectiveClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeParallelForDirectiveClass == clang::Stmt::OMPDistributeParallelForDirectiveClass, "");
@@ -647,6 +662,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPOrderedDirectiveClass == c
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelDirectiveClass == clang::Stmt::OMPParallelDirectiveClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelMasterDirectiveClass == clang::Stmt::OMPParallelMasterDirectiveClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelSectionsDirectiveClass == clang::Stmt::OMPParallelSectionsDirectiveClass, "");
+static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPScanDirectiveClass == clang::Stmt::OMPScanDirectiveClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPSectionDirectiveClass == clang::Stmt::OMPSectionDirectiveClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPSectionsDirectiveClass == clang::Stmt::OMPSectionsDirectiveClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPSingleDirectiveClass == clang::Stmt::OMPSingleDirectiveClass, "");
@@ -721,6 +737,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_UserDefinedLiteralClass == cl
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_BuiltinBitCastExprClass == clang::Stmt::BuiltinBitCastExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_CStyleCastExprClass == clang::Stmt::CStyleCastExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXFunctionalCastExprClass == clang::Stmt::CXXFunctionalCastExprClass, "");
+static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXAddrspaceCastExprClass == clang::Stmt::CXXAddrspaceCastExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXConstCastExprClass == clang::Stmt::CXXConstCastExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXDynamicCastExprClass == clang::Stmt::CXXDynamicCastExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXReinterpretCastExprClass == clang::Stmt::CXXReinterpretCastExprClass, "");
@@ -756,9 +773,12 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_LambdaExprClass == clang::Stm
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSPropertyRefExprClass == clang::Stmt::MSPropertyRefExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSPropertySubscriptExprClass == clang::Stmt::MSPropertySubscriptExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_MaterializeTemporaryExprClass == clang::Stmt::MaterializeTemporaryExprClass, "");
+static_assert((clang::Stmt::StmtClass)ZigClangStmt_MatrixSubscriptExprClass == clang::Stmt::MatrixSubscriptExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_MemberExprClass == clang::Stmt::MemberExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_NoInitExprClass == clang::Stmt::NoInitExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPArraySectionExprClass == clang::Stmt::OMPArraySectionExprClass, "");
+static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPArrayShapingExprClass == clang::Stmt::OMPArrayShapingExprClass, "");
+static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPIteratorExprClass == clang::Stmt::OMPIteratorExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCArrayLiteralClass == clang::Stmt::ObjCArrayLiteralClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAvailabilityCheckExprClass == clang::Stmt::ObjCAvailabilityCheckExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCBoolLiteralExprClass == clang::Stmt::ObjCBoolLiteralExprClass, "");
@@ -783,6 +803,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_ParenExprClass == clang::Stmt
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_ParenListExprClass == clang::Stmt::ParenListExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_PredefinedExprClass == clang::Stmt::PredefinedExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_PseudoObjectExprClass == clang::Stmt::PseudoObjectExprClass, "");
+static_assert((clang::Stmt::StmtClass)ZigClangStmt_RecoveryExprClass == clang::Stmt::RecoveryExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_RequiresExprClass == clang::Stmt::RequiresExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_ShuffleVectorExprClass == clang::Stmt::ShuffleVectorExprClass, "");
 static_assert((clang::Stmt::StmtClass)ZigClangStmt_SizeOfPackExprClass == clang::Stmt::SizeOfPackExprClass, "");
@@ -905,6 +926,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
         case clang::Decl::VarTemplatePartialSpecialization:
         case clang::Decl::EnumConstant:
         case clang::Decl::IndirectField:
+        case clang::Decl::MSGuid:
         case clang::Decl::OMPDeclareMapper:
         case clang::Decl::OMPDeclareReduction:
         case clang::Decl::UnresolvedUsingValue:
@@ -989,6 +1011,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclVarTemplateSpecialization == clang:
 static_assert((clang::Decl::Kind)ZigClangDeclVarTemplatePartialSpecialization == clang::Decl::VarTemplatePartialSpecialization, "");
 static_assert((clang::Decl::Kind)ZigClangDeclEnumConstant == clang::Decl::EnumConstant, "");
 static_assert((clang::Decl::Kind)ZigClangDeclIndirectField == clang::Decl::IndirectField, "");
+static_assert((clang::Decl::Kind)ZigClangDeclMSGuid == clang::Decl::MSGuid, "");
 static_assert((clang::Decl::Kind)ZigClangDeclOMPDeclareMapper == clang::Decl::OMPDeclareMapper, "");
 static_assert((clang::Decl::Kind)ZigClangDeclOMPDeclareReduction == clang::Decl::OMPDeclareReduction, "");
 static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingValue == clang::Decl::UnresolvedUsingValue, "");
@@ -1062,6 +1085,43 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
         case clang::BuiltinType::SveFloat16:
         case clang::BuiltinType::SveFloat32:
         case clang::BuiltinType::SveFloat64:
+        case clang::BuiltinType::SveBFloat16:
+        case clang::BuiltinType::SveInt8x2:
+        case clang::BuiltinType::SveInt16x2:
+        case clang::BuiltinType::SveInt32x2:
+        case clang::BuiltinType::SveInt64x2:
+        case clang::BuiltinType::SveUint8x2:
+        case clang::BuiltinType::SveUint16x2:
+        case clang::BuiltinType::SveUint32x2:
+        case clang::BuiltinType::SveUint64x2:
+        case clang::BuiltinType::SveFloat16x2:
+        case clang::BuiltinType::SveFloat32x2:
+        case clang::BuiltinType::SveFloat64x2:
+        case clang::BuiltinType::SveBFloat16x2:
+        case clang::BuiltinType::SveInt8x3:
+        case clang::BuiltinType::SveInt16x3:
+        case clang::BuiltinType::SveInt32x3:
+        case clang::BuiltinType::SveInt64x3:
+        case clang::BuiltinType::SveUint8x3:
+        case clang::BuiltinType::SveUint16x3:
+        case clang::BuiltinType::SveUint32x3:
+        case clang::BuiltinType::SveUint64x3:
+        case clang::BuiltinType::SveFloat16x3:
+        case clang::BuiltinType::SveFloat32x3:
+        case clang::BuiltinType::SveFloat64x3:
+        case clang::BuiltinType::SveBFloat16x3:
+        case clang::BuiltinType::SveInt8x4:
+        case clang::BuiltinType::SveInt16x4:
+        case clang::BuiltinType::SveInt32x4:
+        case clang::BuiltinType::SveInt64x4:
+        case clang::BuiltinType::SveUint8x4:
+        case clang::BuiltinType::SveUint16x4:
+        case clang::BuiltinType::SveUint32x4:
+        case clang::BuiltinType::SveUint64x4:
+        case clang::BuiltinType::SveFloat16x4:
+        case clang::BuiltinType::SveFloat32x4:
+        case clang::BuiltinType::SveFloat64x4:
+        case clang::BuiltinType::SveBFloat16x4:
         case clang::BuiltinType::SveBool:
         case clang::BuiltinType::Void:
         case clang::BuiltinType::Bool:
@@ -1113,6 +1173,7 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
         case clang::BuiltinType::Double:
         case clang::BuiltinType::LongDouble:
         case clang::BuiltinType::Float16:
+        case clang::BuiltinType::BFloat16:
         case clang::BuiltinType::Float128:
         case clang::BuiltinType::NullPtr:
         case clang::BuiltinType::ObjCId:
@@ -1130,7 +1191,10 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
         case clang::BuiltinType::UnknownAny:
         case clang::BuiltinType::BuiltinFn:
         case clang::BuiltinType::ARCUnbridgedCast:
+        case clang::BuiltinType::IncompleteMatrixIdx:
         case clang::BuiltinType::OMPArraySection:
+        case clang::BuiltinType::OMPArrayShaping:
+        case clang::BuiltinType::OMPIterator:
             break;
     }
 }
@@ -1194,6 +1258,43 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint64 == clang::B
 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)ZigClangBuiltinTypeSveBFloat16 == clang::BuiltinType::SveBFloat16, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8x2 == clang::BuiltinType::SveInt8x2, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16x2 == clang::BuiltinType::SveInt16x2, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32x2 == clang::BuiltinType::SveInt32x2, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt64x2 == clang::BuiltinType::SveInt64x2, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint8x2 == clang::BuiltinType::SveUint8x2, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint16x2 == clang::BuiltinType::SveUint16x2, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint32x2 == clang::BuiltinType::SveUint32x2, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint64x2 == clang::BuiltinType::SveUint64x2, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16x2 == clang::BuiltinType::SveFloat16x2, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32x2 == clang::BuiltinType::SveFloat32x2, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64x2 == clang::BuiltinType::SveFloat64x2, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x2 == clang::BuiltinType::SveBFloat16x2, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8x3 == clang::BuiltinType::SveInt8x3, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16x3 == clang::BuiltinType::SveInt16x3, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32x3 == clang::BuiltinType::SveInt32x3, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt64x3 == clang::BuiltinType::SveInt64x3, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint8x3 == clang::BuiltinType::SveUint8x3, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint16x3 == clang::BuiltinType::SveUint16x3, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint32x3 == clang::BuiltinType::SveUint32x3, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint64x3 == clang::BuiltinType::SveUint64x3, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16x3 == clang::BuiltinType::SveFloat16x3, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32x3 == clang::BuiltinType::SveFloat32x3, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64x3 == clang::BuiltinType::SveFloat64x3, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x3 == clang::BuiltinType::SveBFloat16x3, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8x4 == clang::BuiltinType::SveInt8x4, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16x4 == clang::BuiltinType::SveInt16x4, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32x4 == clang::BuiltinType::SveInt32x4, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt64x4 == clang::BuiltinType::SveInt64x4, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint8x4 == clang::BuiltinType::SveUint8x4, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint16x4 == clang::BuiltinType::SveUint16x4, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint32x4 == clang::BuiltinType::SveUint32x4, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint64x4 == clang::BuiltinType::SveUint64x4, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16x4 == clang::BuiltinType::SveFloat16x4, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32x4 == clang::BuiltinType::SveFloat32x4, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64x4 == clang::BuiltinType::SveFloat64x4, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x4 == clang::BuiltinType::SveBFloat16x4, "");
 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, "");
@@ -1245,6 +1346,7 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat == clang::Built
 static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeDouble == clang::BuiltinType::Double, "");
 static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLongDouble == clang::BuiltinType::LongDouble, "");
 static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat16 == clang::BuiltinType::Float16, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBFloat16 == clang::BuiltinType::BFloat16, "");
 static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat128 == clang::BuiltinType::Float128, "");
 static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeNullPtr == clang::BuiltinType::NullPtr, "");
 static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeObjCId == clang::BuiltinType::ObjCId, "");
@@ -1262,7 +1364,10 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypePseudoObject == clang
 static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUnknownAny == clang::BuiltinType::UnknownAny, "");
 static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBuiltinFn == clang::BuiltinType::BuiltinFn, "");
 static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeARCUnbridgedCast == clang::BuiltinType::ARCUnbridgedCast, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeIncompleteMatrixIdx == clang::BuiltinType::IncompleteMatrixIdx, "");
 static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOMPArraySection == clang::BuiltinType::OMPArraySection, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOMPArrayShaping == clang::BuiltinType::OMPArrayShaping, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOMPIterator == clang::BuiltinType::OMPIterator, "");
 
 void ZigClang_detect_enum_CallingConv(clang::CallingConv x) {
     switch (x) {
@@ -1326,21 +1431,25 @@ static_assert((clang::StorageClass)ZigClangStorageClass_PrivateExtern == clang::
 static_assert((clang::StorageClass)ZigClangStorageClass_Auto == clang::SC_Auto, "");
 static_assert((clang::StorageClass)ZigClangStorageClass_Register == clang::SC_Register, "");
 
-void ZigClang_detect_enum_RoundingMode(llvm::APFloat::roundingMode x) {
+void ZigClang_detect_enum_RoundingMode(llvm::RoundingMode x) {
     switch (x) {
-        case llvm::APFloat::rmNearestTiesToEven:
-        case llvm::APFloat::rmTowardPositive:
-        case llvm::APFloat::rmTowardNegative:
-        case llvm::APFloat::rmTowardZero:
-        case llvm::APFloat::rmNearestTiesToAway:
+        case llvm::RoundingMode::TowardZero:
+        case llvm::RoundingMode::NearestTiesToEven:
+        case llvm::RoundingMode::TowardPositive:
+        case llvm::RoundingMode::TowardNegative:
+        case llvm::RoundingMode::NearestTiesToAway:
+        case llvm::RoundingMode::Dynamic:
+        case llvm::RoundingMode::Invalid:
             break;
     }
 }
-static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_NearestTiesToEven == llvm::APFloat::rmNearestTiesToEven, "");
-static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_TowardPositive == llvm::APFloat::rmTowardPositive, "");
-static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_TowardNegative == llvm::APFloat::rmTowardNegative, "");
-static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_TowardZero == llvm::APFloat::rmTowardZero, "");
-static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_NearestTiesToAway == llvm::APFloat::rmNearestTiesToAway, "");
+static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_NearestTiesToEven == llvm::RoundingMode::NearestTiesToEven, "");
+static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_TowardPositive == llvm::RoundingMode::TowardPositive, "");
+static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_TowardNegative == llvm::RoundingMode::TowardNegative, "");
+static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_TowardZero == llvm::RoundingMode::TowardZero, "");
+static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_NearestTiesToAway == llvm::RoundingMode::NearestTiesToAway, "");
+static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_Dynamic == llvm::RoundingMode::Dynamic, "");
+static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_Invalid == llvm::RoundingMode::Invalid, "");
 
 void ZigClang_detect_enum_StringKind(clang::StringLiteral::StringKind x) {
     switch (x) {
src/zig_clang.h
@@ -236,15 +236,19 @@ enum ZigClangTypeClass {
     ZigClangType_Auto,
     ZigClangType_DeducedTemplateSpecialization,
     ZigClangType_DependentAddressSpace,
+    ZigClangType_DependentExtInt,
     ZigClangType_DependentName,
     ZigClangType_DependentSizedExtVector,
     ZigClangType_DependentTemplateSpecialization,
     ZigClangType_DependentVector,
     ZigClangType_Elaborated,
+    ZigClangType_ExtInt,
     ZigClangType_FunctionNoProto,
     ZigClangType_FunctionProto,
     ZigClangType_InjectedClassName,
     ZigClangType_MacroQualified,
+    ZigClangType_ConstantMatrix,
+    ZigClangType_DependentSizedMatrix,
     ZigClangType_MemberPointer,
     ZigClangType_ObjCObjectPointer,
     ZigClangType_ObjCObject,
@@ -297,6 +301,7 @@ enum ZigClangStmtClass {
     ZigClangStmt_OMPCancelDirectiveClass,
     ZigClangStmt_OMPCancellationPointDirectiveClass,
     ZigClangStmt_OMPCriticalDirectiveClass,
+    ZigClangStmt_OMPDepobjDirectiveClass,
     ZigClangStmt_OMPFlushDirectiveClass,
     ZigClangStmt_OMPDistributeDirectiveClass,
     ZigClangStmt_OMPDistributeParallelForDirectiveClass,
@@ -328,6 +333,7 @@ enum ZigClangStmtClass {
     ZigClangStmt_OMPParallelDirectiveClass,
     ZigClangStmt_OMPParallelMasterDirectiveClass,
     ZigClangStmt_OMPParallelSectionsDirectiveClass,
+    ZigClangStmt_OMPScanDirectiveClass,
     ZigClangStmt_OMPSectionDirectiveClass,
     ZigClangStmt_OMPSectionsDirectiveClass,
     ZigClangStmt_OMPSingleDirectiveClass,
@@ -402,6 +408,7 @@ enum ZigClangStmtClass {
     ZigClangStmt_BuiltinBitCastExprClass,
     ZigClangStmt_CStyleCastExprClass,
     ZigClangStmt_CXXFunctionalCastExprClass,
+    ZigClangStmt_CXXAddrspaceCastExprClass,
     ZigClangStmt_CXXConstCastExprClass,
     ZigClangStmt_CXXDynamicCastExprClass,
     ZigClangStmt_CXXReinterpretCastExprClass,
@@ -437,9 +444,12 @@ enum ZigClangStmtClass {
     ZigClangStmt_MSPropertyRefExprClass,
     ZigClangStmt_MSPropertySubscriptExprClass,
     ZigClangStmt_MaterializeTemporaryExprClass,
+    ZigClangStmt_MatrixSubscriptExprClass,
     ZigClangStmt_MemberExprClass,
     ZigClangStmt_NoInitExprClass,
     ZigClangStmt_OMPArraySectionExprClass,
+    ZigClangStmt_OMPArrayShapingExprClass,
+    ZigClangStmt_OMPIteratorExprClass,
     ZigClangStmt_ObjCArrayLiteralClass,
     ZigClangStmt_ObjCAvailabilityCheckExprClass,
     ZigClangStmt_ObjCBoolLiteralExprClass,
@@ -464,6 +474,7 @@ enum ZigClangStmtClass {
     ZigClangStmt_ParenListExprClass,
     ZigClangStmt_PredefinedExprClass,
     ZigClangStmt_PseudoObjectExprClass,
+    ZigClangStmt_RecoveryExprClass,
     ZigClangStmt_RequiresExprClass,
     ZigClangStmt_ShuffleVectorExprClass,
     ZigClangStmt_SizeOfPackExprClass,
@@ -614,6 +625,7 @@ enum ZigClangDeclKind {
     ZigClangDeclVarTemplatePartialSpecialization,
     ZigClangDeclEnumConstant,
     ZigClangDeclIndirectField,
+    ZigClangDeclMSGuid,
     ZigClangDeclOMPDeclareMapper,
     ZigClangDeclOMPDeclareReduction,
     ZigClangDeclUnresolvedUsingValue,
@@ -688,6 +700,43 @@ enum ZigClangBuiltinTypeKind {
     ZigClangBuiltinTypeSveFloat16,
     ZigClangBuiltinTypeSveFloat32,
     ZigClangBuiltinTypeSveFloat64,
+    ZigClangBuiltinTypeSveBFloat16,
+    ZigClangBuiltinTypeSveInt8x2,
+    ZigClangBuiltinTypeSveInt16x2,
+    ZigClangBuiltinTypeSveInt32x2,
+    ZigClangBuiltinTypeSveInt64x2,
+    ZigClangBuiltinTypeSveUint8x2,
+    ZigClangBuiltinTypeSveUint16x2,
+    ZigClangBuiltinTypeSveUint32x2,
+    ZigClangBuiltinTypeSveUint64x2,
+    ZigClangBuiltinTypeSveFloat16x2,
+    ZigClangBuiltinTypeSveFloat32x2,
+    ZigClangBuiltinTypeSveFloat64x2,
+    ZigClangBuiltinTypeSveBFloat16x2,
+    ZigClangBuiltinTypeSveInt8x3,
+    ZigClangBuiltinTypeSveInt16x3,
+    ZigClangBuiltinTypeSveInt32x3,
+    ZigClangBuiltinTypeSveInt64x3,
+    ZigClangBuiltinTypeSveUint8x3,
+    ZigClangBuiltinTypeSveUint16x3,
+    ZigClangBuiltinTypeSveUint32x3,
+    ZigClangBuiltinTypeSveUint64x3,
+    ZigClangBuiltinTypeSveFloat16x3,
+    ZigClangBuiltinTypeSveFloat32x3,
+    ZigClangBuiltinTypeSveFloat64x3,
+    ZigClangBuiltinTypeSveBFloat16x3,
+    ZigClangBuiltinTypeSveInt8x4,
+    ZigClangBuiltinTypeSveInt16x4,
+    ZigClangBuiltinTypeSveInt32x4,
+    ZigClangBuiltinTypeSveInt64x4,
+    ZigClangBuiltinTypeSveUint8x4,
+    ZigClangBuiltinTypeSveUint16x4,
+    ZigClangBuiltinTypeSveUint32x4,
+    ZigClangBuiltinTypeSveUint64x4,
+    ZigClangBuiltinTypeSveFloat16x4,
+    ZigClangBuiltinTypeSveFloat32x4,
+    ZigClangBuiltinTypeSveFloat64x4,
+    ZigClangBuiltinTypeSveBFloat16x4,
     ZigClangBuiltinTypeSveBool,
     ZigClangBuiltinTypeVoid,
     ZigClangBuiltinTypeBool,
@@ -739,6 +788,7 @@ enum ZigClangBuiltinTypeKind {
     ZigClangBuiltinTypeDouble,
     ZigClangBuiltinTypeLongDouble,
     ZigClangBuiltinTypeFloat16,
+    ZigClangBuiltinTypeBFloat16,
     ZigClangBuiltinTypeFloat128,
     ZigClangBuiltinTypeNullPtr,
     ZigClangBuiltinTypeObjCId,
@@ -756,7 +806,10 @@ enum ZigClangBuiltinTypeKind {
     ZigClangBuiltinTypeUnknownAny,
     ZigClangBuiltinTypeBuiltinFn,
     ZigClangBuiltinTypeARCUnbridgedCast,
+    ZigClangBuiltinTypeIncompleteMatrixIdx,
     ZigClangBuiltinTypeOMPArraySection,
+    ZigClangBuiltinTypeOMPArrayShaping,
+    ZigClangBuiltinTypeOMPIterator,
 };
 
 enum ZigClangCallingConv {
@@ -794,11 +847,14 @@ enum ZigClangStorageClass {
 
 /// IEEE-754R 4.3: Rounding-direction attributes.
 enum ZigClangAPFloat_roundingMode {
-    ZigClangAPFloat_roundingMode_NearestTiesToEven,
-    ZigClangAPFloat_roundingMode_TowardPositive,
-    ZigClangAPFloat_roundingMode_TowardNegative,
-    ZigClangAPFloat_roundingMode_TowardZero,
-    ZigClangAPFloat_roundingMode_NearestTiesToAway,
+    ZigClangAPFloat_roundingMode_TowardZero = 0,
+    ZigClangAPFloat_roundingMode_NearestTiesToEven = 1,
+    ZigClangAPFloat_roundingMode_TowardPositive = 2,
+    ZigClangAPFloat_roundingMode_TowardNegative = 3,
+    ZigClangAPFloat_roundingMode_NearestTiesToAway = 4,
+
+    ZigClangAPFloat_roundingMode_Dynamic = 7,
+    ZigClangAPFloat_roundingMode_Invalid = -1,
 };
 
 enum ZigClangStringLiteral_StringKind {
src/zig_llvm.cpp
@@ -39,6 +39,7 @@
 #include <llvm/Object/COFFModuleDefinition.h>
 #include <llvm/PassRegistry.h>
 #include <llvm/Support/CommandLine.h>
+#include <llvm/Support/Host.h>
 #include <llvm/Support/FileSystem.h>
 #include <llvm/Support/TargetParser.h>
 #include <llvm/Support/Timer.h>
@@ -308,7 +309,9 @@ ZIG_EXTERN_C LLVMTypeRef ZigLLVMTokenTypeInContext(LLVMContextRef context_ref) {
 LLVMValueRef ZigLLVMBuildCall(LLVMBuilderRef B, LLVMValueRef Fn, LLVMValueRef *Args,
         unsigned NumArgs, ZigLLVM_CallingConv CC, ZigLLVM_CallAttr attr, const char *Name)
 {
-    CallInst *call_inst = CallInst::Create(unwrap(Fn), makeArrayRef(unwrap(Args), NumArgs), Name);
+    Value *V = unwrap(Fn);
+    FunctionType *FnT = cast<FunctionType>(cast<PointerType>(V->getType())->getElementType());
+    CallInst *call_inst = CallInst::Create(FnT, V, makeArrayRef(unwrap(Args), NumArgs), Name);
     call_inst->setCallingConv(static_cast<CallingConv::ID>(CC));
     switch (attr) {
         case ZigLLVM_CallAttrAuto:
src-self-hosted/clang.zig
@@ -154,15 +154,19 @@ pub const ZigClangTypeClass = extern enum {
     Auto,
     DeducedTemplateSpecialization,
     DependentAddressSpace,
+    DependentExtInt,
     DependentName,
     DependentSizedExtVector,
     DependentTemplateSpecialization,
     DependentVector,
     Elaborated,
+    ExtInt,
     FunctionNoProto,
     FunctionProto,
     InjectedClassName,
     MacroQualified,
+    ConstantMatrix,
+    DependentSizedMatrix,
     MemberPointer,
     ObjCObjectPointer,
     ObjCObject,
@@ -215,6 +219,7 @@ const ZigClangStmtClass = extern enum {
     OMPCancelDirectiveClass,
     OMPCancellationPointDirectiveClass,
     OMPCriticalDirectiveClass,
+    OMPDepobjDirectiveClass,
     OMPFlushDirectiveClass,
     OMPDistributeDirectiveClass,
     OMPDistributeParallelForDirectiveClass,
@@ -246,6 +251,7 @@ const ZigClangStmtClass = extern enum {
     OMPParallelDirectiveClass,
     OMPParallelMasterDirectiveClass,
     OMPParallelSectionsDirectiveClass,
+    OMPScanDirectiveClass,
     OMPSectionDirectiveClass,
     OMPSectionsDirectiveClass,
     OMPSingleDirectiveClass,
@@ -320,6 +326,7 @@ const ZigClangStmtClass = extern enum {
     BuiltinBitCastExprClass,
     CStyleCastExprClass,
     CXXFunctionalCastExprClass,
+    CXXAddrspaceCastExprClass,
     CXXConstCastExprClass,
     CXXDynamicCastExprClass,
     CXXReinterpretCastExprClass,
@@ -355,9 +362,12 @@ const ZigClangStmtClass = extern enum {
     MSPropertyRefExprClass,
     MSPropertySubscriptExprClass,
     MaterializeTemporaryExprClass,
+    MatrixSubscriptExprClass,
     MemberExprClass,
     NoInitExprClass,
     OMPArraySectionExprClass,
+    OMPArrayShapingExprClass,
+    OMPIteratorExprClass,
     ObjCArrayLiteralClass,
     ObjCAvailabilityCheckExprClass,
     ObjCBoolLiteralExprClass,
@@ -382,6 +392,7 @@ const ZigClangStmtClass = extern enum {
     ParenListExprClass,
     PredefinedExprClass,
     PseudoObjectExprClass,
+    RecoveryExprClass,
     RequiresExprClass,
     ShuffleVectorExprClass,
     SizeOfPackExprClass,
@@ -549,6 +560,7 @@ pub const ZigClangDeclKind = extern enum {
     VarTemplatePartialSpecialization,
     EnumConstant,
     IndirectField,
+    MSGuid,
     OMPDeclareMapper,
     OMPDeclareReduction,
     UnresolvedUsingValue,
@@ -623,6 +635,43 @@ pub const ZigClangBuiltinTypeKind = extern enum {
     SveFloat16,
     SveFloat32,
     SveFloat64,
+    SveBFloat16,
+    SveInt8x2,
+    SveInt16x2,
+    SveInt32x2,
+    SveInt64x2,
+    SveUint8x2,
+    SveUint16x2,
+    SveUint32x2,
+    SveUint64x2,
+    SveFloat16x2,
+    SveFloat32x2,
+    SveFloat64x2,
+    SveBFloat16x2,
+    SveInt8x3,
+    SveInt16x3,
+    SveInt32x3,
+    SveInt64x3,
+    SveUint8x3,
+    SveUint16x3,
+    SveUint32x3,
+    SveUint64x3,
+    SveFloat16x3,
+    SveFloat32x3,
+    SveFloat64x3,
+    SveBFloat16x3,
+    SveInt8x4,
+    SveInt16x4,
+    SveInt32x4,
+    SveInt64x4,
+    SveUint8x4,
+    SveUint16x4,
+    SveUint32x4,
+    SveUint64x4,
+    SveFloat16x4,
+    SveFloat32x4,
+    SveFloat64x4,
+    SveBFloat16x4,
     SveBool,
     Void,
     Bool,
@@ -674,6 +723,7 @@ pub const ZigClangBuiltinTypeKind = extern enum {
     Double,
     LongDouble,
     Float16,
+    BFloat16,
     Float128,
     NullPtr,
     ObjCId,
@@ -691,7 +741,10 @@ pub const ZigClangBuiltinTypeKind = extern enum {
     UnknownAny,
     BuiltinFn,
     ARCUnbridgedCast,
+    IncompleteMatrixIdx,
     OMPArraySection,
+    OMPArrayShaping,
+    OMPIterator,
 };
 
 pub const ZigClangCallingConv = extern enum {
@@ -724,12 +777,14 @@ pub const ZigClangStorageClass = extern enum {
     Register,
 };
 
-pub const ZigClangAPFloat_roundingMode = extern enum {
-    NearestTiesToEven,
-    TowardPositive,
-    TowardNegative,
-    TowardZero,
-    NearestTiesToAway,
+pub const ZigClangAPFloat_roundingMode = extern enum(i8) {
+    TowardZero = 0,
+    NearestTiesToEven = 1,
+    TowardPositive = 2,
+    TowardNegative = 3,
+    NearestTiesToAway = 4,
+    Dynamic = 7,
+    Invalid = -1,
 };
 
 pub const ZigClangStringLiteral_StringKind = extern enum {