authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-05-09 15:46:48-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-05-09 15:46:48-04:00
log214625587c66f07f2dd54670258143637058f490
treef798bdb2082aed30ffe9c6067cee5ff70bba9e07
parent010963ce431db2648374368dfc886aa8482494a9
signaturelock-open Commit is signed but in an unrecognized format.

translate-c: use C API for builtin types

See #1964

3 files changed, 647 insertions(+), 308 deletions(-)

src/translate_c.cpp+282-308
...@@ -127,6 +127,7 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *...@@ -127,6 +127,7 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *
127 const ZigClangExpr *expr, TransLRValue lrval);127 const ZigClangExpr *expr, TransLRValue lrval);
128static AstNode *trans_ap_value(Context *c, const ZigClangAPValue *ap_value, ZigClangQualType qt,128static AstNode *trans_ap_value(Context *c, const ZigClangAPValue *ap_value, ZigClangQualType qt,
129 ZigClangSourceLocation source_loc);129 ZigClangSourceLocation source_loc);
130static bool c_is_unsigned_integer(Context *c, ZigClangQualType qt);
130131
131static const ZigClangAPSInt *bitcast(const llvm::APSInt *src) {132static const ZigClangAPSInt *bitcast(const llvm::APSInt *src) {
132 return reinterpret_cast<const ZigClangAPSInt *>(src);133 return reinterpret_cast<const ZigClangAPSInt *>(src);
...@@ -581,33 +582,6 @@ static bool qual_type_is_ptr(ZigClangQualType qt) {...@@ -581,33 +582,6 @@ static bool qual_type_is_ptr(ZigClangQualType qt) {
581 return ZigClangType_getTypeClass(ty) == ZigClangType_Pointer;582 return ZigClangType_getTypeClass(ty) == ZigClangType_Pointer;
582}583}
583584
584static bool qual_type_is_int(ZigClangQualType qt) {
585 const ZigClangType *ty = qual_type_canon(qt);
586 if (ZigClangType_getTypeClass(ty) != ZigClangType_Builtin)
587 return false;
588 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(ty);
589 switch (builtin_ty->getKind()) {
590 case clang::BuiltinType::Char_U:
591 case clang::BuiltinType::UChar:
592 case clang::BuiltinType::Char_S:
593 case clang::BuiltinType::Char8:
594 case clang::BuiltinType::SChar:
595 case clang::BuiltinType::UShort:
596 case clang::BuiltinType::UInt:
597 case clang::BuiltinType::ULong:
598 case clang::BuiltinType::ULongLong:
599 case clang::BuiltinType::Short:
600 case clang::BuiltinType::Int:
601 case clang::BuiltinType::Long:
602 case clang::BuiltinType::LongLong:
603 case clang::BuiltinType::UInt128:
604 case clang::BuiltinType::Int128:
605 return true;
606 default:
607 return false;
608 }
609}
610
611static const clang::FunctionProtoType *qual_type_get_fn_proto(ZigClangQualType qt, bool *is_ptr) {585static const clang::FunctionProtoType *qual_type_get_fn_proto(ZigClangQualType qt, bool *is_ptr) {
612 const ZigClangType *ty = qual_type_canon(qt);586 const ZigClangType *ty = qual_type_canon(qt);
613 *is_ptr = false;587 *is_ptr = false;
...@@ -639,15 +613,15 @@ static uint32_t qual_type_int_bit_width(Context *c, const ZigClangQualType qt, Z...@@ -639,15 +613,15 @@ static uint32_t qual_type_int_bit_width(Context *c, const ZigClangQualType qt, Z
639 switch (ZigClangType_getTypeClass(ty)) {613 switch (ZigClangType_getTypeClass(ty)) {
640 case ZigClangType_Builtin:614 case ZigClangType_Builtin:
641 {615 {
642 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(ty);616 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(ty);
643 switch (builtin_ty->getKind()) {617 switch (ZigClangBuiltinType_getKind(builtin_ty)) {
644 case clang::BuiltinType::Char_U:618 case ZigClangBuiltinTypeChar_U:
645 case clang::BuiltinType::UChar:619 case ZigClangBuiltinTypeUChar:
646 case clang::BuiltinType::Char_S:620 case ZigClangBuiltinTypeChar_S:
647 case clang::BuiltinType::SChar:621 case ZigClangBuiltinTypeSChar:
648 return 8;622 return 8;
649 case clang::BuiltinType::UInt128:623 case ZigClangBuiltinTypeUInt128:
650 case clang::BuiltinType::Int128:624 case ZigClangBuiltinTypeInt128:
651 return 128;625 return 128;
652 default:626 default:
653 return 0;627 return 0;
...@@ -771,12 +745,12 @@ static AstNode* trans_c_cast(Context *c, ZigClangSourceLocation source_location,...@@ -771,12 +745,12 @@ static AstNode* trans_c_cast(Context *c, ZigClangSourceLocation source_location,
771 if (qual_type_is_ptr(dest_type) && qual_type_is_ptr(src_type)) {745 if (qual_type_is_ptr(dest_type) && qual_type_is_ptr(src_type)) {
772 return trans_c_ptr_cast(c, source_location, dest_type, src_type, expr);746 return trans_c_ptr_cast(c, source_location, dest_type, src_type, expr);
773 }747 }
774 if (qual_type_is_int(dest_type) && qual_type_is_ptr(src_type)) {748 if (c_is_unsigned_integer(c, dest_type) && qual_type_is_ptr(src_type)) {
775 AstNode *addr_node = trans_create_node_builtin_fn_call_str(c, "ptrToInt");749 AstNode *addr_node = trans_create_node_builtin_fn_call_str(c, "ptrToInt");
776 addr_node->data.fn_call_expr.params.append(expr);750 addr_node->data.fn_call_expr.params.append(expr);
777 return trans_create_node_fn_call_1(c, trans_qual_type(c, dest_type, source_location), addr_node);751 return trans_create_node_fn_call_1(c, trans_qual_type(c, dest_type, source_location), addr_node);
778 }752 }
779 if (qual_type_is_int(src_type) && qual_type_is_ptr(dest_type)) {753 if (c_is_unsigned_integer(c, src_type) && qual_type_is_ptr(dest_type)) {
780 AstNode *ptr_node = trans_create_node_builtin_fn_call_str(c, "intToPtr");754 AstNode *ptr_node = trans_create_node_builtin_fn_call_str(c, "intToPtr");
781 ptr_node->data.fn_call_expr.params.append(trans_qual_type(c, dest_type, source_location));755 ptr_node->data.fn_call_expr.params.append(trans_qual_type(c, dest_type, source_location));
782 ptr_node->data.fn_call_expr.params.append(expr);756 ptr_node->data.fn_call_expr.params.append(expr);
...@@ -792,15 +766,15 @@ static bool c_is_signed_integer(Context *c, ZigClangQualType qt) {...@@ -792,15 +766,15 @@ static bool c_is_signed_integer(Context *c, ZigClangQualType qt) {
792 const ZigClangType *c_type = qual_type_canon(qt);766 const ZigClangType *c_type = qual_type_canon(qt);
793 if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)767 if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)
794 return false;768 return false;
795 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(c_type);769 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(c_type);
796 switch (builtin_ty->getKind()) {770 switch (ZigClangBuiltinType_getKind(builtin_ty)) {
797 case clang::BuiltinType::SChar:771 case ZigClangBuiltinTypeSChar:
798 case clang::BuiltinType::Short:772 case ZigClangBuiltinTypeShort:
799 case clang::BuiltinType::Int:773 case ZigClangBuiltinTypeInt:
800 case clang::BuiltinType::Long:774 case ZigClangBuiltinTypeLong:
801 case clang::BuiltinType::LongLong:775 case ZigClangBuiltinTypeLongLong:
802 case clang::BuiltinType::Int128:776 case ZigClangBuiltinTypeInt128:
803 case clang::BuiltinType::WChar_S:777 case ZigClangBuiltinTypeWChar_S:
804 return true;778 return true;
805 default:779 default:
806 return false;780 return false;
...@@ -811,42 +785,42 @@ static bool c_is_unsigned_integer(Context *c, ZigClangQualType qt) {...@@ -811,42 +785,42 @@ static bool c_is_unsigned_integer(Context *c, ZigClangQualType qt) {
811 const ZigClangType *c_type = qual_type_canon(qt);785 const ZigClangType *c_type = qual_type_canon(qt);
812 if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)786 if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)
813 return false;787 return false;
814 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(c_type);788 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(c_type);
815 switch (builtin_ty->getKind()) {789 switch (ZigClangBuiltinType_getKind(builtin_ty)) {
816 case clang::BuiltinType::Char_U:790 case ZigClangBuiltinTypeChar_U:
817 case clang::BuiltinType::UChar:791 case ZigClangBuiltinTypeUChar:
818 case clang::BuiltinType::Char_S:792 case ZigClangBuiltinTypeChar_S:
819 case clang::BuiltinType::UShort:793 case ZigClangBuiltinTypeUShort:
820 case clang::BuiltinType::UInt:794 case ZigClangBuiltinTypeUInt:
821 case clang::BuiltinType::ULong:795 case ZigClangBuiltinTypeULong:
822 case clang::BuiltinType::ULongLong:796 case ZigClangBuiltinTypeULongLong:
823 case clang::BuiltinType::UInt128:797 case ZigClangBuiltinTypeUInt128:
824 case clang::BuiltinType::WChar_U:798 case ZigClangBuiltinTypeWChar_U:
825 return true;799 return true;
826 default:800 default:
827 return false;801 return false;
828 }802 }
829}803}
830804
831static bool c_is_builtin_type(Context *c, ZigClangQualType qt, clang::BuiltinType::Kind kind) {805static bool c_is_builtin_type(Context *c, ZigClangQualType qt, ZigClangBuiltinTypeKind kind) {
832 const ZigClangType *c_type = qual_type_canon(qt);806 const ZigClangType *c_type = qual_type_canon(qt);
833 if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)807 if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)
834 return false;808 return false;
835 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(c_type);809 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(c_type);
836 return builtin_ty->getKind() == kind;810 return ZigClangBuiltinType_getKind(builtin_ty) == kind;
837}811}
838812
839static bool c_is_float(Context *c, ZigClangQualType qt) {813static bool c_is_float(Context *c, ZigClangQualType qt) {
840 const ZigClangType *c_type = ZigClangQualType_getTypePtr(qt);814 const ZigClangType *c_type = ZigClangQualType_getTypePtr(qt);
841 if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)815 if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)
842 return false;816 return false;
843 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(c_type);817 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(c_type);
844 switch (builtin_ty->getKind()) {818 switch (ZigClangBuiltinType_getKind(builtin_ty)) {
845 case clang::BuiltinType::Half:819 case ZigClangBuiltinTypeHalf:
846 case clang::BuiltinType::Float:820 case ZigClangBuiltinTypeFloat:
847 case clang::BuiltinType::Double:821 case ZigClangBuiltinTypeDouble:
848 case clang::BuiltinType::Float128:822 case ZigClangBuiltinTypeFloat128:
849 case clang::BuiltinType::LongDouble:823 case ZigClangBuiltinTypeLongDouble:
850 return true;824 return true;
851 default:825 default:
852 return false;826 return false;
...@@ -866,8 +840,8 @@ static bool qual_type_has_wrapping_overflow(Context *c, ZigClangQualType qt) {...@@ -866,8 +840,8 @@ static bool qual_type_has_wrapping_overflow(Context *c, ZigClangQualType qt) {
866static bool type_is_opaque(Context *c, const ZigClangType *ty, ZigClangSourceLocation source_loc) {840static bool type_is_opaque(Context *c, const ZigClangType *ty, ZigClangSourceLocation source_loc) {
867 switch (ZigClangType_getTypeClass(ty)) {841 switch (ZigClangType_getTypeClass(ty)) {
868 case ZigClangType_Builtin: {842 case ZigClangType_Builtin: {
869 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(ty);843 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(ty);
870 return builtin_ty->getKind() == clang::BuiltinType::Void;844 return ZigClangBuiltinType_getKind(builtin_ty) == ZigClangBuiltinTypeVoid;
871 }845 }
872 case ZigClangType_Record: {846 case ZigClangType_Record: {
873 const clang::RecordType *record_ty = reinterpret_cast<const clang::RecordType*>(ty);847 const clang::RecordType *record_ty = reinterpret_cast<const clang::RecordType*>(ty);
...@@ -893,144 +867,144 @@ static AstNode *trans_type(Context *c, const ZigClangType *ty, ZigClangSourceLoc...@@ -893,144 +867,144 @@ static AstNode *trans_type(Context *c, const ZigClangType *ty, ZigClangSourceLoc
893 switch (ZigClangType_getTypeClass(ty)) {867 switch (ZigClangType_getTypeClass(ty)) {
894 case ZigClangType_Builtin:868 case ZigClangType_Builtin:
895 {869 {
896 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(ty);870 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType *>(ty);
897 switch (builtin_ty->getKind()) {871 switch (ZigClangBuiltinType_getKind(builtin_ty)) {
898 case clang::BuiltinType::Void:872 case ZigClangBuiltinTypeVoid:
899 return trans_create_node_symbol_str(c, "c_void");873 return trans_create_node_symbol_str(c, "c_void");
900 case clang::BuiltinType::Bool:874 case ZigClangBuiltinTypeBool:
901 return trans_create_node_symbol_str(c, "bool");875 return trans_create_node_symbol_str(c, "bool");
902 case clang::BuiltinType::Char_U:876 case ZigClangBuiltinTypeChar_U:
903 case clang::BuiltinType::UChar:877 case ZigClangBuiltinTypeUChar:
904 case clang::BuiltinType::Char_S:878 case ZigClangBuiltinTypeChar_S:
905 case clang::BuiltinType::Char8:879 case ZigClangBuiltinTypeChar8:
906 return trans_create_node_symbol_str(c, "u8");880 return trans_create_node_symbol_str(c, "u8");
907 case clang::BuiltinType::SChar:881 case ZigClangBuiltinTypeSChar:
908 return trans_create_node_symbol_str(c, "i8");882 return trans_create_node_symbol_str(c, "i8");
909 case clang::BuiltinType::UShort:883 case ZigClangBuiltinTypeUShort:
910 return trans_create_node_symbol_str(c, "c_ushort");884 return trans_create_node_symbol_str(c, "c_ushort");
911 case clang::BuiltinType::UInt:885 case ZigClangBuiltinTypeUInt:
912 return trans_create_node_symbol_str(c, "c_uint");886 return trans_create_node_symbol_str(c, "c_uint");
913 case clang::BuiltinType::ULong:887 case ZigClangBuiltinTypeULong:
914 return trans_create_node_symbol_str(c, "c_ulong");888 return trans_create_node_symbol_str(c, "c_ulong");
915 case clang::BuiltinType::ULongLong:889 case ZigClangBuiltinTypeULongLong:
916 return trans_create_node_symbol_str(c, "c_ulonglong");890 return trans_create_node_symbol_str(c, "c_ulonglong");
917 case clang::BuiltinType::Short:891 case ZigClangBuiltinTypeShort:
918 return trans_create_node_symbol_str(c, "c_short");892 return trans_create_node_symbol_str(c, "c_short");
919 case clang::BuiltinType::Int:893 case ZigClangBuiltinTypeInt:
920 return trans_create_node_symbol_str(c, "c_int");894 return trans_create_node_symbol_str(c, "c_int");
921 case clang::BuiltinType::Long:895 case ZigClangBuiltinTypeLong:
922 return trans_create_node_symbol_str(c, "c_long");896 return trans_create_node_symbol_str(c, "c_long");
923 case clang::BuiltinType::LongLong:897 case ZigClangBuiltinTypeLongLong:
924 return trans_create_node_symbol_str(c, "c_longlong");898 return trans_create_node_symbol_str(c, "c_longlong");
925 case clang::BuiltinType::UInt128:899 case ZigClangBuiltinTypeUInt128:
926 return trans_create_node_symbol_str(c, "u128");900 return trans_create_node_symbol_str(c, "u128");
927 case clang::BuiltinType::Int128:901 case ZigClangBuiltinTypeInt128:
928 return trans_create_node_symbol_str(c, "i128");902 return trans_create_node_symbol_str(c, "i128");
929 case clang::BuiltinType::Float:903 case ZigClangBuiltinTypeFloat:
930 return trans_create_node_symbol_str(c, "f32");904 return trans_create_node_symbol_str(c, "f32");
931 case clang::BuiltinType::Double:905 case ZigClangBuiltinTypeDouble:
932 return trans_create_node_symbol_str(c, "f64");906 return trans_create_node_symbol_str(c, "f64");
933 case clang::BuiltinType::Float128:907 case ZigClangBuiltinTypeFloat128:
934 return trans_create_node_symbol_str(c, "f128");908 return trans_create_node_symbol_str(c, "f128");
935 case clang::BuiltinType::Float16:909 case ZigClangBuiltinTypeFloat16:
936 return trans_create_node_symbol_str(c, "f16");910 return trans_create_node_symbol_str(c, "f16");
937 case clang::BuiltinType::LongDouble:911 case ZigClangBuiltinTypeLongDouble:
938 return trans_create_node_symbol_str(c, "c_longdouble");912 return trans_create_node_symbol_str(c, "c_longdouble");
939 case clang::BuiltinType::WChar_U:913 case ZigClangBuiltinTypeWChar_U:
940 case clang::BuiltinType::Char16:914 case ZigClangBuiltinTypeChar16:
941 case clang::BuiltinType::Char32:915 case ZigClangBuiltinTypeChar32:
942 case clang::BuiltinType::WChar_S:916 case ZigClangBuiltinTypeWChar_S:
943 case clang::BuiltinType::Half:917 case ZigClangBuiltinTypeHalf:
944 case clang::BuiltinType::NullPtr:918 case ZigClangBuiltinTypeNullPtr:
945 case clang::BuiltinType::ObjCId:919 case ZigClangBuiltinTypeObjCId:
946 case clang::BuiltinType::ObjCClass:920 case ZigClangBuiltinTypeObjCClass:
947 case clang::BuiltinType::ObjCSel:921 case ZigClangBuiltinTypeObjCSel:
948 case clang::BuiltinType::OMPArraySection:922 case ZigClangBuiltinTypeOMPArraySection:
949 case clang::BuiltinType::Dependent:923 case ZigClangBuiltinTypeDependent:
950 case clang::BuiltinType::Overload:924 case ZigClangBuiltinTypeOverload:
951 case clang::BuiltinType::BoundMember:925 case ZigClangBuiltinTypeBoundMember:
952 case clang::BuiltinType::PseudoObject:926 case ZigClangBuiltinTypePseudoObject:
953 case clang::BuiltinType::UnknownAny:927 case ZigClangBuiltinTypeUnknownAny:
954 case clang::BuiltinType::BuiltinFn:928 case ZigClangBuiltinTypeBuiltinFn:
955 case clang::BuiltinType::ARCUnbridgedCast:929 case ZigClangBuiltinTypeARCUnbridgedCast:
956 case clang::BuiltinType::ShortAccum:930 case ZigClangBuiltinTypeShortAccum:
957 case clang::BuiltinType::Accum:931 case ZigClangBuiltinTypeAccum:
958 case clang::BuiltinType::LongAccum:932 case ZigClangBuiltinTypeLongAccum:
959 case clang::BuiltinType::UShortAccum:933 case ZigClangBuiltinTypeUShortAccum:
960 case clang::BuiltinType::UAccum:934 case ZigClangBuiltinTypeUAccum:
961 case clang::BuiltinType::ULongAccum:935 case ZigClangBuiltinTypeULongAccum:
962936
963 case clang::BuiltinType::OCLImage1dRO:937 case ZigClangBuiltinTypeOCLImage1dRO:
964 case clang::BuiltinType::OCLImage1dArrayRO:938 case ZigClangBuiltinTypeOCLImage1dArrayRO:
965 case clang::BuiltinType::OCLImage1dBufferRO:939 case ZigClangBuiltinTypeOCLImage1dBufferRO:
966 case clang::BuiltinType::OCLImage2dRO:940 case ZigClangBuiltinTypeOCLImage2dRO:
967 case clang::BuiltinType::OCLImage2dArrayRO:941 case ZigClangBuiltinTypeOCLImage2dArrayRO:
968 case clang::BuiltinType::OCLImage2dDepthRO:942 case ZigClangBuiltinTypeOCLImage2dDepthRO:
969 case clang::BuiltinType::OCLImage2dArrayDepthRO:943 case ZigClangBuiltinTypeOCLImage2dArrayDepthRO:
970 case clang::BuiltinType::OCLImage2dMSAARO:944 case ZigClangBuiltinTypeOCLImage2dMSAARO:
971 case clang::BuiltinType::OCLImage2dArrayMSAARO:945 case ZigClangBuiltinTypeOCLImage2dArrayMSAARO:
972 case clang::BuiltinType::OCLImage2dMSAADepthRO:946 case ZigClangBuiltinTypeOCLImage2dMSAADepthRO:
973 case clang::BuiltinType::OCLImage2dArrayMSAADepthRO:947 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRO:
974 case clang::BuiltinType::OCLImage3dRO:948 case ZigClangBuiltinTypeOCLImage3dRO:
975 case clang::BuiltinType::OCLImage1dWO:949 case ZigClangBuiltinTypeOCLImage1dWO:
976 case clang::BuiltinType::OCLImage1dArrayWO:950 case ZigClangBuiltinTypeOCLImage1dArrayWO:
977 case clang::BuiltinType::OCLImage1dBufferWO:951 case ZigClangBuiltinTypeOCLImage1dBufferWO:
978 case clang::BuiltinType::OCLImage2dWO:952 case ZigClangBuiltinTypeOCLImage2dWO:
979 case clang::BuiltinType::OCLImage2dArrayWO:953 case ZigClangBuiltinTypeOCLImage2dArrayWO:
980 case clang::BuiltinType::OCLImage2dDepthWO:954 case ZigClangBuiltinTypeOCLImage2dDepthWO:
981 case clang::BuiltinType::OCLImage2dArrayDepthWO:955 case ZigClangBuiltinTypeOCLImage2dArrayDepthWO:
982 case clang::BuiltinType::OCLImage2dMSAAWO:956 case ZigClangBuiltinTypeOCLImage2dMSAAWO:
983 case clang::BuiltinType::OCLImage2dArrayMSAAWO:957 case ZigClangBuiltinTypeOCLImage2dArrayMSAAWO:
984 case clang::BuiltinType::OCLImage2dMSAADepthWO:958 case ZigClangBuiltinTypeOCLImage2dMSAADepthWO:
985 case clang::BuiltinType::OCLImage2dArrayMSAADepthWO:959 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthWO:
986 case clang::BuiltinType::OCLImage3dWO:960 case ZigClangBuiltinTypeOCLImage3dWO:
987 case clang::BuiltinType::OCLImage1dRW:961 case ZigClangBuiltinTypeOCLImage1dRW:
988 case clang::BuiltinType::OCLImage1dArrayRW:962 case ZigClangBuiltinTypeOCLImage1dArrayRW:
989 case clang::BuiltinType::OCLImage1dBufferRW:963 case ZigClangBuiltinTypeOCLImage1dBufferRW:
990 case clang::BuiltinType::OCLImage2dRW:964 case ZigClangBuiltinTypeOCLImage2dRW:
991 case clang::BuiltinType::OCLImage2dArrayRW:965 case ZigClangBuiltinTypeOCLImage2dArrayRW:
992 case clang::BuiltinType::OCLImage2dDepthRW:966 case ZigClangBuiltinTypeOCLImage2dDepthRW:
993 case clang::BuiltinType::OCLImage2dArrayDepthRW:967 case ZigClangBuiltinTypeOCLImage2dArrayDepthRW:
994 case clang::BuiltinType::OCLImage2dMSAARW:968 case ZigClangBuiltinTypeOCLImage2dMSAARW:
995 case clang::BuiltinType::OCLImage2dArrayMSAARW:969 case ZigClangBuiltinTypeOCLImage2dArrayMSAARW:
996 case clang::BuiltinType::OCLImage2dMSAADepthRW:970 case ZigClangBuiltinTypeOCLImage2dMSAADepthRW:
997 case clang::BuiltinType::OCLImage2dArrayMSAADepthRW:971 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRW:
998 case clang::BuiltinType::OCLImage3dRW:972 case ZigClangBuiltinTypeOCLImage3dRW:
999 case clang::BuiltinType::OCLSampler:973 case ZigClangBuiltinTypeOCLSampler:
1000 case clang::BuiltinType::OCLEvent:974 case ZigClangBuiltinTypeOCLEvent:
1001 case clang::BuiltinType::OCLClkEvent:975 case ZigClangBuiltinTypeOCLClkEvent:
1002 case clang::BuiltinType::OCLQueue:976 case ZigClangBuiltinTypeOCLQueue:
1003 case clang::BuiltinType::OCLReserveID:977 case ZigClangBuiltinTypeOCLReserveID:
1004 case clang::BuiltinType::ShortFract:978 case ZigClangBuiltinTypeShortFract:
1005 case clang::BuiltinType::Fract:979 case ZigClangBuiltinTypeFract:
1006 case clang::BuiltinType::LongFract:980 case ZigClangBuiltinTypeLongFract:
1007 case clang::BuiltinType::UShortFract:981 case ZigClangBuiltinTypeUShortFract:
1008 case clang::BuiltinType::UFract:982 case ZigClangBuiltinTypeUFract:
1009 case clang::BuiltinType::ULongFract:983 case ZigClangBuiltinTypeULongFract:
1010 case clang::BuiltinType::SatShortAccum:984 case ZigClangBuiltinTypeSatShortAccum:
1011 case clang::BuiltinType::SatAccum:985 case ZigClangBuiltinTypeSatAccum:
1012 case clang::BuiltinType::SatLongAccum:986 case ZigClangBuiltinTypeSatLongAccum:
1013 case clang::BuiltinType::SatUShortAccum:987 case ZigClangBuiltinTypeSatUShortAccum:
1014 case clang::BuiltinType::SatUAccum:988 case ZigClangBuiltinTypeSatUAccum:
1015 case clang::BuiltinType::SatULongAccum:989 case ZigClangBuiltinTypeSatULongAccum:
1016 case clang::BuiltinType::SatShortFract:990 case ZigClangBuiltinTypeSatShortFract:
1017 case clang::BuiltinType::SatFract:991 case ZigClangBuiltinTypeSatFract:
1018 case clang::BuiltinType::SatLongFract:992 case ZigClangBuiltinTypeSatLongFract:
1019 case clang::BuiltinType::SatUShortFract:993 case ZigClangBuiltinTypeSatUShortFract:
1020 case clang::BuiltinType::SatUFract:994 case ZigClangBuiltinTypeSatUFract:
1021 case clang::BuiltinType::SatULongFract:995 case ZigClangBuiltinTypeSatULongFract:
1022 case clang::BuiltinType::OCLIntelSubgroupAVCMcePayload:996 case ZigClangBuiltinTypeOCLIntelSubgroupAVCMcePayload:
1023 case clang::BuiltinType::OCLIntelSubgroupAVCImePayload:997 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImePayload:
1024 case clang::BuiltinType::OCLIntelSubgroupAVCRefPayload:998 case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefPayload:
1025 case clang::BuiltinType::OCLIntelSubgroupAVCSicPayload:999 case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicPayload:
1026 case clang::BuiltinType::OCLIntelSubgroupAVCMceResult:1000 case ZigClangBuiltinTypeOCLIntelSubgroupAVCMceResult:
1027 case clang::BuiltinType::OCLIntelSubgroupAVCImeResult:1001 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResult:
1028 case clang::BuiltinType::OCLIntelSubgroupAVCRefResult:1002 case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefResult:
1029 case clang::BuiltinType::OCLIntelSubgroupAVCSicResult:1003 case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicResult:
1030 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout:1004 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultSingleRefStreamout:
1031 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout:1005 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout:
1032 case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin:1006 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin:
1033 case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin:1007 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin:
1034 emit_warning(c, source_loc, "unsupported builtin type");1008 emit_warning(c, source_loc, "unsupported builtin type");
1035 return nullptr;1009 return nullptr;
1036 }1010 }
...@@ -2729,128 +2703,128 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *...@@ -2729,128 +2703,128 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *
2729 switch (classs) {2703 switch (classs) {
2730 case ZigClangType_Builtin:2704 case ZigClangType_Builtin:
2731 {2705 {
2732 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(ty);2706 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(ty);
2733 switch (builtin_ty->getKind()) {2707 switch (ZigClangBuiltinType_getKind(builtin_ty)) {
2734 case clang::BuiltinType::Bool:2708 case ZigClangBuiltinTypeBool:
2735 case clang::BuiltinType::Char_U:2709 case ZigClangBuiltinTypeChar_U:
2736 case clang::BuiltinType::UChar:2710 case ZigClangBuiltinTypeUChar:
2737 case clang::BuiltinType::Char_S:2711 case ZigClangBuiltinTypeChar_S:
2738 case clang::BuiltinType::SChar:2712 case ZigClangBuiltinTypeSChar:
2739 case clang::BuiltinType::UShort:2713 case ZigClangBuiltinTypeUShort:
2740 case clang::BuiltinType::UInt:2714 case ZigClangBuiltinTypeUInt:
2741 case clang::BuiltinType::ULong:2715 case ZigClangBuiltinTypeULong:
2742 case clang::BuiltinType::ULongLong:2716 case ZigClangBuiltinTypeULongLong:
2743 case clang::BuiltinType::Short:2717 case ZigClangBuiltinTypeShort:
2744 case clang::BuiltinType::Int:2718 case ZigClangBuiltinTypeInt:
2745 case clang::BuiltinType::Long:2719 case ZigClangBuiltinTypeLong:
2746 case clang::BuiltinType::LongLong:2720 case ZigClangBuiltinTypeLongLong:
2747 case clang::BuiltinType::UInt128:2721 case ZigClangBuiltinTypeUInt128:
2748 case clang::BuiltinType::Int128:2722 case ZigClangBuiltinTypeInt128:
2749 case clang::BuiltinType::Float:2723 case ZigClangBuiltinTypeFloat:
2750 case clang::BuiltinType::Double:2724 case ZigClangBuiltinTypeDouble:
2751 case clang::BuiltinType::Float128:2725 case ZigClangBuiltinTypeFloat128:
2752 case clang::BuiltinType::LongDouble:2726 case ZigClangBuiltinTypeLongDouble:
2753 case clang::BuiltinType::WChar_U:2727 case ZigClangBuiltinTypeWChar_U:
2754 case clang::BuiltinType::Char8:2728 case ZigClangBuiltinTypeChar8:
2755 case clang::BuiltinType::Char16:2729 case ZigClangBuiltinTypeChar16:
2756 case clang::BuiltinType::Char32:2730 case ZigClangBuiltinTypeChar32:
2757 case clang::BuiltinType::WChar_S:2731 case ZigClangBuiltinTypeWChar_S:
2758 case clang::BuiltinType::Float16:2732 case ZigClangBuiltinTypeFloat16:
2759 return trans_create_node_bin_op(c, res, BinOpTypeCmpNotEq, trans_create_node_unsigned_negative(c, 0, false));2733 return trans_create_node_bin_op(c, res, BinOpTypeCmpNotEq, trans_create_node_unsigned_negative(c, 0, false));
2760 case clang::BuiltinType::NullPtr:2734 case ZigClangBuiltinTypeNullPtr:
2761 return trans_create_node_bin_op(c, res, BinOpTypeCmpNotEq,2735 return trans_create_node_bin_op(c, res, BinOpTypeCmpNotEq,
2762 trans_create_node(c, NodeTypeNullLiteral));2736 trans_create_node(c, NodeTypeNullLiteral));
27632737
2764 case clang::BuiltinType::Void:2738 case ZigClangBuiltinTypeVoid:
2765 case clang::BuiltinType::Half:2739 case ZigClangBuiltinTypeHalf:
2766 case clang::BuiltinType::ObjCId:2740 case ZigClangBuiltinTypeObjCId:
2767 case clang::BuiltinType::ObjCClass:2741 case ZigClangBuiltinTypeObjCClass:
2768 case clang::BuiltinType::ObjCSel:2742 case ZigClangBuiltinTypeObjCSel:
2769 case clang::BuiltinType::OMPArraySection:2743 case ZigClangBuiltinTypeOMPArraySection:
2770 case clang::BuiltinType::Dependent:2744 case ZigClangBuiltinTypeDependent:
2771 case clang::BuiltinType::Overload:2745 case ZigClangBuiltinTypeOverload:
2772 case clang::BuiltinType::BoundMember:2746 case ZigClangBuiltinTypeBoundMember:
2773 case clang::BuiltinType::PseudoObject:2747 case ZigClangBuiltinTypePseudoObject:
2774 case clang::BuiltinType::UnknownAny:2748 case ZigClangBuiltinTypeUnknownAny:
2775 case clang::BuiltinType::BuiltinFn:2749 case ZigClangBuiltinTypeBuiltinFn:
2776 case clang::BuiltinType::ARCUnbridgedCast:2750 case ZigClangBuiltinTypeARCUnbridgedCast:
2777 case clang::BuiltinType::OCLImage1dRO:2751 case ZigClangBuiltinTypeOCLImage1dRO:
2778 case clang::BuiltinType::OCLImage1dArrayRO:2752 case ZigClangBuiltinTypeOCLImage1dArrayRO:
2779 case clang::BuiltinType::OCLImage1dBufferRO:2753 case ZigClangBuiltinTypeOCLImage1dBufferRO:
2780 case clang::BuiltinType::OCLImage2dRO:2754 case ZigClangBuiltinTypeOCLImage2dRO:
2781 case clang::BuiltinType::OCLImage2dArrayRO:2755 case ZigClangBuiltinTypeOCLImage2dArrayRO:
2782 case clang::BuiltinType::OCLImage2dDepthRO:2756 case ZigClangBuiltinTypeOCLImage2dDepthRO:
2783 case clang::BuiltinType::OCLImage2dArrayDepthRO:2757 case ZigClangBuiltinTypeOCLImage2dArrayDepthRO:
2784 case clang::BuiltinType::OCLImage2dMSAARO:2758 case ZigClangBuiltinTypeOCLImage2dMSAARO:
2785 case clang::BuiltinType::OCLImage2dArrayMSAARO:2759 case ZigClangBuiltinTypeOCLImage2dArrayMSAARO:
2786 case clang::BuiltinType::OCLImage2dMSAADepthRO:2760 case ZigClangBuiltinTypeOCLImage2dMSAADepthRO:
2787 case clang::BuiltinType::OCLImage2dArrayMSAADepthRO:2761 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRO:
2788 case clang::BuiltinType::OCLImage3dRO:2762 case ZigClangBuiltinTypeOCLImage3dRO:
2789 case clang::BuiltinType::OCLImage1dWO:2763 case ZigClangBuiltinTypeOCLImage1dWO:
2790 case clang::BuiltinType::OCLImage1dArrayWO:2764 case ZigClangBuiltinTypeOCLImage1dArrayWO:
2791 case clang::BuiltinType::OCLImage1dBufferWO:2765 case ZigClangBuiltinTypeOCLImage1dBufferWO:
2792 case clang::BuiltinType::OCLImage2dWO:2766 case ZigClangBuiltinTypeOCLImage2dWO:
2793 case clang::BuiltinType::OCLImage2dArrayWO:2767 case ZigClangBuiltinTypeOCLImage2dArrayWO:
2794 case clang::BuiltinType::OCLImage2dDepthWO:2768 case ZigClangBuiltinTypeOCLImage2dDepthWO:
2795 case clang::BuiltinType::OCLImage2dArrayDepthWO:2769 case ZigClangBuiltinTypeOCLImage2dArrayDepthWO:
2796 case clang::BuiltinType::OCLImage2dMSAAWO:2770 case ZigClangBuiltinTypeOCLImage2dMSAAWO:
2797 case clang::BuiltinType::OCLImage2dArrayMSAAWO:2771 case ZigClangBuiltinTypeOCLImage2dArrayMSAAWO:
2798 case clang::BuiltinType::OCLImage2dMSAADepthWO:2772 case ZigClangBuiltinTypeOCLImage2dMSAADepthWO:
2799 case clang::BuiltinType::OCLImage2dArrayMSAADepthWO:2773 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthWO:
2800 case clang::BuiltinType::OCLImage3dWO:2774 case ZigClangBuiltinTypeOCLImage3dWO:
2801 case clang::BuiltinType::OCLImage1dRW:2775 case ZigClangBuiltinTypeOCLImage1dRW:
2802 case clang::BuiltinType::OCLImage1dArrayRW:2776 case ZigClangBuiltinTypeOCLImage1dArrayRW:
2803 case clang::BuiltinType::OCLImage1dBufferRW:2777 case ZigClangBuiltinTypeOCLImage1dBufferRW:
2804 case clang::BuiltinType::OCLImage2dRW:2778 case ZigClangBuiltinTypeOCLImage2dRW:
2805 case clang::BuiltinType::OCLImage2dArrayRW:2779 case ZigClangBuiltinTypeOCLImage2dArrayRW:
2806 case clang::BuiltinType::OCLImage2dDepthRW:2780 case ZigClangBuiltinTypeOCLImage2dDepthRW:
2807 case clang::BuiltinType::OCLImage2dArrayDepthRW:2781 case ZigClangBuiltinTypeOCLImage2dArrayDepthRW:
2808 case clang::BuiltinType::OCLImage2dMSAARW:2782 case ZigClangBuiltinTypeOCLImage2dMSAARW:
2809 case clang::BuiltinType::OCLImage2dArrayMSAARW:2783 case ZigClangBuiltinTypeOCLImage2dArrayMSAARW:
2810 case clang::BuiltinType::OCLImage2dMSAADepthRW:2784 case ZigClangBuiltinTypeOCLImage2dMSAADepthRW:
2811 case clang::BuiltinType::OCLImage2dArrayMSAADepthRW:2785 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRW:
2812 case clang::BuiltinType::OCLImage3dRW:2786 case ZigClangBuiltinTypeOCLImage3dRW:
2813 case clang::BuiltinType::OCLSampler:2787 case ZigClangBuiltinTypeOCLSampler:
2814 case clang::BuiltinType::OCLEvent:2788 case ZigClangBuiltinTypeOCLEvent:
2815 case clang::BuiltinType::OCLClkEvent:2789 case ZigClangBuiltinTypeOCLClkEvent:
2816 case clang::BuiltinType::OCLQueue:2790 case ZigClangBuiltinTypeOCLQueue:
2817 case clang::BuiltinType::OCLReserveID:2791 case ZigClangBuiltinTypeOCLReserveID:
2818 case clang::BuiltinType::ShortAccum:2792 case ZigClangBuiltinTypeShortAccum:
2819 case clang::BuiltinType::Accum:2793 case ZigClangBuiltinTypeAccum:
2820 case clang::BuiltinType::LongAccum:2794 case ZigClangBuiltinTypeLongAccum:
2821 case clang::BuiltinType::UShortAccum:2795 case ZigClangBuiltinTypeUShortAccum:
2822 case clang::BuiltinType::UAccum:2796 case ZigClangBuiltinTypeUAccum:
2823 case clang::BuiltinType::ULongAccum:2797 case ZigClangBuiltinTypeULongAccum:
2824 case clang::BuiltinType::ShortFract:2798 case ZigClangBuiltinTypeShortFract:
2825 case clang::BuiltinType::Fract:2799 case ZigClangBuiltinTypeFract:
2826 case clang::BuiltinType::LongFract:2800 case ZigClangBuiltinTypeLongFract:
2827 case clang::BuiltinType::UShortFract:2801 case ZigClangBuiltinTypeUShortFract:
2828 case clang::BuiltinType::UFract:2802 case ZigClangBuiltinTypeUFract:
2829 case clang::BuiltinType::ULongFract:2803 case ZigClangBuiltinTypeULongFract:
2830 case clang::BuiltinType::SatShortAccum:2804 case ZigClangBuiltinTypeSatShortAccum:
2831 case clang::BuiltinType::SatAccum:2805 case ZigClangBuiltinTypeSatAccum:
2832 case clang::BuiltinType::SatLongAccum:2806 case ZigClangBuiltinTypeSatLongAccum:
2833 case clang::BuiltinType::SatUShortAccum:2807 case ZigClangBuiltinTypeSatUShortAccum:
2834 case clang::BuiltinType::SatUAccum:2808 case ZigClangBuiltinTypeSatUAccum:
2835 case clang::BuiltinType::SatULongAccum:2809 case ZigClangBuiltinTypeSatULongAccum:
2836 case clang::BuiltinType::SatShortFract:2810 case ZigClangBuiltinTypeSatShortFract:
2837 case clang::BuiltinType::SatFract:2811 case ZigClangBuiltinTypeSatFract:
2838 case clang::BuiltinType::SatLongFract:2812 case ZigClangBuiltinTypeSatLongFract:
2839 case clang::BuiltinType::SatUShortFract:2813 case ZigClangBuiltinTypeSatUShortFract:
2840 case clang::BuiltinType::SatUFract:2814 case ZigClangBuiltinTypeSatUFract:
2841 case clang::BuiltinType::SatULongFract:2815 case ZigClangBuiltinTypeSatULongFract:
2842 case clang::BuiltinType::OCLIntelSubgroupAVCMcePayload:2816 case ZigClangBuiltinTypeOCLIntelSubgroupAVCMcePayload:
2843 case clang::BuiltinType::OCLIntelSubgroupAVCImePayload:2817 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImePayload:
2844 case clang::BuiltinType::OCLIntelSubgroupAVCRefPayload:2818 case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefPayload:
2845 case clang::BuiltinType::OCLIntelSubgroupAVCSicPayload:2819 case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicPayload:
2846 case clang::BuiltinType::OCLIntelSubgroupAVCMceResult:2820 case ZigClangBuiltinTypeOCLIntelSubgroupAVCMceResult:
2847 case clang::BuiltinType::OCLIntelSubgroupAVCImeResult:2821 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResult:
2848 case clang::BuiltinType::OCLIntelSubgroupAVCRefResult:2822 case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefResult:
2849 case clang::BuiltinType::OCLIntelSubgroupAVCSicResult:2823 case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicResult:
2850 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout:2824 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultSingleRefStreamout:
2851 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout:2825 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout:
2852 case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin:2826 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin:
2853 case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin:2827 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin:
2854 return res;2828 return res;
2855 }2829 }
2856 break;2830 break;
...@@ -4268,8 +4242,8 @@ static AstNode *resolve_enum_decl(Context *c, const ZigClangEnumDecl *enum_decl)...@@ -4268,8 +4242,8 @@ static AstNode *resolve_enum_decl(Context *c, const ZigClangEnumDecl *enum_decl)
4268 // TODO only emit this tag type if the enum tag type is not the default.4242 // TODO only emit this tag type if the enum tag type is not the default.
4269 // I don't know what the default is, need to figure out how clang is deciding.4243 // I don't know what the default is, need to figure out how clang is deciding.
4270 // it appears to at least be different across gcc/msvc4244 // it appears to at least be different across gcc/msvc
4271 if (!c_is_builtin_type(c, ZigClangEnumDecl_getIntegerType(enum_decl), clang::BuiltinType::UInt) &&4245 if (!c_is_builtin_type(c, ZigClangEnumDecl_getIntegerType(enum_decl), ZigClangBuiltinTypeUInt) &&
4272 !c_is_builtin_type(c, ZigClangEnumDecl_getIntegerType(enum_decl), clang::BuiltinType::Int))4246 !c_is_builtin_type(c, ZigClangEnumDecl_getIntegerType(enum_decl), ZigClangBuiltinTypeInt))
4273 {4247 {
4274 enum_node->data.container_decl.init_arg_expr = tag_int_type;4248 enum_node->data.container_decl.init_arg_expr = tag_int_type;
4275 }4249 }
src/zig_clang.cpp+244
...@@ -954,6 +954,245 @@ static_assert((clang::Decl::Kind)ZigClangDeclPragmaDetectMismatch == clang::Decl...@@ -954,6 +954,245 @@ static_assert((clang::Decl::Kind)ZigClangDeclPragmaDetectMismatch == clang::Decl
954static_assert((clang::Decl::Kind)ZigClangDeclStaticAssert == clang::Decl::StaticAssert, "");954static_assert((clang::Decl::Kind)ZigClangDeclStaticAssert == clang::Decl::StaticAssert, "");
955static_assert((clang::Decl::Kind)ZigClangDeclTranslationUnit == clang::Decl::TranslationUnit, "");955static_assert((clang::Decl::Kind)ZigClangDeclTranslationUnit == clang::Decl::TranslationUnit, "");
956956
957void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
958 switch (x) {
959 case clang::BuiltinType::OCLImage1dRO:
960 case clang::BuiltinType::OCLImage1dArrayRO:
961 case clang::BuiltinType::OCLImage1dBufferRO:
962 case clang::BuiltinType::OCLImage2dRO:
963 case clang::BuiltinType::OCLImage2dArrayRO:
964 case clang::BuiltinType::OCLImage2dDepthRO:
965 case clang::BuiltinType::OCLImage2dArrayDepthRO:
966 case clang::BuiltinType::OCLImage2dMSAARO:
967 case clang::BuiltinType::OCLImage2dArrayMSAARO:
968 case clang::BuiltinType::OCLImage2dMSAADepthRO:
969 case clang::BuiltinType::OCLImage2dArrayMSAADepthRO:
970 case clang::BuiltinType::OCLImage3dRO:
971 case clang::BuiltinType::OCLImage1dWO:
972 case clang::BuiltinType::OCLImage1dArrayWO:
973 case clang::BuiltinType::OCLImage1dBufferWO:
974 case clang::BuiltinType::OCLImage2dWO:
975 case clang::BuiltinType::OCLImage2dArrayWO:
976 case clang::BuiltinType::OCLImage2dDepthWO:
977 case clang::BuiltinType::OCLImage2dArrayDepthWO:
978 case clang::BuiltinType::OCLImage2dMSAAWO:
979 case clang::BuiltinType::OCLImage2dArrayMSAAWO:
980 case clang::BuiltinType::OCLImage2dMSAADepthWO:
981 case clang::BuiltinType::OCLImage2dArrayMSAADepthWO:
982 case clang::BuiltinType::OCLImage3dWO:
983 case clang::BuiltinType::OCLImage1dRW:
984 case clang::BuiltinType::OCLImage1dArrayRW:
985 case clang::BuiltinType::OCLImage1dBufferRW:
986 case clang::BuiltinType::OCLImage2dRW:
987 case clang::BuiltinType::OCLImage2dArrayRW:
988 case clang::BuiltinType::OCLImage2dDepthRW:
989 case clang::BuiltinType::OCLImage2dArrayDepthRW:
990 case clang::BuiltinType::OCLImage2dMSAARW:
991 case clang::BuiltinType::OCLImage2dArrayMSAARW:
992 case clang::BuiltinType::OCLImage2dMSAADepthRW:
993 case clang::BuiltinType::OCLImage2dArrayMSAADepthRW:
994 case clang::BuiltinType::OCLImage3dRW:
995 case clang::BuiltinType::OCLIntelSubgroupAVCMcePayload:
996 case clang::BuiltinType::OCLIntelSubgroupAVCImePayload:
997 case clang::BuiltinType::OCLIntelSubgroupAVCRefPayload:
998 case clang::BuiltinType::OCLIntelSubgroupAVCSicPayload:
999 case clang::BuiltinType::OCLIntelSubgroupAVCMceResult:
1000 case clang::BuiltinType::OCLIntelSubgroupAVCImeResult:
1001 case clang::BuiltinType::OCLIntelSubgroupAVCRefResult:
1002 case clang::BuiltinType::OCLIntelSubgroupAVCSicResult:
1003 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout:
1004 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout:
1005 case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin:
1006 case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin:
1007 case clang::BuiltinType::Void:
1008 case clang::BuiltinType::Bool:
1009 case clang::BuiltinType::Char_U:
1010 case clang::BuiltinType::UChar:
1011 case clang::BuiltinType::WChar_U:
1012 case clang::BuiltinType::Char8:
1013 case clang::BuiltinType::Char16:
1014 case clang::BuiltinType::Char32:
1015 case clang::BuiltinType::UShort:
1016 case clang::BuiltinType::UInt:
1017 case clang::BuiltinType::ULong:
1018 case clang::BuiltinType::ULongLong:
1019 case clang::BuiltinType::UInt128:
1020 case clang::BuiltinType::Char_S:
1021 case clang::BuiltinType::SChar:
1022 case clang::BuiltinType::WChar_S:
1023 case clang::BuiltinType::Short:
1024 case clang::BuiltinType::Int:
1025 case clang::BuiltinType::Long:
1026 case clang::BuiltinType::LongLong:
1027 case clang::BuiltinType::Int128:
1028 case clang::BuiltinType::ShortAccum:
1029 case clang::BuiltinType::Accum:
1030 case clang::BuiltinType::LongAccum:
1031 case clang::BuiltinType::UShortAccum:
1032 case clang::BuiltinType::UAccum:
1033 case clang::BuiltinType::ULongAccum:
1034 case clang::BuiltinType::ShortFract:
1035 case clang::BuiltinType::Fract:
1036 case clang::BuiltinType::LongFract:
1037 case clang::BuiltinType::UShortFract:
1038 case clang::BuiltinType::UFract:
1039 case clang::BuiltinType::ULongFract:
1040 case clang::BuiltinType::SatShortAccum:
1041 case clang::BuiltinType::SatAccum:
1042 case clang::BuiltinType::SatLongAccum:
1043 case clang::BuiltinType::SatUShortAccum:
1044 case clang::BuiltinType::SatUAccum:
1045 case clang::BuiltinType::SatULongAccum:
1046 case clang::BuiltinType::SatShortFract:
1047 case clang::BuiltinType::SatFract:
1048 case clang::BuiltinType::SatLongFract:
1049 case clang::BuiltinType::SatUShortFract:
1050 case clang::BuiltinType::SatUFract:
1051 case clang::BuiltinType::SatULongFract:
1052 case clang::BuiltinType::Half:
1053 case clang::BuiltinType::Float:
1054 case clang::BuiltinType::Double:
1055 case clang::BuiltinType::LongDouble:
1056 case clang::BuiltinType::Float16:
1057 case clang::BuiltinType::Float128:
1058 case clang::BuiltinType::NullPtr:
1059 case clang::BuiltinType::ObjCId:
1060 case clang::BuiltinType::ObjCClass:
1061 case clang::BuiltinType::ObjCSel:
1062 case clang::BuiltinType::OCLSampler:
1063 case clang::BuiltinType::OCLEvent:
1064 case clang::BuiltinType::OCLClkEvent:
1065 case clang::BuiltinType::OCLQueue:
1066 case clang::BuiltinType::OCLReserveID:
1067 case clang::BuiltinType::Dependent:
1068 case clang::BuiltinType::Overload:
1069 case clang::BuiltinType::BoundMember:
1070 case clang::BuiltinType::PseudoObject:
1071 case clang::BuiltinType::UnknownAny:
1072 case clang::BuiltinType::BuiltinFn:
1073 case clang::BuiltinType::ARCUnbridgedCast:
1074 case clang::BuiltinType::OMPArraySection:
1075 break;
1076 }
1077}
1078
1079static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dRO == clang::BuiltinType::OCLImage1dRO, "");
1080static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dArrayRO == clang::BuiltinType::OCLImage1dArrayRO, "");
1081static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dBufferRO == clang::BuiltinType::OCLImage1dBufferRO, "");
1082static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dRO == clang::BuiltinType::OCLImage2dRO, "");
1083static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayRO == clang::BuiltinType::OCLImage2dArrayRO, "");
1084static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dDepthRO == clang::BuiltinType::OCLImage2dDepthRO, "");
1085static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayDepthRO == clang::BuiltinType::OCLImage2dArrayDepthRO, "");
1086static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAARO == clang::BuiltinType::OCLImage2dMSAARO, "");
1087static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAARO == clang::BuiltinType::OCLImage2dArrayMSAARO, "");
1088static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAADepthRO == clang::BuiltinType::OCLImage2dMSAADepthRO, "");
1089static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRO == clang::BuiltinType::OCLImage2dArrayMSAADepthRO, "");
1090static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage3dRO == clang::BuiltinType::OCLImage3dRO, "");
1091static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dWO == clang::BuiltinType::OCLImage1dWO, "");
1092static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dArrayWO == clang::BuiltinType::OCLImage1dArrayWO, "");
1093static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dBufferWO == clang::BuiltinType::OCLImage1dBufferWO, "");
1094static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dWO == clang::BuiltinType::OCLImage2dWO, "");
1095static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayWO == clang::BuiltinType::OCLImage2dArrayWO, "");
1096static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dDepthWO == clang::BuiltinType::OCLImage2dDepthWO, "");
1097static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayDepthWO == clang::BuiltinType::OCLImage2dArrayDepthWO, "");
1098static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAAWO == clang::BuiltinType::OCLImage2dMSAAWO, "");
1099static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAAWO == clang::BuiltinType::OCLImage2dArrayMSAAWO, "");
1100static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAADepthWO == clang::BuiltinType::OCLImage2dMSAADepthWO, "");
1101static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAADepthWO == clang::BuiltinType::OCLImage2dArrayMSAADepthWO, "");
1102static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage3dWO == clang::BuiltinType::OCLImage3dWO, "");
1103static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dRW == clang::BuiltinType::OCLImage1dRW, "");
1104static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dArrayRW == clang::BuiltinType::OCLImage1dArrayRW, "");
1105static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dBufferRW == clang::BuiltinType::OCLImage1dBufferRW, "");
1106static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dRW == clang::BuiltinType::OCLImage2dRW, "");
1107static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayRW == clang::BuiltinType::OCLImage2dArrayRW, "");
1108static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dDepthRW == clang::BuiltinType::OCLImage2dDepthRW, "");
1109static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayDepthRW == clang::BuiltinType::OCLImage2dArrayDepthRW, "");
1110static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAARW == clang::BuiltinType::OCLImage2dMSAARW, "");
1111static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAARW == clang::BuiltinType::OCLImage2dArrayMSAARW, "");
1112static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAADepthRW == clang::BuiltinType::OCLImage2dMSAADepthRW, "");
1113static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRW == clang::BuiltinType::OCLImage2dArrayMSAADepthRW, "");
1114static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage3dRW == clang::BuiltinType::OCLImage3dRW, "");
1115static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCMcePayload == clang::BuiltinType::OCLIntelSubgroupAVCMcePayload, "");
1116static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImePayload == clang::BuiltinType::OCLIntelSubgroupAVCImePayload, "");
1117static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCRefPayload == clang::BuiltinType::OCLIntelSubgroupAVCRefPayload, "");
1118static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCSicPayload == clang::BuiltinType::OCLIntelSubgroupAVCSicPayload, "");
1119static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCMceResult == clang::BuiltinType::OCLIntelSubgroupAVCMceResult, "");
1120static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResult == clang::BuiltinType::OCLIntelSubgroupAVCImeResult, "");
1121static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCRefResult == clang::BuiltinType::OCLIntelSubgroupAVCRefResult, "");
1122static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCSicResult == clang::BuiltinType::OCLIntelSubgroupAVCSicResult, "");
1123static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultSingleRefStreamout == clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout, "");
1124static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout == clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout, "");
1125static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin, "");
1126static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin, "");
1127static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, "");
1128static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, "");
1129static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_U == clang::BuiltinType::Char_U, "");
1130static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUChar == clang::BuiltinType::UChar, "");
1131static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeWChar_U == clang::BuiltinType::WChar_U, "");
1132static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar8 == clang::BuiltinType::Char8, "");
1133static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar16 == clang::BuiltinType::Char16, "");
1134static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar32 == clang::BuiltinType::Char32, "");
1135static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUShort == clang::BuiltinType::UShort, "");
1136static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUInt == clang::BuiltinType::UInt, "");
1137static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeULong == clang::BuiltinType::ULong, "");
1138static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeULongLong == clang::BuiltinType::ULongLong, "");
1139static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUInt128 == clang::BuiltinType::UInt128, "");
1140static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_S == clang::BuiltinType::Char_S, "");
1141static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSChar == clang::BuiltinType::SChar, "");
1142static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeWChar_S == clang::BuiltinType::WChar_S, "");
1143static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeShort == clang::BuiltinType::Short, "");
1144static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeInt == clang::BuiltinType::Int, "");
1145static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLong == clang::BuiltinType::Long, "");
1146static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLongLong == clang::BuiltinType::LongLong, "");
1147static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeInt128 == clang::BuiltinType::Int128, "");
1148static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeShortAccum == clang::BuiltinType::ShortAccum, "");
1149static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeAccum == clang::BuiltinType::Accum, "");
1150static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLongAccum == clang::BuiltinType::LongAccum, "");
1151static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUShortAccum == clang::BuiltinType::UShortAccum, "");
1152static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUAccum == clang::BuiltinType::UAccum, "");
1153static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeULongAccum == clang::BuiltinType::ULongAccum, "");
1154static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeShortFract == clang::BuiltinType::ShortFract, "");
1155static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFract == clang::BuiltinType::Fract, "");
1156static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLongFract == clang::BuiltinType::LongFract, "");
1157static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUShortFract == clang::BuiltinType::UShortFract, "");
1158static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUFract == clang::BuiltinType::UFract, "");
1159static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeULongFract == clang::BuiltinType::ULongFract, "");
1160static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatShortAccum == clang::BuiltinType::SatShortAccum, "");
1161static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatAccum == clang::BuiltinType::SatAccum, "");
1162static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatLongAccum == clang::BuiltinType::SatLongAccum, "");
1163static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatUShortAccum == clang::BuiltinType::SatUShortAccum, "");
1164static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatUAccum == clang::BuiltinType::SatUAccum, "");
1165static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatULongAccum == clang::BuiltinType::SatULongAccum, "");
1166static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatShortFract == clang::BuiltinType::SatShortFract, "");
1167static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatFract == clang::BuiltinType::SatFract, "");
1168static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatLongFract == clang::BuiltinType::SatLongFract, "");
1169static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatUShortFract == clang::BuiltinType::SatUShortFract, "");
1170static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatUFract == clang::BuiltinType::SatUFract, "");
1171static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatULongFract == clang::BuiltinType::SatULongFract, "");
1172static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeHalf == clang::BuiltinType::Half, "");
1173static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat == clang::BuiltinType::Float, "");
1174static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeDouble == clang::BuiltinType::Double, "");
1175static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLongDouble == clang::BuiltinType::LongDouble, "");
1176static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat16 == clang::BuiltinType::Float16, "");
1177static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat128 == clang::BuiltinType::Float128, "");
1178static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeNullPtr == clang::BuiltinType::NullPtr, "");
1179static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeObjCId == clang::BuiltinType::ObjCId, "");
1180static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeObjCClass == clang::BuiltinType::ObjCClass, "");
1181static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeObjCSel == clang::BuiltinType::ObjCSel, "");
1182static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLSampler == clang::BuiltinType::OCLSampler, "");
1183static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLEvent == clang::BuiltinType::OCLEvent, "");
1184static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLClkEvent == clang::BuiltinType::OCLClkEvent, "");
1185static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLQueue == clang::BuiltinType::OCLQueue, "");
1186static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLReserveID == clang::BuiltinType::OCLReserveID, "");
1187static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeDependent == clang::BuiltinType::Dependent, "");
1188static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOverload == clang::BuiltinType::Overload, "");
1189static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBoundMember == clang::BuiltinType::BoundMember, "");
1190static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypePseudoObject == clang::BuiltinType::PseudoObject, "");
1191static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUnknownAny == clang::BuiltinType::UnknownAny, "");
1192static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBuiltinFn == clang::BuiltinType::BuiltinFn, "");
1193static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeARCUnbridgedCast == clang::BuiltinType::ARCUnbridgedCast, "");
1194static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOMPArraySection == clang::BuiltinType::OMPArraySection, "");
1195
9571196
958static_assert(sizeof(ZigClangSourceLocation) == sizeof(clang::SourceLocation), "");1197static_assert(sizeof(ZigClangSourceLocation) == sizeof(clang::SourceLocation), "");
959static ZigClangSourceLocation bitcast(clang::SourceLocation src) {1198static ZigClangSourceLocation bitcast(clang::SourceLocation src) {
...@@ -1449,3 +1688,8 @@ void ZigClangErrorMsg_delete(Stage2ErrorMsg *ptr, size_t len) {...@@ -1449,3 +1688,8 @@ void ZigClangErrorMsg_delete(Stage2ErrorMsg *ptr, size_t len) {
1449void ZigClangASTUnit_delete(struct ZigClangASTUnit *self) {1688void ZigClangASTUnit_delete(struct ZigClangASTUnit *self) {
1450 delete reinterpret_cast<clang::ASTUnit *>(self);1689 delete reinterpret_cast<clang::ASTUnit *>(self);
1451}1690}
1691
1692enum ZigClangBuiltinTypeKind ZigClangBuiltinType_getKind(const struct ZigClangBuiltinType *self) {
1693 auto casted = reinterpret_cast<const clang::BuiltinType *>(self);
1694 return (ZigClangBuiltinTypeKind)casted->getKind();
1695}
src/zig_clang.h+121
...@@ -559,6 +559,125 @@ enum ZigClangDeclKind {...@@ -559,6 +559,125 @@ enum ZigClangDeclKind {
559 ZigClangDeclTranslationUnit,559 ZigClangDeclTranslationUnit,
560};560};
561561
562enum ZigClangBuiltinTypeKind {
563 ZigClangBuiltinTypeOCLImage1dRO,
564 ZigClangBuiltinTypeOCLImage1dArrayRO,
565 ZigClangBuiltinTypeOCLImage1dBufferRO,
566 ZigClangBuiltinTypeOCLImage2dRO,
567 ZigClangBuiltinTypeOCLImage2dArrayRO,
568 ZigClangBuiltinTypeOCLImage2dDepthRO,
569 ZigClangBuiltinTypeOCLImage2dArrayDepthRO,
570 ZigClangBuiltinTypeOCLImage2dMSAARO,
571 ZigClangBuiltinTypeOCLImage2dArrayMSAARO,
572 ZigClangBuiltinTypeOCLImage2dMSAADepthRO,
573 ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRO,
574 ZigClangBuiltinTypeOCLImage3dRO,
575 ZigClangBuiltinTypeOCLImage1dWO,
576 ZigClangBuiltinTypeOCLImage1dArrayWO,
577 ZigClangBuiltinTypeOCLImage1dBufferWO,
578 ZigClangBuiltinTypeOCLImage2dWO,
579 ZigClangBuiltinTypeOCLImage2dArrayWO,
580 ZigClangBuiltinTypeOCLImage2dDepthWO,
581 ZigClangBuiltinTypeOCLImage2dArrayDepthWO,
582 ZigClangBuiltinTypeOCLImage2dMSAAWO,
583 ZigClangBuiltinTypeOCLImage2dArrayMSAAWO,
584 ZigClangBuiltinTypeOCLImage2dMSAADepthWO,
585 ZigClangBuiltinTypeOCLImage2dArrayMSAADepthWO,
586 ZigClangBuiltinTypeOCLImage3dWO,
587 ZigClangBuiltinTypeOCLImage1dRW,
588 ZigClangBuiltinTypeOCLImage1dArrayRW,
589 ZigClangBuiltinTypeOCLImage1dBufferRW,
590 ZigClangBuiltinTypeOCLImage2dRW,
591 ZigClangBuiltinTypeOCLImage2dArrayRW,
592 ZigClangBuiltinTypeOCLImage2dDepthRW,
593 ZigClangBuiltinTypeOCLImage2dArrayDepthRW,
594 ZigClangBuiltinTypeOCLImage2dMSAARW,
595 ZigClangBuiltinTypeOCLImage2dArrayMSAARW,
596 ZigClangBuiltinTypeOCLImage2dMSAADepthRW,
597 ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRW,
598 ZigClangBuiltinTypeOCLImage3dRW,
599 ZigClangBuiltinTypeOCLIntelSubgroupAVCMcePayload,
600 ZigClangBuiltinTypeOCLIntelSubgroupAVCImePayload,
601 ZigClangBuiltinTypeOCLIntelSubgroupAVCRefPayload,
602 ZigClangBuiltinTypeOCLIntelSubgroupAVCSicPayload,
603 ZigClangBuiltinTypeOCLIntelSubgroupAVCMceResult,
604 ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResult,
605 ZigClangBuiltinTypeOCLIntelSubgroupAVCRefResult,
606 ZigClangBuiltinTypeOCLIntelSubgroupAVCSicResult,
607 ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultSingleRefStreamout,
608 ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout,
609 ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin,
610 ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin,
611 ZigClangBuiltinTypeVoid,
612 ZigClangBuiltinTypeBool,
613 ZigClangBuiltinTypeChar_U,
614 ZigClangBuiltinTypeUChar,
615 ZigClangBuiltinTypeWChar_U,
616 ZigClangBuiltinTypeChar8,
617 ZigClangBuiltinTypeChar16,
618 ZigClangBuiltinTypeChar32,
619 ZigClangBuiltinTypeUShort,
620 ZigClangBuiltinTypeUInt,
621 ZigClangBuiltinTypeULong,
622 ZigClangBuiltinTypeULongLong,
623 ZigClangBuiltinTypeUInt128,
624 ZigClangBuiltinTypeChar_S,
625 ZigClangBuiltinTypeSChar,
626 ZigClangBuiltinTypeWChar_S,
627 ZigClangBuiltinTypeShort,
628 ZigClangBuiltinTypeInt,
629 ZigClangBuiltinTypeLong,
630 ZigClangBuiltinTypeLongLong,
631 ZigClangBuiltinTypeInt128,
632 ZigClangBuiltinTypeShortAccum,
633 ZigClangBuiltinTypeAccum,
634 ZigClangBuiltinTypeLongAccum,
635 ZigClangBuiltinTypeUShortAccum,
636 ZigClangBuiltinTypeUAccum,
637 ZigClangBuiltinTypeULongAccum,
638 ZigClangBuiltinTypeShortFract,
639 ZigClangBuiltinTypeFract,
640 ZigClangBuiltinTypeLongFract,
641 ZigClangBuiltinTypeUShortFract,
642 ZigClangBuiltinTypeUFract,
643 ZigClangBuiltinTypeULongFract,
644 ZigClangBuiltinTypeSatShortAccum,
645 ZigClangBuiltinTypeSatAccum,
646 ZigClangBuiltinTypeSatLongAccum,
647 ZigClangBuiltinTypeSatUShortAccum,
648 ZigClangBuiltinTypeSatUAccum,
649 ZigClangBuiltinTypeSatULongAccum,
650 ZigClangBuiltinTypeSatShortFract,
651 ZigClangBuiltinTypeSatFract,
652 ZigClangBuiltinTypeSatLongFract,
653 ZigClangBuiltinTypeSatUShortFract,
654 ZigClangBuiltinTypeSatUFract,
655 ZigClangBuiltinTypeSatULongFract,
656 ZigClangBuiltinTypeHalf,
657 ZigClangBuiltinTypeFloat,
658 ZigClangBuiltinTypeDouble,
659 ZigClangBuiltinTypeLongDouble,
660 ZigClangBuiltinTypeFloat16,
661 ZigClangBuiltinTypeFloat128,
662 ZigClangBuiltinTypeNullPtr,
663 ZigClangBuiltinTypeObjCId,
664 ZigClangBuiltinTypeObjCClass,
665 ZigClangBuiltinTypeObjCSel,
666 ZigClangBuiltinTypeOCLSampler,
667 ZigClangBuiltinTypeOCLEvent,
668 ZigClangBuiltinTypeOCLClkEvent,
669 ZigClangBuiltinTypeOCLQueue,
670 ZigClangBuiltinTypeOCLReserveID,
671 ZigClangBuiltinTypeDependent,
672 ZigClangBuiltinTypeOverload,
673 ZigClangBuiltinTypeBoundMember,
674 ZigClangBuiltinTypePseudoObject,
675 ZigClangBuiltinTypeUnknownAny,
676 ZigClangBuiltinTypeBuiltinFn,
677 ZigClangBuiltinTypeARCUnbridgedCast,
678 ZigClangBuiltinTypeOMPArraySection,
679};
680
562ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const struct ZigClangSourceManager *,681ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const struct ZigClangSourceManager *,
563 struct ZigClangSourceLocation Loc);682 struct ZigClangSourceLocation Loc);
564ZIG_EXTERN_C const char *ZigClangSourceManager_getFilename(const struct ZigClangSourceManager *,683ZIG_EXTERN_C const char *ZigClangSourceManager_getFilename(const struct ZigClangSourceManager *,
...@@ -655,4 +774,6 @@ ZIG_EXTERN_C unsigned ZigClangAPSInt_getNumWords(const struct ZigClangAPSInt *se...@@ -655,4 +774,6 @@ ZIG_EXTERN_C unsigned ZigClangAPSInt_getNumWords(const struct ZigClangAPSInt *se
655774
656ZIG_EXTERN_C const struct ZigClangExpr *ZigClangAPValueLValueBase_dyn_cast_Expr(struct ZigClangAPValueLValueBase self);775ZIG_EXTERN_C const struct ZigClangExpr *ZigClangAPValueLValueBase_dyn_cast_Expr(struct ZigClangAPValueLValueBase self);
657776
777ZIG_EXTERN_C enum ZigClangBuiltinTypeKind ZigClangBuiltinType_getKind(const struct ZigClangBuiltinType *self);
778
658#endif779#endif