authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-07-24 16:49:57-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-07-24 16:49:57-07:00
logc8ea8cf5df8261995b1e451085e39cd612c9e038
tree48904bad6f45623c4eec6f28081619aca1490894
parentcd91e17b7384fe857c5cf847b106cd0f98cb4d6a

update LLVM C++ API wrappers from llvm 10 to 11


4 files changed, 247 insertions(+), 24 deletions(-)

src-self-hosted/clang.zig+61-6
......@@ -154,15 +154,19 @@ pub const ZigClangTypeClass = extern enum {
154154 Auto,
155155 DeducedTemplateSpecialization,
156156 DependentAddressSpace,
157 DependentExtInt,
157158 DependentName,
158159 DependentSizedExtVector,
159160 DependentTemplateSpecialization,
160161 DependentVector,
161162 Elaborated,
163 ExtInt,
162164 FunctionNoProto,
163165 FunctionProto,
164166 InjectedClassName,
165167 MacroQualified,
168 ConstantMatrix,
169 DependentSizedMatrix,
166170 MemberPointer,
167171 ObjCObjectPointer,
168172 ObjCObject,
......@@ -215,6 +219,7 @@ const ZigClangStmtClass = extern enum {
215219 OMPCancelDirectiveClass,
216220 OMPCancellationPointDirectiveClass,
217221 OMPCriticalDirectiveClass,
222 OMPDepobjDirectiveClass,
218223 OMPFlushDirectiveClass,
219224 OMPDistributeDirectiveClass,
220225 OMPDistributeParallelForDirectiveClass,
......@@ -246,6 +251,7 @@ const ZigClangStmtClass = extern enum {
246251 OMPParallelDirectiveClass,
247252 OMPParallelMasterDirectiveClass,
248253 OMPParallelSectionsDirectiveClass,
254 OMPScanDirectiveClass,
249255 OMPSectionDirectiveClass,
250256 OMPSectionsDirectiveClass,
251257 OMPSingleDirectiveClass,
......@@ -320,6 +326,7 @@ const ZigClangStmtClass = extern enum {
320326 BuiltinBitCastExprClass,
321327 CStyleCastExprClass,
322328 CXXFunctionalCastExprClass,
329 CXXAddrspaceCastExprClass,
323330 CXXConstCastExprClass,
324331 CXXDynamicCastExprClass,
325332 CXXReinterpretCastExprClass,
......@@ -355,9 +362,12 @@ const ZigClangStmtClass = extern enum {
355362 MSPropertyRefExprClass,
356363 MSPropertySubscriptExprClass,
357364 MaterializeTemporaryExprClass,
365 MatrixSubscriptExprClass,
358366 MemberExprClass,
359367 NoInitExprClass,
360368 OMPArraySectionExprClass,
369 OMPArrayShapingExprClass,
370 OMPIteratorExprClass,
361371 ObjCArrayLiteralClass,
362372 ObjCAvailabilityCheckExprClass,
363373 ObjCBoolLiteralExprClass,
......@@ -382,6 +392,7 @@ const ZigClangStmtClass = extern enum {
382392 ParenListExprClass,
383393 PredefinedExprClass,
384394 PseudoObjectExprClass,
395 RecoveryExprClass,
385396 RequiresExprClass,
386397 ShuffleVectorExprClass,
387398 SizeOfPackExprClass,
......@@ -549,6 +560,7 @@ pub const ZigClangDeclKind = extern enum {
549560 VarTemplatePartialSpecialization,
550561 EnumConstant,
551562 IndirectField,
563 MSGuid,
552564 OMPDeclareMapper,
553565 OMPDeclareReduction,
554566 UnresolvedUsingValue,
......@@ -623,6 +635,43 @@ pub const ZigClangBuiltinTypeKind = extern enum {
623635 SveFloat16,
624636 SveFloat32,
625637 SveFloat64,
638 SveBFloat16,
639 SveInt8x2,
640 SveInt16x2,
641 SveInt32x2,
642 SveInt64x2,
643 SveUint8x2,
644 SveUint16x2,
645 SveUint32x2,
646 SveUint64x2,
647 SveFloat16x2,
648 SveFloat32x2,
649 SveFloat64x2,
650 SveBFloat16x2,
651 SveInt8x3,
652 SveInt16x3,
653 SveInt32x3,
654 SveInt64x3,
655 SveUint8x3,
656 SveUint16x3,
657 SveUint32x3,
658 SveUint64x3,
659 SveFloat16x3,
660 SveFloat32x3,
661 SveFloat64x3,
662 SveBFloat16x3,
663 SveInt8x4,
664 SveInt16x4,
665 SveInt32x4,
666 SveInt64x4,
667 SveUint8x4,
668 SveUint16x4,
669 SveUint32x4,
670 SveUint64x4,
671 SveFloat16x4,
672 SveFloat32x4,
673 SveFloat64x4,
674 SveBFloat16x4,
626675 SveBool,
627676 Void,
628677 Bool,
......@@ -674,6 +723,7 @@ pub const ZigClangBuiltinTypeKind = extern enum {
674723 Double,
675724 LongDouble,
676725 Float16,
726 BFloat16,
677727 Float128,
678728 NullPtr,
679729 ObjCId,
......@@ -691,7 +741,10 @@ pub const ZigClangBuiltinTypeKind = extern enum {
691741 UnknownAny,
692742 BuiltinFn,
693743 ARCUnbridgedCast,
744 IncompleteMatrixIdx,
694745 OMPArraySection,
746 OMPArrayShaping,
747 OMPIterator,
695748};
696749
697750pub const ZigClangCallingConv = extern enum {
......@@ -724,12 +777,14 @@ pub const ZigClangStorageClass = extern enum {
724777 Register,
725778};
726779
727pub const ZigClangAPFloat_roundingMode = extern enum {
728 NearestTiesToEven,
729 TowardPositive,
730 TowardNegative,
731 TowardZero,
732 NearestTiesToAway,
780pub const ZigClangAPFloat_roundingMode = extern enum(i8) {
781 TowardZero = 0,
782 NearestTiesToEven = 1,
783 TowardPositive = 2,
784 TowardNegative = 3,
785 NearestTiesToAway = 4,
786 Dynamic = 7,
787 Invalid = -1,
733788};
734789
735790pub const ZigClangStringLiteral_StringKind = extern enum {
src/zig_clang.cpp+121-12
......@@ -288,6 +288,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
288288 case clang::Type::DependentSizedArray:
289289 case clang::Type::DependentSizedExtVector:
290290 case clang::Type::DependentAddressSpace:
291 case clang::Type::DependentExtInt:
291292 case clang::Type::Vector:
292293 case clang::Type::DependentVector:
293294 case clang::Type::ExtVector:
......@@ -297,6 +298,8 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
297298 case clang::Type::Paren:
298299 case clang::Type::Typedef:
299300 case clang::Type::MacroQualified:
301 case clang::Type::ConstantMatrix:
302 case clang::Type::DependentSizedMatrix:
300303 case clang::Type::Adjusted:
301304 case clang::Type::Decayed:
302305 case clang::Type::TypeOfExpr:
......@@ -306,6 +309,7 @@ void ZigClang_detect_enum_TypeClass(clang::Type::TypeClass ty) {
306309 case clang::Type::Record:
307310 case clang::Type::Enum:
308311 case clang::Type::Elaborated:
312 case clang::Type::ExtInt:
309313 case clang::Type::Attributed:
310314 case clang::Type::TemplateTypeParm:
311315 case clang::Type::SubstTemplateTypeParm:
......@@ -342,15 +346,19 @@ static_assert((clang::Type::TypeClass)ZigClangType_Decltype == clang::Type::Decl
342346static_assert((clang::Type::TypeClass)ZigClangType_Auto == clang::Type::Auto, "");
343347static_assert((clang::Type::TypeClass)ZigClangType_DeducedTemplateSpecialization == clang::Type::DeducedTemplateSpecialization, "");
344348static_assert((clang::Type::TypeClass)ZigClangType_DependentAddressSpace == clang::Type::DependentAddressSpace, "");
349static_assert((clang::Type::TypeClass)ZigClangType_DependentExtInt == clang::Type::DependentExtInt, "");
345350static_assert((clang::Type::TypeClass)ZigClangType_DependentName == clang::Type::DependentName, "");
346351static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedExtVector == clang::Type::DependentSizedExtVector, "");
347352static_assert((clang::Type::TypeClass)ZigClangType_DependentTemplateSpecialization == clang::Type::DependentTemplateSpecialization, "");
348353static_assert((clang::Type::TypeClass)ZigClangType_DependentVector == clang::Type::DependentVector, "");
349354static_assert((clang::Type::TypeClass)ZigClangType_Elaborated == clang::Type::Elaborated, "");
355static_assert((clang::Type::TypeClass)ZigClangType_ExtInt == clang::Type::ExtInt, "");
350356static_assert((clang::Type::TypeClass)ZigClangType_FunctionNoProto == clang::Type::FunctionNoProto, "");
351357static_assert((clang::Type::TypeClass)ZigClangType_FunctionProto == clang::Type::FunctionProto, "");
352358static_assert((clang::Type::TypeClass)ZigClangType_InjectedClassName == clang::Type::InjectedClassName, "");
353359static_assert((clang::Type::TypeClass)ZigClangType_MacroQualified == clang::Type::MacroQualified, "");
360static_assert((clang::Type::TypeClass)ZigClangType_ConstantMatrix == clang::Type::ConstantMatrix, "");
361static_assert((clang::Type::TypeClass)ZigClangType_DependentSizedMatrix == clang::Type::DependentSizedMatrix, "");
354362static_assert((clang::Type::TypeClass)ZigClangType_MemberPointer == clang::Type::MemberPointer, "");
355363static_assert((clang::Type::TypeClass)ZigClangType_ObjCObjectPointer == clang::Type::ObjCObjectPointer, "");
356364static_assert((clang::Type::TypeClass)ZigClangType_ObjCObject == clang::Type::ObjCObject, "");
......@@ -404,6 +412,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
404412 case ZigClangStmt_OMPCancelDirectiveClass:
405413 case ZigClangStmt_OMPCancellationPointDirectiveClass:
406414 case ZigClangStmt_OMPCriticalDirectiveClass:
415 case ZigClangStmt_OMPDepobjDirectiveClass:
407416 case ZigClangStmt_OMPFlushDirectiveClass:
408417 case ZigClangStmt_OMPDistributeDirectiveClass:
409418 case ZigClangStmt_OMPDistributeParallelForDirectiveClass:
......@@ -435,6 +444,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
435444 case ZigClangStmt_OMPParallelDirectiveClass:
436445 case ZigClangStmt_OMPParallelMasterDirectiveClass:
437446 case ZigClangStmt_OMPParallelSectionsDirectiveClass:
447 case ZigClangStmt_OMPScanDirectiveClass:
438448 case ZigClangStmt_OMPSectionDirectiveClass:
439449 case ZigClangStmt_OMPSectionsDirectiveClass:
440450 case ZigClangStmt_OMPSingleDirectiveClass:
......@@ -509,6 +519,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
509519 case ZigClangStmt_BuiltinBitCastExprClass:
510520 case ZigClangStmt_CStyleCastExprClass:
511521 case ZigClangStmt_CXXFunctionalCastExprClass:
522 case ZigClangStmt_CXXAddrspaceCastExprClass:
512523 case ZigClangStmt_CXXConstCastExprClass:
513524 case ZigClangStmt_CXXDynamicCastExprClass:
514525 case ZigClangStmt_CXXReinterpretCastExprClass:
......@@ -544,9 +555,12 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
544555 case ZigClangStmt_MSPropertyRefExprClass:
545556 case ZigClangStmt_MSPropertySubscriptExprClass:
546557 case ZigClangStmt_MaterializeTemporaryExprClass:
558 case ZigClangStmt_MatrixSubscriptExprClass:
547559 case ZigClangStmt_MemberExprClass:
548560 case ZigClangStmt_NoInitExprClass:
549561 case ZigClangStmt_OMPArraySectionExprClass:
562 case ZigClangStmt_OMPArrayShapingExprClass:
563 case ZigClangStmt_OMPIteratorExprClass:
550564 case ZigClangStmt_ObjCArrayLiteralClass:
551565 case ZigClangStmt_ObjCAvailabilityCheckExprClass:
552566 case ZigClangStmt_ObjCBoolLiteralExprClass:
......@@ -571,6 +585,7 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
571585 case ZigClangStmt_ParenListExprClass:
572586 case ZigClangStmt_PredefinedExprClass:
573587 case ZigClangStmt_PseudoObjectExprClass:
588 case ZigClangStmt_RecoveryExprClass:
574589 case ZigClangStmt_RequiresExprClass:
575590 case ZigClangStmt_ShuffleVectorExprClass:
576591 case ZigClangStmt_SizeOfPackExprClass:
......@@ -590,7 +605,6 @@ void ZigClang_detect_enum_StmtClass(clang::Stmt::StmtClass x) {
590605 }
591606}
592607
593//static_assert((clang::Stmt::StmtClass)ZigClangStmt_NoStmtClass == clang::Stmt::NoStmtClass, "");
594608static_assert((clang::Stmt::StmtClass)ZigClangStmt_NoStmtClass == clang::Stmt::NoStmtClass, "");
595609static_assert((clang::Stmt::StmtClass)ZigClangStmt_GCCAsmStmtClass == clang::Stmt::GCCAsmStmtClass, "");
596610static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSAsmStmtClass == clang::Stmt::MSAsmStmtClass, "");
......@@ -616,6 +630,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPBarrierDirectiveClass == c
616630static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancelDirectiveClass == clang::Stmt::OMPCancelDirectiveClass, "");
617631static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCancellationPointDirectiveClass == clang::Stmt::OMPCancellationPointDirectiveClass, "");
618632static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPCriticalDirectiveClass == clang::Stmt::OMPCriticalDirectiveClass, "");
633static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDepobjDirectiveClass == clang::Stmt::OMPDepobjDirectiveClass, "");
619634static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPFlushDirectiveClass == clang::Stmt::OMPFlushDirectiveClass, "");
620635static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeDirectiveClass == clang::Stmt::OMPDistributeDirectiveClass, "");
621636static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPDistributeParallelForDirectiveClass == clang::Stmt::OMPDistributeParallelForDirectiveClass, "");
......@@ -647,6 +662,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPOrderedDirectiveClass == c
647662static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelDirectiveClass == clang::Stmt::OMPParallelDirectiveClass, "");
648663static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelMasterDirectiveClass == clang::Stmt::OMPParallelMasterDirectiveClass, "");
649664static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPParallelSectionsDirectiveClass == clang::Stmt::OMPParallelSectionsDirectiveClass, "");
665static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPScanDirectiveClass == clang::Stmt::OMPScanDirectiveClass, "");
650666static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPSectionDirectiveClass == clang::Stmt::OMPSectionDirectiveClass, "");
651667static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPSectionsDirectiveClass == clang::Stmt::OMPSectionsDirectiveClass, "");
652668static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPSingleDirectiveClass == clang::Stmt::OMPSingleDirectiveClass, "");
......@@ -721,6 +737,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_UserDefinedLiteralClass == cl
721737static_assert((clang::Stmt::StmtClass)ZigClangStmt_BuiltinBitCastExprClass == clang::Stmt::BuiltinBitCastExprClass, "");
722738static_assert((clang::Stmt::StmtClass)ZigClangStmt_CStyleCastExprClass == clang::Stmt::CStyleCastExprClass, "");
723739static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXFunctionalCastExprClass == clang::Stmt::CXXFunctionalCastExprClass, "");
740static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXAddrspaceCastExprClass == clang::Stmt::CXXAddrspaceCastExprClass, "");
724741static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXConstCastExprClass == clang::Stmt::CXXConstCastExprClass, "");
725742static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXDynamicCastExprClass == clang::Stmt::CXXDynamicCastExprClass, "");
726743static_assert((clang::Stmt::StmtClass)ZigClangStmt_CXXReinterpretCastExprClass == clang::Stmt::CXXReinterpretCastExprClass, "");
......@@ -756,9 +773,12 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_LambdaExprClass == clang::Stm
756773static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSPropertyRefExprClass == clang::Stmt::MSPropertyRefExprClass, "");
757774static_assert((clang::Stmt::StmtClass)ZigClangStmt_MSPropertySubscriptExprClass == clang::Stmt::MSPropertySubscriptExprClass, "");
758775static_assert((clang::Stmt::StmtClass)ZigClangStmt_MaterializeTemporaryExprClass == clang::Stmt::MaterializeTemporaryExprClass, "");
776static_assert((clang::Stmt::StmtClass)ZigClangStmt_MatrixSubscriptExprClass == clang::Stmt::MatrixSubscriptExprClass, "");
759777static_assert((clang::Stmt::StmtClass)ZigClangStmt_MemberExprClass == clang::Stmt::MemberExprClass, "");
760778static_assert((clang::Stmt::StmtClass)ZigClangStmt_NoInitExprClass == clang::Stmt::NoInitExprClass, "");
761779static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPArraySectionExprClass == clang::Stmt::OMPArraySectionExprClass, "");
780static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPArrayShapingExprClass == clang::Stmt::OMPArrayShapingExprClass, "");
781static_assert((clang::Stmt::StmtClass)ZigClangStmt_OMPIteratorExprClass == clang::Stmt::OMPIteratorExprClass, "");
762782static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCArrayLiteralClass == clang::Stmt::ObjCArrayLiteralClass, "");
763783static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCAvailabilityCheckExprClass == clang::Stmt::ObjCAvailabilityCheckExprClass, "");
764784static_assert((clang::Stmt::StmtClass)ZigClangStmt_ObjCBoolLiteralExprClass == clang::Stmt::ObjCBoolLiteralExprClass, "");
......@@ -783,6 +803,7 @@ static_assert((clang::Stmt::StmtClass)ZigClangStmt_ParenExprClass == clang::Stmt
783803static_assert((clang::Stmt::StmtClass)ZigClangStmt_ParenListExprClass == clang::Stmt::ParenListExprClass, "");
784804static_assert((clang::Stmt::StmtClass)ZigClangStmt_PredefinedExprClass == clang::Stmt::PredefinedExprClass, "");
785805static_assert((clang::Stmt::StmtClass)ZigClangStmt_PseudoObjectExprClass == clang::Stmt::PseudoObjectExprClass, "");
806static_assert((clang::Stmt::StmtClass)ZigClangStmt_RecoveryExprClass == clang::Stmt::RecoveryExprClass, "");
786807static_assert((clang::Stmt::StmtClass)ZigClangStmt_RequiresExprClass == clang::Stmt::RequiresExprClass, "");
787808static_assert((clang::Stmt::StmtClass)ZigClangStmt_ShuffleVectorExprClass == clang::Stmt::ShuffleVectorExprClass, "");
788809static_assert((clang::Stmt::StmtClass)ZigClangStmt_SizeOfPackExprClass == clang::Stmt::SizeOfPackExprClass, "");
......@@ -905,6 +926,7 @@ void ZigClang_detect_enum_DeclKind(clang::Decl::Kind x) {
905926 case clang::Decl::VarTemplatePartialSpecialization:
906927 case clang::Decl::EnumConstant:
907928 case clang::Decl::IndirectField:
929 case clang::Decl::MSGuid:
908930 case clang::Decl::OMPDeclareMapper:
909931 case clang::Decl::OMPDeclareReduction:
910932 case clang::Decl::UnresolvedUsingValue:
......@@ -989,6 +1011,7 @@ static_assert((clang::Decl::Kind)ZigClangDeclVarTemplateSpecialization == clang:
9891011static_assert((clang::Decl::Kind)ZigClangDeclVarTemplatePartialSpecialization == clang::Decl::VarTemplatePartialSpecialization, "");
9901012static_assert((clang::Decl::Kind)ZigClangDeclEnumConstant == clang::Decl::EnumConstant, "");
9911013static_assert((clang::Decl::Kind)ZigClangDeclIndirectField == clang::Decl::IndirectField, "");
1014static_assert((clang::Decl::Kind)ZigClangDeclMSGuid == clang::Decl::MSGuid, "");
9921015static_assert((clang::Decl::Kind)ZigClangDeclOMPDeclareMapper == clang::Decl::OMPDeclareMapper, "");
9931016static_assert((clang::Decl::Kind)ZigClangDeclOMPDeclareReduction == clang::Decl::OMPDeclareReduction, "");
9941017static_assert((clang::Decl::Kind)ZigClangDeclUnresolvedUsingValue == clang::Decl::UnresolvedUsingValue, "");
......@@ -1062,6 +1085,43 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
10621085 case clang::BuiltinType::SveFloat16:
10631086 case clang::BuiltinType::SveFloat32:
10641087 case clang::BuiltinType::SveFloat64:
1088 case clang::BuiltinType::SveBFloat16:
1089 case clang::BuiltinType::SveInt8x2:
1090 case clang::BuiltinType::SveInt16x2:
1091 case clang::BuiltinType::SveInt32x2:
1092 case clang::BuiltinType::SveInt64x2:
1093 case clang::BuiltinType::SveUint8x2:
1094 case clang::BuiltinType::SveUint16x2:
1095 case clang::BuiltinType::SveUint32x2:
1096 case clang::BuiltinType::SveUint64x2:
1097 case clang::BuiltinType::SveFloat16x2:
1098 case clang::BuiltinType::SveFloat32x2:
1099 case clang::BuiltinType::SveFloat64x2:
1100 case clang::BuiltinType::SveBFloat16x2:
1101 case clang::BuiltinType::SveInt8x3:
1102 case clang::BuiltinType::SveInt16x3:
1103 case clang::BuiltinType::SveInt32x3:
1104 case clang::BuiltinType::SveInt64x3:
1105 case clang::BuiltinType::SveUint8x3:
1106 case clang::BuiltinType::SveUint16x3:
1107 case clang::BuiltinType::SveUint32x3:
1108 case clang::BuiltinType::SveUint64x3:
1109 case clang::BuiltinType::SveFloat16x3:
1110 case clang::BuiltinType::SveFloat32x3:
1111 case clang::BuiltinType::SveFloat64x3:
1112 case clang::BuiltinType::SveBFloat16x3:
1113 case clang::BuiltinType::SveInt8x4:
1114 case clang::BuiltinType::SveInt16x4:
1115 case clang::BuiltinType::SveInt32x4:
1116 case clang::BuiltinType::SveInt64x4:
1117 case clang::BuiltinType::SveUint8x4:
1118 case clang::BuiltinType::SveUint16x4:
1119 case clang::BuiltinType::SveUint32x4:
1120 case clang::BuiltinType::SveUint64x4:
1121 case clang::BuiltinType::SveFloat16x4:
1122 case clang::BuiltinType::SveFloat32x4:
1123 case clang::BuiltinType::SveFloat64x4:
1124 case clang::BuiltinType::SveBFloat16x4:
10651125 case clang::BuiltinType::SveBool:
10661126 case clang::BuiltinType::Void:
10671127 case clang::BuiltinType::Bool:
......@@ -1113,6 +1173,7 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
11131173 case clang::BuiltinType::Double:
11141174 case clang::BuiltinType::LongDouble:
11151175 case clang::BuiltinType::Float16:
1176 case clang::BuiltinType::BFloat16:
11161177 case clang::BuiltinType::Float128:
11171178 case clang::BuiltinType::NullPtr:
11181179 case clang::BuiltinType::ObjCId:
......@@ -1130,7 +1191,10 @@ void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
11301191 case clang::BuiltinType::UnknownAny:
11311192 case clang::BuiltinType::BuiltinFn:
11321193 case clang::BuiltinType::ARCUnbridgedCast:
1194 case clang::BuiltinType::IncompleteMatrixIdx:
11331195 case clang::BuiltinType::OMPArraySection:
1196 case clang::BuiltinType::OMPArrayShaping:
1197 case clang::BuiltinType::OMPIterator:
11341198 break;
11351199 }
11361200}
......@@ -1194,6 +1258,43 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint64 == clang::B
11941258static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16 == clang::BuiltinType::SveFloat16, "");
11951259static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32 == clang::BuiltinType::SveFloat32, "");
11961260static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64 == clang::BuiltinType::SveFloat64, "");
1261static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16 == clang::BuiltinType::SveBFloat16, "");
1262static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8x2 == clang::BuiltinType::SveInt8x2, "");
1263static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16x2 == clang::BuiltinType::SveInt16x2, "");
1264static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32x2 == clang::BuiltinType::SveInt32x2, "");
1265static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt64x2 == clang::BuiltinType::SveInt64x2, "");
1266static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint8x2 == clang::BuiltinType::SveUint8x2, "");
1267static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint16x2 == clang::BuiltinType::SveUint16x2, "");
1268static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint32x2 == clang::BuiltinType::SveUint32x2, "");
1269static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint64x2 == clang::BuiltinType::SveUint64x2, "");
1270static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16x2 == clang::BuiltinType::SveFloat16x2, "");
1271static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32x2 == clang::BuiltinType::SveFloat32x2, "");
1272static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64x2 == clang::BuiltinType::SveFloat64x2, "");
1273static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x2 == clang::BuiltinType::SveBFloat16x2, "");
1274static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8x3 == clang::BuiltinType::SveInt8x3, "");
1275static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16x3 == clang::BuiltinType::SveInt16x3, "");
1276static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32x3 == clang::BuiltinType::SveInt32x3, "");
1277static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt64x3 == clang::BuiltinType::SveInt64x3, "");
1278static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint8x3 == clang::BuiltinType::SveUint8x3, "");
1279static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint16x3 == clang::BuiltinType::SveUint16x3, "");
1280static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint32x3 == clang::BuiltinType::SveUint32x3, "");
1281static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint64x3 == clang::BuiltinType::SveUint64x3, "");
1282static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16x3 == clang::BuiltinType::SveFloat16x3, "");
1283static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32x3 == clang::BuiltinType::SveFloat32x3, "");
1284static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64x3 == clang::BuiltinType::SveFloat64x3, "");
1285static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x3 == clang::BuiltinType::SveBFloat16x3, "");
1286static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt8x4 == clang::BuiltinType::SveInt8x4, "");
1287static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt16x4 == clang::BuiltinType::SveInt16x4, "");
1288static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt32x4 == clang::BuiltinType::SveInt32x4, "");
1289static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveInt64x4 == clang::BuiltinType::SveInt64x4, "");
1290static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint8x4 == clang::BuiltinType::SveUint8x4, "");
1291static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint16x4 == clang::BuiltinType::SveUint16x4, "");
1292static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint32x4 == clang::BuiltinType::SveUint32x4, "");
1293static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveUint64x4 == clang::BuiltinType::SveUint64x4, "");
1294static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat16x4 == clang::BuiltinType::SveFloat16x4, "");
1295static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat32x4 == clang::BuiltinType::SveFloat32x4, "");
1296static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveFloat64x4 == clang::BuiltinType::SveFloat64x4, "");
1297static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBFloat16x4 == clang::BuiltinType::SveBFloat16x4, "");
11971298static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSveBool == clang::BuiltinType::SveBool, "");
11981299static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, "");
11991300static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, "");
......@@ -1245,6 +1346,7 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat == clang::Built
12451346static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeDouble == clang::BuiltinType::Double, "");
12461347static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLongDouble == clang::BuiltinType::LongDouble, "");
12471348static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat16 == clang::BuiltinType::Float16, "");
1349static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBFloat16 == clang::BuiltinType::BFloat16, "");
12481350static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat128 == clang::BuiltinType::Float128, "");
12491351static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeNullPtr == clang::BuiltinType::NullPtr, "");
12501352static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeObjCId == clang::BuiltinType::ObjCId, "");
......@@ -1262,7 +1364,10 @@ static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypePseudoObject == clang
12621364static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUnknownAny == clang::BuiltinType::UnknownAny, "");
12631365static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBuiltinFn == clang::BuiltinType::BuiltinFn, "");
12641366static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeARCUnbridgedCast == clang::BuiltinType::ARCUnbridgedCast, "");
1367static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeIncompleteMatrixIdx == clang::BuiltinType::IncompleteMatrixIdx, "");
12651368static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOMPArraySection == clang::BuiltinType::OMPArraySection, "");
1369static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOMPArrayShaping == clang::BuiltinType::OMPArrayShaping, "");
1370static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOMPIterator == clang::BuiltinType::OMPIterator, "");
12661371
12671372void ZigClang_detect_enum_CallingConv(clang::CallingConv x) {
12681373 switch (x) {
......@@ -1326,21 +1431,25 @@ static_assert((clang::StorageClass)ZigClangStorageClass_PrivateExtern == clang::
13261431static_assert((clang::StorageClass)ZigClangStorageClass_Auto == clang::SC_Auto, "");
13271432static_assert((clang::StorageClass)ZigClangStorageClass_Register == clang::SC_Register, "");
13281433
1329void ZigClang_detect_enum_RoundingMode(llvm::APFloat::roundingMode x) {
1434void ZigClang_detect_enum_RoundingMode(llvm::RoundingMode x) {
13301435 switch (x) {
1331 case llvm::APFloat::rmNearestTiesToEven:
1332 case llvm::APFloat::rmTowardPositive:
1333 case llvm::APFloat::rmTowardNegative:
1334 case llvm::APFloat::rmTowardZero:
1335 case llvm::APFloat::rmNearestTiesToAway:
1436 case llvm::RoundingMode::TowardZero:
1437 case llvm::RoundingMode::NearestTiesToEven:
1438 case llvm::RoundingMode::TowardPositive:
1439 case llvm::RoundingMode::TowardNegative:
1440 case llvm::RoundingMode::NearestTiesToAway:
1441 case llvm::RoundingMode::Dynamic:
1442 case llvm::RoundingMode::Invalid:
13361443 break;
13371444 }
13381445}
1339static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_NearestTiesToEven == llvm::APFloat::rmNearestTiesToEven, "");
1340static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_TowardPositive == llvm::APFloat::rmTowardPositive, "");
1341static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_TowardNegative == llvm::APFloat::rmTowardNegative, "");
1342static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_TowardZero == llvm::APFloat::rmTowardZero, "");
1343static_assert((llvm::APFloat::roundingMode)ZigClangAPFloat_roundingMode_NearestTiesToAway == llvm::APFloat::rmNearestTiesToAway, "");
1446static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_NearestTiesToEven == llvm::RoundingMode::NearestTiesToEven, "");
1447static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_TowardPositive == llvm::RoundingMode::TowardPositive, "");
1448static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_TowardNegative == llvm::RoundingMode::TowardNegative, "");
1449static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_TowardZero == llvm::RoundingMode::TowardZero, "");
1450static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_NearestTiesToAway == llvm::RoundingMode::NearestTiesToAway, "");
1451static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_Dynamic == llvm::RoundingMode::Dynamic, "");
1452static_assert((llvm::RoundingMode)ZigClangAPFloat_roundingMode_Invalid == llvm::RoundingMode::Invalid, "");
13441453
13451454void ZigClang_detect_enum_StringKind(clang::StringLiteral::StringKind x) {
13461455 switch (x) {
src/zig_clang.h+61-5
......@@ -236,15 +236,19 @@ enum ZigClangTypeClass {
236236 ZigClangType_Auto,
237237 ZigClangType_DeducedTemplateSpecialization,
238238 ZigClangType_DependentAddressSpace,
239 ZigClangType_DependentExtInt,
239240 ZigClangType_DependentName,
240241 ZigClangType_DependentSizedExtVector,
241242 ZigClangType_DependentTemplateSpecialization,
242243 ZigClangType_DependentVector,
243244 ZigClangType_Elaborated,
245 ZigClangType_ExtInt,
244246 ZigClangType_FunctionNoProto,
245247 ZigClangType_FunctionProto,
246248 ZigClangType_InjectedClassName,
247249 ZigClangType_MacroQualified,
250 ZigClangType_ConstantMatrix,
251 ZigClangType_DependentSizedMatrix,
248252 ZigClangType_MemberPointer,
249253 ZigClangType_ObjCObjectPointer,
250254 ZigClangType_ObjCObject,
......@@ -297,6 +301,7 @@ enum ZigClangStmtClass {
297301 ZigClangStmt_OMPCancelDirectiveClass,
298302 ZigClangStmt_OMPCancellationPointDirectiveClass,
299303 ZigClangStmt_OMPCriticalDirectiveClass,
304 ZigClangStmt_OMPDepobjDirectiveClass,
300305 ZigClangStmt_OMPFlushDirectiveClass,
301306 ZigClangStmt_OMPDistributeDirectiveClass,
302307 ZigClangStmt_OMPDistributeParallelForDirectiveClass,
......@@ -328,6 +333,7 @@ enum ZigClangStmtClass {
328333 ZigClangStmt_OMPParallelDirectiveClass,
329334 ZigClangStmt_OMPParallelMasterDirectiveClass,
330335 ZigClangStmt_OMPParallelSectionsDirectiveClass,
336 ZigClangStmt_OMPScanDirectiveClass,
331337 ZigClangStmt_OMPSectionDirectiveClass,
332338 ZigClangStmt_OMPSectionsDirectiveClass,
333339 ZigClangStmt_OMPSingleDirectiveClass,
......@@ -402,6 +408,7 @@ enum ZigClangStmtClass {
402408 ZigClangStmt_BuiltinBitCastExprClass,
403409 ZigClangStmt_CStyleCastExprClass,
404410 ZigClangStmt_CXXFunctionalCastExprClass,
411 ZigClangStmt_CXXAddrspaceCastExprClass,
405412 ZigClangStmt_CXXConstCastExprClass,
406413 ZigClangStmt_CXXDynamicCastExprClass,
407414 ZigClangStmt_CXXReinterpretCastExprClass,
......@@ -437,9 +444,12 @@ enum ZigClangStmtClass {
437444 ZigClangStmt_MSPropertyRefExprClass,
438445 ZigClangStmt_MSPropertySubscriptExprClass,
439446 ZigClangStmt_MaterializeTemporaryExprClass,
447 ZigClangStmt_MatrixSubscriptExprClass,
440448 ZigClangStmt_MemberExprClass,
441449 ZigClangStmt_NoInitExprClass,
442450 ZigClangStmt_OMPArraySectionExprClass,
451 ZigClangStmt_OMPArrayShapingExprClass,
452 ZigClangStmt_OMPIteratorExprClass,
443453 ZigClangStmt_ObjCArrayLiteralClass,
444454 ZigClangStmt_ObjCAvailabilityCheckExprClass,
445455 ZigClangStmt_ObjCBoolLiteralExprClass,
......@@ -464,6 +474,7 @@ enum ZigClangStmtClass {
464474 ZigClangStmt_ParenListExprClass,
465475 ZigClangStmt_PredefinedExprClass,
466476 ZigClangStmt_PseudoObjectExprClass,
477 ZigClangStmt_RecoveryExprClass,
467478 ZigClangStmt_RequiresExprClass,
468479 ZigClangStmt_ShuffleVectorExprClass,
469480 ZigClangStmt_SizeOfPackExprClass,
......@@ -614,6 +625,7 @@ enum ZigClangDeclKind {
614625 ZigClangDeclVarTemplatePartialSpecialization,
615626 ZigClangDeclEnumConstant,
616627 ZigClangDeclIndirectField,
628 ZigClangDeclMSGuid,
617629 ZigClangDeclOMPDeclareMapper,
618630 ZigClangDeclOMPDeclareReduction,
619631 ZigClangDeclUnresolvedUsingValue,
......@@ -688,6 +700,43 @@ enum ZigClangBuiltinTypeKind {
688700 ZigClangBuiltinTypeSveFloat16,
689701 ZigClangBuiltinTypeSveFloat32,
690702 ZigClangBuiltinTypeSveFloat64,
703 ZigClangBuiltinTypeSveBFloat16,
704 ZigClangBuiltinTypeSveInt8x2,
705 ZigClangBuiltinTypeSveInt16x2,
706 ZigClangBuiltinTypeSveInt32x2,
707 ZigClangBuiltinTypeSveInt64x2,
708 ZigClangBuiltinTypeSveUint8x2,
709 ZigClangBuiltinTypeSveUint16x2,
710 ZigClangBuiltinTypeSveUint32x2,
711 ZigClangBuiltinTypeSveUint64x2,
712 ZigClangBuiltinTypeSveFloat16x2,
713 ZigClangBuiltinTypeSveFloat32x2,
714 ZigClangBuiltinTypeSveFloat64x2,
715 ZigClangBuiltinTypeSveBFloat16x2,
716 ZigClangBuiltinTypeSveInt8x3,
717 ZigClangBuiltinTypeSveInt16x3,
718 ZigClangBuiltinTypeSveInt32x3,
719 ZigClangBuiltinTypeSveInt64x3,
720 ZigClangBuiltinTypeSveUint8x3,
721 ZigClangBuiltinTypeSveUint16x3,
722 ZigClangBuiltinTypeSveUint32x3,
723 ZigClangBuiltinTypeSveUint64x3,
724 ZigClangBuiltinTypeSveFloat16x3,
725 ZigClangBuiltinTypeSveFloat32x3,
726 ZigClangBuiltinTypeSveFloat64x3,
727 ZigClangBuiltinTypeSveBFloat16x3,
728 ZigClangBuiltinTypeSveInt8x4,
729 ZigClangBuiltinTypeSveInt16x4,
730 ZigClangBuiltinTypeSveInt32x4,
731 ZigClangBuiltinTypeSveInt64x4,
732 ZigClangBuiltinTypeSveUint8x4,
733 ZigClangBuiltinTypeSveUint16x4,
734 ZigClangBuiltinTypeSveUint32x4,
735 ZigClangBuiltinTypeSveUint64x4,
736 ZigClangBuiltinTypeSveFloat16x4,
737 ZigClangBuiltinTypeSveFloat32x4,
738 ZigClangBuiltinTypeSveFloat64x4,
739 ZigClangBuiltinTypeSveBFloat16x4,
691740 ZigClangBuiltinTypeSveBool,
692741 ZigClangBuiltinTypeVoid,
693742 ZigClangBuiltinTypeBool,
......@@ -739,6 +788,7 @@ enum ZigClangBuiltinTypeKind {
739788 ZigClangBuiltinTypeDouble,
740789 ZigClangBuiltinTypeLongDouble,
741790 ZigClangBuiltinTypeFloat16,
791 ZigClangBuiltinTypeBFloat16,
742792 ZigClangBuiltinTypeFloat128,
743793 ZigClangBuiltinTypeNullPtr,
744794 ZigClangBuiltinTypeObjCId,
......@@ -756,7 +806,10 @@ enum ZigClangBuiltinTypeKind {
756806 ZigClangBuiltinTypeUnknownAny,
757807 ZigClangBuiltinTypeBuiltinFn,
758808 ZigClangBuiltinTypeARCUnbridgedCast,
809 ZigClangBuiltinTypeIncompleteMatrixIdx,
759810 ZigClangBuiltinTypeOMPArraySection,
811 ZigClangBuiltinTypeOMPArrayShaping,
812 ZigClangBuiltinTypeOMPIterator,
760813};
761814
762815enum ZigClangCallingConv {
......@@ -794,11 +847,14 @@ enum ZigClangStorageClass {
794847
795848/// IEEE-754R 4.3: Rounding-direction attributes.
796849enum ZigClangAPFloat_roundingMode {
797 ZigClangAPFloat_roundingMode_NearestTiesToEven,
798 ZigClangAPFloat_roundingMode_TowardPositive,
799 ZigClangAPFloat_roundingMode_TowardNegative,
800 ZigClangAPFloat_roundingMode_TowardZero,
801 ZigClangAPFloat_roundingMode_NearestTiesToAway,
850 ZigClangAPFloat_roundingMode_TowardZero = 0,
851 ZigClangAPFloat_roundingMode_NearestTiesToEven = 1,
852 ZigClangAPFloat_roundingMode_TowardPositive = 2,
853 ZigClangAPFloat_roundingMode_TowardNegative = 3,
854 ZigClangAPFloat_roundingMode_NearestTiesToAway = 4,
855
856 ZigClangAPFloat_roundingMode_Dynamic = 7,
857 ZigClangAPFloat_roundingMode_Invalid = -1,
802858};
803859
804860enum ZigClangStringLiteral_StringKind {
src/zig_llvm.cpp+4-1
......@@ -39,6 +39,7 @@
3939#include <llvm/Object/COFFModuleDefinition.h>
4040#include <llvm/PassRegistry.h>
4141#include <llvm/Support/CommandLine.h>
42#include <llvm/Support/Host.h>
4243#include <llvm/Support/FileSystem.h>
4344#include <llvm/Support/TargetParser.h>
4445#include <llvm/Support/Timer.h>
......@@ -308,7 +309,9 @@ ZIG_EXTERN_C LLVMTypeRef ZigLLVMTokenTypeInContext(LLVMContextRef context_ref) {
308309LLVMValueRef ZigLLVMBuildCall(LLVMBuilderRef B, LLVMValueRef Fn, LLVMValueRef *Args,
309310 unsigned NumArgs, ZigLLVM_CallingConv CC, ZigLLVM_CallAttr attr, const char *Name)
310311{
311 CallInst *call_inst = CallInst::Create(unwrap(Fn), makeArrayRef(unwrap(Args), NumArgs), Name);
312 Value *V = unwrap(Fn);
313 FunctionType *FnT = cast<FunctionType>(cast<PointerType>(V->getType())->getElementType());
314 CallInst *call_inst = CallInst::Create(FnT, V, makeArrayRef(unwrap(Args), NumArgs), Name);
312315 call_inst->setCallingConv(static_cast<CallingConv::ID>(CC));
313316 switch (attr) {
314317 case ZigLLVM_CallAttrAuto: