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
signature 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 *
127127 const ZigClangExpr *expr, TransLRValue lrval);
128128static AstNode *trans_ap_value(Context *c, const ZigClangAPValue *ap_value, ZigClangQualType qt,
129129 ZigClangSourceLocation source_loc);
130static bool c_is_unsigned_integer(Context *c, ZigClangQualType qt);
130131
131132static const ZigClangAPSInt *bitcast(const llvm::APSInt *src) {
132133 return reinterpret_cast<const ZigClangAPSInt *>(src);
......@@ -581,33 +582,6 @@ static bool qual_type_is_ptr(ZigClangQualType qt) {
581582 return ZigClangType_getTypeClass(ty) == ZigClangType_Pointer;
582583}
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
611585static const clang::FunctionProtoType *qual_type_get_fn_proto(ZigClangQualType qt, bool *is_ptr) {
612586 const ZigClangType *ty = qual_type_canon(qt);
613587 *is_ptr = false;
......@@ -639,15 +613,15 @@ static uint32_t qual_type_int_bit_width(Context *c, const ZigClangQualType qt, Z
639613 switch (ZigClangType_getTypeClass(ty)) {
640614 case ZigClangType_Builtin:
641615 {
642 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(ty);
643 switch (builtin_ty->getKind()) {
644 case clang::BuiltinType::Char_U:
645 case clang::BuiltinType::UChar:
646 case clang::BuiltinType::Char_S:
647 case clang::BuiltinType::SChar:
616 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(ty);
617 switch (ZigClangBuiltinType_getKind(builtin_ty)) {
618 case ZigClangBuiltinTypeChar_U:
619 case ZigClangBuiltinTypeUChar:
620 case ZigClangBuiltinTypeChar_S:
621 case ZigClangBuiltinTypeSChar:
648622 return 8;
649 case clang::BuiltinType::UInt128:
650 case clang::BuiltinType::Int128:
623 case ZigClangBuiltinTypeUInt128:
624 case ZigClangBuiltinTypeInt128:
651625 return 128;
652626 default:
653627 return 0;
......@@ -771,12 +745,12 @@ static AstNode* trans_c_cast(Context *c, ZigClangSourceLocation source_location,
771745 if (qual_type_is_ptr(dest_type) && qual_type_is_ptr(src_type)) {
772746 return trans_c_ptr_cast(c, source_location, dest_type, src_type, expr);
773747 }
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)) {
775749 AstNode *addr_node = trans_create_node_builtin_fn_call_str(c, "ptrToInt");
776750 addr_node->data.fn_call_expr.params.append(expr);
777751 return trans_create_node_fn_call_1(c, trans_qual_type(c, dest_type, source_location), addr_node);
778752 }
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)) {
780754 AstNode *ptr_node = trans_create_node_builtin_fn_call_str(c, "intToPtr");
781755 ptr_node->data.fn_call_expr.params.append(trans_qual_type(c, dest_type, source_location));
782756 ptr_node->data.fn_call_expr.params.append(expr);
......@@ -792,15 +766,15 @@ static bool c_is_signed_integer(Context *c, ZigClangQualType qt) {
792766 const ZigClangType *c_type = qual_type_canon(qt);
793767 if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)
794768 return false;
795 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(c_type);
796 switch (builtin_ty->getKind()) {
797 case clang::BuiltinType::SChar:
798 case clang::BuiltinType::Short:
799 case clang::BuiltinType::Int:
800 case clang::BuiltinType::Long:
801 case clang::BuiltinType::LongLong:
802 case clang::BuiltinType::Int128:
803 case clang::BuiltinType::WChar_S:
769 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(c_type);
770 switch (ZigClangBuiltinType_getKind(builtin_ty)) {
771 case ZigClangBuiltinTypeSChar:
772 case ZigClangBuiltinTypeShort:
773 case ZigClangBuiltinTypeInt:
774 case ZigClangBuiltinTypeLong:
775 case ZigClangBuiltinTypeLongLong:
776 case ZigClangBuiltinTypeInt128:
777 case ZigClangBuiltinTypeWChar_S:
804778 return true;
805779 default:
806780 return false;
......@@ -811,42 +785,42 @@ static bool c_is_unsigned_integer(Context *c, ZigClangQualType qt) {
811785 const ZigClangType *c_type = qual_type_canon(qt);
812786 if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)
813787 return false;
814 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(c_type);
815 switch (builtin_ty->getKind()) {
816 case clang::BuiltinType::Char_U:
817 case clang::BuiltinType::UChar:
818 case clang::BuiltinType::Char_S:
819 case clang::BuiltinType::UShort:
820 case clang::BuiltinType::UInt:
821 case clang::BuiltinType::ULong:
822 case clang::BuiltinType::ULongLong:
823 case clang::BuiltinType::UInt128:
824 case clang::BuiltinType::WChar_U:
788 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(c_type);
789 switch (ZigClangBuiltinType_getKind(builtin_ty)) {
790 case ZigClangBuiltinTypeChar_U:
791 case ZigClangBuiltinTypeUChar:
792 case ZigClangBuiltinTypeChar_S:
793 case ZigClangBuiltinTypeUShort:
794 case ZigClangBuiltinTypeUInt:
795 case ZigClangBuiltinTypeULong:
796 case ZigClangBuiltinTypeULongLong:
797 case ZigClangBuiltinTypeUInt128:
798 case ZigClangBuiltinTypeWChar_U:
825799 return true;
826800 default:
827801 return false;
828802 }
829803}
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) {
832806 const ZigClangType *c_type = qual_type_canon(qt);
833807 if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)
834808 return false;
835 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(c_type);
836 return builtin_ty->getKind() == kind;
809 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(c_type);
810 return ZigClangBuiltinType_getKind(builtin_ty) == kind;
837811}
838812
839813static bool c_is_float(Context *c, ZigClangQualType qt) {
840814 const ZigClangType *c_type = ZigClangQualType_getTypePtr(qt);
841815 if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)
842816 return false;
843 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(c_type);
844 switch (builtin_ty->getKind()) {
845 case clang::BuiltinType::Half:
846 case clang::BuiltinType::Float:
847 case clang::BuiltinType::Double:
848 case clang::BuiltinType::Float128:
849 case clang::BuiltinType::LongDouble:
817 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(c_type);
818 switch (ZigClangBuiltinType_getKind(builtin_ty)) {
819 case ZigClangBuiltinTypeHalf:
820 case ZigClangBuiltinTypeFloat:
821 case ZigClangBuiltinTypeDouble:
822 case ZigClangBuiltinTypeFloat128:
823 case ZigClangBuiltinTypeLongDouble:
850824 return true;
851825 default:
852826 return false;
......@@ -866,8 +840,8 @@ static bool qual_type_has_wrapping_overflow(Context *c, ZigClangQualType qt) {
866840static bool type_is_opaque(Context *c, const ZigClangType *ty, ZigClangSourceLocation source_loc) {
867841 switch (ZigClangType_getTypeClass(ty)) {
868842 case ZigClangType_Builtin: {
869 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(ty);
870 return builtin_ty->getKind() == clang::BuiltinType::Void;
843 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(ty);
844 return ZigClangBuiltinType_getKind(builtin_ty) == ZigClangBuiltinTypeVoid;
871845 }
872846 case ZigClangType_Record: {
873847 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
893867 switch (ZigClangType_getTypeClass(ty)) {
894868 case ZigClangType_Builtin:
895869 {
896 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(ty);
897 switch (builtin_ty->getKind()) {
898 case clang::BuiltinType::Void:
870 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType *>(ty);
871 switch (ZigClangBuiltinType_getKind(builtin_ty)) {
872 case ZigClangBuiltinTypeVoid:
899873 return trans_create_node_symbol_str(c, "c_void");
900 case clang::BuiltinType::Bool:
874 case ZigClangBuiltinTypeBool:
901875 return trans_create_node_symbol_str(c, "bool");
902 case clang::BuiltinType::Char_U:
903 case clang::BuiltinType::UChar:
904 case clang::BuiltinType::Char_S:
905 case clang::BuiltinType::Char8:
876 case ZigClangBuiltinTypeChar_U:
877 case ZigClangBuiltinTypeUChar:
878 case ZigClangBuiltinTypeChar_S:
879 case ZigClangBuiltinTypeChar8:
906880 return trans_create_node_symbol_str(c, "u8");
907 case clang::BuiltinType::SChar:
881 case ZigClangBuiltinTypeSChar:
908882 return trans_create_node_symbol_str(c, "i8");
909 case clang::BuiltinType::UShort:
883 case ZigClangBuiltinTypeUShort:
910884 return trans_create_node_symbol_str(c, "c_ushort");
911 case clang::BuiltinType::UInt:
885 case ZigClangBuiltinTypeUInt:
912886 return trans_create_node_symbol_str(c, "c_uint");
913 case clang::BuiltinType::ULong:
887 case ZigClangBuiltinTypeULong:
914888 return trans_create_node_symbol_str(c, "c_ulong");
915 case clang::BuiltinType::ULongLong:
889 case ZigClangBuiltinTypeULongLong:
916890 return trans_create_node_symbol_str(c, "c_ulonglong");
917 case clang::BuiltinType::Short:
891 case ZigClangBuiltinTypeShort:
918892 return trans_create_node_symbol_str(c, "c_short");
919 case clang::BuiltinType::Int:
893 case ZigClangBuiltinTypeInt:
920894 return trans_create_node_symbol_str(c, "c_int");
921 case clang::BuiltinType::Long:
895 case ZigClangBuiltinTypeLong:
922896 return trans_create_node_symbol_str(c, "c_long");
923 case clang::BuiltinType::LongLong:
897 case ZigClangBuiltinTypeLongLong:
924898 return trans_create_node_symbol_str(c, "c_longlong");
925 case clang::BuiltinType::UInt128:
899 case ZigClangBuiltinTypeUInt128:
926900 return trans_create_node_symbol_str(c, "u128");
927 case clang::BuiltinType::Int128:
901 case ZigClangBuiltinTypeInt128:
928902 return trans_create_node_symbol_str(c, "i128");
929 case clang::BuiltinType::Float:
903 case ZigClangBuiltinTypeFloat:
930904 return trans_create_node_symbol_str(c, "f32");
931 case clang::BuiltinType::Double:
905 case ZigClangBuiltinTypeDouble:
932906 return trans_create_node_symbol_str(c, "f64");
933 case clang::BuiltinType::Float128:
907 case ZigClangBuiltinTypeFloat128:
934908 return trans_create_node_symbol_str(c, "f128");
935 case clang::BuiltinType::Float16:
909 case ZigClangBuiltinTypeFloat16:
936910 return trans_create_node_symbol_str(c, "f16");
937 case clang::BuiltinType::LongDouble:
911 case ZigClangBuiltinTypeLongDouble:
938912 return trans_create_node_symbol_str(c, "c_longdouble");
939 case clang::BuiltinType::WChar_U:
940 case clang::BuiltinType::Char16:
941 case clang::BuiltinType::Char32:
942 case clang::BuiltinType::WChar_S:
943 case clang::BuiltinType::Half:
944 case clang::BuiltinType::NullPtr:
945 case clang::BuiltinType::ObjCId:
946 case clang::BuiltinType::ObjCClass:
947 case clang::BuiltinType::ObjCSel:
948 case clang::BuiltinType::OMPArraySection:
949 case clang::BuiltinType::Dependent:
950 case clang::BuiltinType::Overload:
951 case clang::BuiltinType::BoundMember:
952 case clang::BuiltinType::PseudoObject:
953 case clang::BuiltinType::UnknownAny:
954 case clang::BuiltinType::BuiltinFn:
955 case clang::BuiltinType::ARCUnbridgedCast:
956 case clang::BuiltinType::ShortAccum:
957 case clang::BuiltinType::Accum:
958 case clang::BuiltinType::LongAccum:
959 case clang::BuiltinType::UShortAccum:
960 case clang::BuiltinType::UAccum:
961 case clang::BuiltinType::ULongAccum:
962
963 case clang::BuiltinType::OCLImage1dRO:
964 case clang::BuiltinType::OCLImage1dArrayRO:
965 case clang::BuiltinType::OCLImage1dBufferRO:
966 case clang::BuiltinType::OCLImage2dRO:
967 case clang::BuiltinType::OCLImage2dArrayRO:
968 case clang::BuiltinType::OCLImage2dDepthRO:
969 case clang::BuiltinType::OCLImage2dArrayDepthRO:
970 case clang::BuiltinType::OCLImage2dMSAARO:
971 case clang::BuiltinType::OCLImage2dArrayMSAARO:
972 case clang::BuiltinType::OCLImage2dMSAADepthRO:
973 case clang::BuiltinType::OCLImage2dArrayMSAADepthRO:
974 case clang::BuiltinType::OCLImage3dRO:
975 case clang::BuiltinType::OCLImage1dWO:
976 case clang::BuiltinType::OCLImage1dArrayWO:
977 case clang::BuiltinType::OCLImage1dBufferWO:
978 case clang::BuiltinType::OCLImage2dWO:
979 case clang::BuiltinType::OCLImage2dArrayWO:
980 case clang::BuiltinType::OCLImage2dDepthWO:
981 case clang::BuiltinType::OCLImage2dArrayDepthWO:
982 case clang::BuiltinType::OCLImage2dMSAAWO:
983 case clang::BuiltinType::OCLImage2dArrayMSAAWO:
984 case clang::BuiltinType::OCLImage2dMSAADepthWO:
985 case clang::BuiltinType::OCLImage2dArrayMSAADepthWO:
986 case clang::BuiltinType::OCLImage3dWO:
987 case clang::BuiltinType::OCLImage1dRW:
988 case clang::BuiltinType::OCLImage1dArrayRW:
989 case clang::BuiltinType::OCLImage1dBufferRW:
990 case clang::BuiltinType::OCLImage2dRW:
991 case clang::BuiltinType::OCLImage2dArrayRW:
992 case clang::BuiltinType::OCLImage2dDepthRW:
993 case clang::BuiltinType::OCLImage2dArrayDepthRW:
994 case clang::BuiltinType::OCLImage2dMSAARW:
995 case clang::BuiltinType::OCLImage2dArrayMSAARW:
996 case clang::BuiltinType::OCLImage2dMSAADepthRW:
997 case clang::BuiltinType::OCLImage2dArrayMSAADepthRW:
998 case clang::BuiltinType::OCLImage3dRW:
999 case clang::BuiltinType::OCLSampler:
1000 case clang::BuiltinType::OCLEvent:
1001 case clang::BuiltinType::OCLClkEvent:
1002 case clang::BuiltinType::OCLQueue:
1003 case clang::BuiltinType::OCLReserveID:
1004 case clang::BuiltinType::ShortFract:
1005 case clang::BuiltinType::Fract:
1006 case clang::BuiltinType::LongFract:
1007 case clang::BuiltinType::UShortFract:
1008 case clang::BuiltinType::UFract:
1009 case clang::BuiltinType::ULongFract:
1010 case clang::BuiltinType::SatShortAccum:
1011 case clang::BuiltinType::SatAccum:
1012 case clang::BuiltinType::SatLongAccum:
1013 case clang::BuiltinType::SatUShortAccum:
1014 case clang::BuiltinType::SatUAccum:
1015 case clang::BuiltinType::SatULongAccum:
1016 case clang::BuiltinType::SatShortFract:
1017 case clang::BuiltinType::SatFract:
1018 case clang::BuiltinType::SatLongFract:
1019 case clang::BuiltinType::SatUShortFract:
1020 case clang::BuiltinType::SatUFract:
1021 case clang::BuiltinType::SatULongFract:
1022 case clang::BuiltinType::OCLIntelSubgroupAVCMcePayload:
1023 case clang::BuiltinType::OCLIntelSubgroupAVCImePayload:
1024 case clang::BuiltinType::OCLIntelSubgroupAVCRefPayload:
1025 case clang::BuiltinType::OCLIntelSubgroupAVCSicPayload:
1026 case clang::BuiltinType::OCLIntelSubgroupAVCMceResult:
1027 case clang::BuiltinType::OCLIntelSubgroupAVCImeResult:
1028 case clang::BuiltinType::OCLIntelSubgroupAVCRefResult:
1029 case clang::BuiltinType::OCLIntelSubgroupAVCSicResult:
1030 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout:
1031 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout:
1032 case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin:
1033 case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin:
913 case ZigClangBuiltinTypeWChar_U:
914 case ZigClangBuiltinTypeChar16:
915 case ZigClangBuiltinTypeChar32:
916 case ZigClangBuiltinTypeWChar_S:
917 case ZigClangBuiltinTypeHalf:
918 case ZigClangBuiltinTypeNullPtr:
919 case ZigClangBuiltinTypeObjCId:
920 case ZigClangBuiltinTypeObjCClass:
921 case ZigClangBuiltinTypeObjCSel:
922 case ZigClangBuiltinTypeOMPArraySection:
923 case ZigClangBuiltinTypeDependent:
924 case ZigClangBuiltinTypeOverload:
925 case ZigClangBuiltinTypeBoundMember:
926 case ZigClangBuiltinTypePseudoObject:
927 case ZigClangBuiltinTypeUnknownAny:
928 case ZigClangBuiltinTypeBuiltinFn:
929 case ZigClangBuiltinTypeARCUnbridgedCast:
930 case ZigClangBuiltinTypeShortAccum:
931 case ZigClangBuiltinTypeAccum:
932 case ZigClangBuiltinTypeLongAccum:
933 case ZigClangBuiltinTypeUShortAccum:
934 case ZigClangBuiltinTypeUAccum:
935 case ZigClangBuiltinTypeULongAccum:
936
937 case ZigClangBuiltinTypeOCLImage1dRO:
938 case ZigClangBuiltinTypeOCLImage1dArrayRO:
939 case ZigClangBuiltinTypeOCLImage1dBufferRO:
940 case ZigClangBuiltinTypeOCLImage2dRO:
941 case ZigClangBuiltinTypeOCLImage2dArrayRO:
942 case ZigClangBuiltinTypeOCLImage2dDepthRO:
943 case ZigClangBuiltinTypeOCLImage2dArrayDepthRO:
944 case ZigClangBuiltinTypeOCLImage2dMSAARO:
945 case ZigClangBuiltinTypeOCLImage2dArrayMSAARO:
946 case ZigClangBuiltinTypeOCLImage2dMSAADepthRO:
947 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRO:
948 case ZigClangBuiltinTypeOCLImage3dRO:
949 case ZigClangBuiltinTypeOCLImage1dWO:
950 case ZigClangBuiltinTypeOCLImage1dArrayWO:
951 case ZigClangBuiltinTypeOCLImage1dBufferWO:
952 case ZigClangBuiltinTypeOCLImage2dWO:
953 case ZigClangBuiltinTypeOCLImage2dArrayWO:
954 case ZigClangBuiltinTypeOCLImage2dDepthWO:
955 case ZigClangBuiltinTypeOCLImage2dArrayDepthWO:
956 case ZigClangBuiltinTypeOCLImage2dMSAAWO:
957 case ZigClangBuiltinTypeOCLImage2dArrayMSAAWO:
958 case ZigClangBuiltinTypeOCLImage2dMSAADepthWO:
959 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthWO:
960 case ZigClangBuiltinTypeOCLImage3dWO:
961 case ZigClangBuiltinTypeOCLImage1dRW:
962 case ZigClangBuiltinTypeOCLImage1dArrayRW:
963 case ZigClangBuiltinTypeOCLImage1dBufferRW:
964 case ZigClangBuiltinTypeOCLImage2dRW:
965 case ZigClangBuiltinTypeOCLImage2dArrayRW:
966 case ZigClangBuiltinTypeOCLImage2dDepthRW:
967 case ZigClangBuiltinTypeOCLImage2dArrayDepthRW:
968 case ZigClangBuiltinTypeOCLImage2dMSAARW:
969 case ZigClangBuiltinTypeOCLImage2dArrayMSAARW:
970 case ZigClangBuiltinTypeOCLImage2dMSAADepthRW:
971 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRW:
972 case ZigClangBuiltinTypeOCLImage3dRW:
973 case ZigClangBuiltinTypeOCLSampler:
974 case ZigClangBuiltinTypeOCLEvent:
975 case ZigClangBuiltinTypeOCLClkEvent:
976 case ZigClangBuiltinTypeOCLQueue:
977 case ZigClangBuiltinTypeOCLReserveID:
978 case ZigClangBuiltinTypeShortFract:
979 case ZigClangBuiltinTypeFract:
980 case ZigClangBuiltinTypeLongFract:
981 case ZigClangBuiltinTypeUShortFract:
982 case ZigClangBuiltinTypeUFract:
983 case ZigClangBuiltinTypeULongFract:
984 case ZigClangBuiltinTypeSatShortAccum:
985 case ZigClangBuiltinTypeSatAccum:
986 case ZigClangBuiltinTypeSatLongAccum:
987 case ZigClangBuiltinTypeSatUShortAccum:
988 case ZigClangBuiltinTypeSatUAccum:
989 case ZigClangBuiltinTypeSatULongAccum:
990 case ZigClangBuiltinTypeSatShortFract:
991 case ZigClangBuiltinTypeSatFract:
992 case ZigClangBuiltinTypeSatLongFract:
993 case ZigClangBuiltinTypeSatUShortFract:
994 case ZigClangBuiltinTypeSatUFract:
995 case ZigClangBuiltinTypeSatULongFract:
996 case ZigClangBuiltinTypeOCLIntelSubgroupAVCMcePayload:
997 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImePayload:
998 case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefPayload:
999 case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicPayload:
1000 case ZigClangBuiltinTypeOCLIntelSubgroupAVCMceResult:
1001 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResult:
1002 case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefResult:
1003 case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicResult:
1004 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultSingleRefStreamout:
1005 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout:
1006 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin:
1007 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin:
10341008 emit_warning(c, source_loc, "unsupported builtin type");
10351009 return nullptr;
10361010 }
......@@ -2729,128 +2703,128 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *
27292703 switch (classs) {
27302704 case ZigClangType_Builtin:
27312705 {
2732 const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(ty);
2733 switch (builtin_ty->getKind()) {
2734 case clang::BuiltinType::Bool:
2735 case clang::BuiltinType::Char_U:
2736 case clang::BuiltinType::UChar:
2737 case clang::BuiltinType::Char_S:
2738 case clang::BuiltinType::SChar:
2739 case clang::BuiltinType::UShort:
2740 case clang::BuiltinType::UInt:
2741 case clang::BuiltinType::ULong:
2742 case clang::BuiltinType::ULongLong:
2743 case clang::BuiltinType::Short:
2744 case clang::BuiltinType::Int:
2745 case clang::BuiltinType::Long:
2746 case clang::BuiltinType::LongLong:
2747 case clang::BuiltinType::UInt128:
2748 case clang::BuiltinType::Int128:
2749 case clang::BuiltinType::Float:
2750 case clang::BuiltinType::Double:
2751 case clang::BuiltinType::Float128:
2752 case clang::BuiltinType::LongDouble:
2753 case clang::BuiltinType::WChar_U:
2754 case clang::BuiltinType::Char8:
2755 case clang::BuiltinType::Char16:
2756 case clang::BuiltinType::Char32:
2757 case clang::BuiltinType::WChar_S:
2758 case clang::BuiltinType::Float16:
2706 const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(ty);
2707 switch (ZigClangBuiltinType_getKind(builtin_ty)) {
2708 case ZigClangBuiltinTypeBool:
2709 case ZigClangBuiltinTypeChar_U:
2710 case ZigClangBuiltinTypeUChar:
2711 case ZigClangBuiltinTypeChar_S:
2712 case ZigClangBuiltinTypeSChar:
2713 case ZigClangBuiltinTypeUShort:
2714 case ZigClangBuiltinTypeUInt:
2715 case ZigClangBuiltinTypeULong:
2716 case ZigClangBuiltinTypeULongLong:
2717 case ZigClangBuiltinTypeShort:
2718 case ZigClangBuiltinTypeInt:
2719 case ZigClangBuiltinTypeLong:
2720 case ZigClangBuiltinTypeLongLong:
2721 case ZigClangBuiltinTypeUInt128:
2722 case ZigClangBuiltinTypeInt128:
2723 case ZigClangBuiltinTypeFloat:
2724 case ZigClangBuiltinTypeDouble:
2725 case ZigClangBuiltinTypeFloat128:
2726 case ZigClangBuiltinTypeLongDouble:
2727 case ZigClangBuiltinTypeWChar_U:
2728 case ZigClangBuiltinTypeChar8:
2729 case ZigClangBuiltinTypeChar16:
2730 case ZigClangBuiltinTypeChar32:
2731 case ZigClangBuiltinTypeWChar_S:
2732 case ZigClangBuiltinTypeFloat16:
27592733 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:
27612735 return trans_create_node_bin_op(c, res, BinOpTypeCmpNotEq,
27622736 trans_create_node(c, NodeTypeNullLiteral));
27632737
2764 case clang::BuiltinType::Void:
2765 case clang::BuiltinType::Half:
2766 case clang::BuiltinType::ObjCId:
2767 case clang::BuiltinType::ObjCClass:
2768 case clang::BuiltinType::ObjCSel:
2769 case clang::BuiltinType::OMPArraySection:
2770 case clang::BuiltinType::Dependent:
2771 case clang::BuiltinType::Overload:
2772 case clang::BuiltinType::BoundMember:
2773 case clang::BuiltinType::PseudoObject:
2774 case clang::BuiltinType::UnknownAny:
2775 case clang::BuiltinType::BuiltinFn:
2776 case clang::BuiltinType::ARCUnbridgedCast:
2777 case clang::BuiltinType::OCLImage1dRO:
2778 case clang::BuiltinType::OCLImage1dArrayRO:
2779 case clang::BuiltinType::OCLImage1dBufferRO:
2780 case clang::BuiltinType::OCLImage2dRO:
2781 case clang::BuiltinType::OCLImage2dArrayRO:
2782 case clang::BuiltinType::OCLImage2dDepthRO:
2783 case clang::BuiltinType::OCLImage2dArrayDepthRO:
2784 case clang::BuiltinType::OCLImage2dMSAARO:
2785 case clang::BuiltinType::OCLImage2dArrayMSAARO:
2786 case clang::BuiltinType::OCLImage2dMSAADepthRO:
2787 case clang::BuiltinType::OCLImage2dArrayMSAADepthRO:
2788 case clang::BuiltinType::OCLImage3dRO:
2789 case clang::BuiltinType::OCLImage1dWO:
2790 case clang::BuiltinType::OCLImage1dArrayWO:
2791 case clang::BuiltinType::OCLImage1dBufferWO:
2792 case clang::BuiltinType::OCLImage2dWO:
2793 case clang::BuiltinType::OCLImage2dArrayWO:
2794 case clang::BuiltinType::OCLImage2dDepthWO:
2795 case clang::BuiltinType::OCLImage2dArrayDepthWO:
2796 case clang::BuiltinType::OCLImage2dMSAAWO:
2797 case clang::BuiltinType::OCLImage2dArrayMSAAWO:
2798 case clang::BuiltinType::OCLImage2dMSAADepthWO:
2799 case clang::BuiltinType::OCLImage2dArrayMSAADepthWO:
2800 case clang::BuiltinType::OCLImage3dWO:
2801 case clang::BuiltinType::OCLImage1dRW:
2802 case clang::BuiltinType::OCLImage1dArrayRW:
2803 case clang::BuiltinType::OCLImage1dBufferRW:
2804 case clang::BuiltinType::OCLImage2dRW:
2805 case clang::BuiltinType::OCLImage2dArrayRW:
2806 case clang::BuiltinType::OCLImage2dDepthRW:
2807 case clang::BuiltinType::OCLImage2dArrayDepthRW:
2808 case clang::BuiltinType::OCLImage2dMSAARW:
2809 case clang::BuiltinType::OCLImage2dArrayMSAARW:
2810 case clang::BuiltinType::OCLImage2dMSAADepthRW:
2811 case clang::BuiltinType::OCLImage2dArrayMSAADepthRW:
2812 case clang::BuiltinType::OCLImage3dRW:
2813 case clang::BuiltinType::OCLSampler:
2814 case clang::BuiltinType::OCLEvent:
2815 case clang::BuiltinType::OCLClkEvent:
2816 case clang::BuiltinType::OCLQueue:
2817 case clang::BuiltinType::OCLReserveID:
2818 case clang::BuiltinType::ShortAccum:
2819 case clang::BuiltinType::Accum:
2820 case clang::BuiltinType::LongAccum:
2821 case clang::BuiltinType::UShortAccum:
2822 case clang::BuiltinType::UAccum:
2823 case clang::BuiltinType::ULongAccum:
2824 case clang::BuiltinType::ShortFract:
2825 case clang::BuiltinType::Fract:
2826 case clang::BuiltinType::LongFract:
2827 case clang::BuiltinType::UShortFract:
2828 case clang::BuiltinType::UFract:
2829 case clang::BuiltinType::ULongFract:
2830 case clang::BuiltinType::SatShortAccum:
2831 case clang::BuiltinType::SatAccum:
2832 case clang::BuiltinType::SatLongAccum:
2833 case clang::BuiltinType::SatUShortAccum:
2834 case clang::BuiltinType::SatUAccum:
2835 case clang::BuiltinType::SatULongAccum:
2836 case clang::BuiltinType::SatShortFract:
2837 case clang::BuiltinType::SatFract:
2838 case clang::BuiltinType::SatLongFract:
2839 case clang::BuiltinType::SatUShortFract:
2840 case clang::BuiltinType::SatUFract:
2841 case clang::BuiltinType::SatULongFract:
2842 case clang::BuiltinType::OCLIntelSubgroupAVCMcePayload:
2843 case clang::BuiltinType::OCLIntelSubgroupAVCImePayload:
2844 case clang::BuiltinType::OCLIntelSubgroupAVCRefPayload:
2845 case clang::BuiltinType::OCLIntelSubgroupAVCSicPayload:
2846 case clang::BuiltinType::OCLIntelSubgroupAVCMceResult:
2847 case clang::BuiltinType::OCLIntelSubgroupAVCImeResult:
2848 case clang::BuiltinType::OCLIntelSubgroupAVCRefResult:
2849 case clang::BuiltinType::OCLIntelSubgroupAVCSicResult:
2850 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout:
2851 case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout:
2852 case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin:
2853 case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin:
2738 case ZigClangBuiltinTypeVoid:
2739 case ZigClangBuiltinTypeHalf:
2740 case ZigClangBuiltinTypeObjCId:
2741 case ZigClangBuiltinTypeObjCClass:
2742 case ZigClangBuiltinTypeObjCSel:
2743 case ZigClangBuiltinTypeOMPArraySection:
2744 case ZigClangBuiltinTypeDependent:
2745 case ZigClangBuiltinTypeOverload:
2746 case ZigClangBuiltinTypeBoundMember:
2747 case ZigClangBuiltinTypePseudoObject:
2748 case ZigClangBuiltinTypeUnknownAny:
2749 case ZigClangBuiltinTypeBuiltinFn:
2750 case ZigClangBuiltinTypeARCUnbridgedCast:
2751 case ZigClangBuiltinTypeOCLImage1dRO:
2752 case ZigClangBuiltinTypeOCLImage1dArrayRO:
2753 case ZigClangBuiltinTypeOCLImage1dBufferRO:
2754 case ZigClangBuiltinTypeOCLImage2dRO:
2755 case ZigClangBuiltinTypeOCLImage2dArrayRO:
2756 case ZigClangBuiltinTypeOCLImage2dDepthRO:
2757 case ZigClangBuiltinTypeOCLImage2dArrayDepthRO:
2758 case ZigClangBuiltinTypeOCLImage2dMSAARO:
2759 case ZigClangBuiltinTypeOCLImage2dArrayMSAARO:
2760 case ZigClangBuiltinTypeOCLImage2dMSAADepthRO:
2761 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRO:
2762 case ZigClangBuiltinTypeOCLImage3dRO:
2763 case ZigClangBuiltinTypeOCLImage1dWO:
2764 case ZigClangBuiltinTypeOCLImage1dArrayWO:
2765 case ZigClangBuiltinTypeOCLImage1dBufferWO:
2766 case ZigClangBuiltinTypeOCLImage2dWO:
2767 case ZigClangBuiltinTypeOCLImage2dArrayWO:
2768 case ZigClangBuiltinTypeOCLImage2dDepthWO:
2769 case ZigClangBuiltinTypeOCLImage2dArrayDepthWO:
2770 case ZigClangBuiltinTypeOCLImage2dMSAAWO:
2771 case ZigClangBuiltinTypeOCLImage2dArrayMSAAWO:
2772 case ZigClangBuiltinTypeOCLImage2dMSAADepthWO:
2773 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthWO:
2774 case ZigClangBuiltinTypeOCLImage3dWO:
2775 case ZigClangBuiltinTypeOCLImage1dRW:
2776 case ZigClangBuiltinTypeOCLImage1dArrayRW:
2777 case ZigClangBuiltinTypeOCLImage1dBufferRW:
2778 case ZigClangBuiltinTypeOCLImage2dRW:
2779 case ZigClangBuiltinTypeOCLImage2dArrayRW:
2780 case ZigClangBuiltinTypeOCLImage2dDepthRW:
2781 case ZigClangBuiltinTypeOCLImage2dArrayDepthRW:
2782 case ZigClangBuiltinTypeOCLImage2dMSAARW:
2783 case ZigClangBuiltinTypeOCLImage2dArrayMSAARW:
2784 case ZigClangBuiltinTypeOCLImage2dMSAADepthRW:
2785 case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRW:
2786 case ZigClangBuiltinTypeOCLImage3dRW:
2787 case ZigClangBuiltinTypeOCLSampler:
2788 case ZigClangBuiltinTypeOCLEvent:
2789 case ZigClangBuiltinTypeOCLClkEvent:
2790 case ZigClangBuiltinTypeOCLQueue:
2791 case ZigClangBuiltinTypeOCLReserveID:
2792 case ZigClangBuiltinTypeShortAccum:
2793 case ZigClangBuiltinTypeAccum:
2794 case ZigClangBuiltinTypeLongAccum:
2795 case ZigClangBuiltinTypeUShortAccum:
2796 case ZigClangBuiltinTypeUAccum:
2797 case ZigClangBuiltinTypeULongAccum:
2798 case ZigClangBuiltinTypeShortFract:
2799 case ZigClangBuiltinTypeFract:
2800 case ZigClangBuiltinTypeLongFract:
2801 case ZigClangBuiltinTypeUShortFract:
2802 case ZigClangBuiltinTypeUFract:
2803 case ZigClangBuiltinTypeULongFract:
2804 case ZigClangBuiltinTypeSatShortAccum:
2805 case ZigClangBuiltinTypeSatAccum:
2806 case ZigClangBuiltinTypeSatLongAccum:
2807 case ZigClangBuiltinTypeSatUShortAccum:
2808 case ZigClangBuiltinTypeSatUAccum:
2809 case ZigClangBuiltinTypeSatULongAccum:
2810 case ZigClangBuiltinTypeSatShortFract:
2811 case ZigClangBuiltinTypeSatFract:
2812 case ZigClangBuiltinTypeSatLongFract:
2813 case ZigClangBuiltinTypeSatUShortFract:
2814 case ZigClangBuiltinTypeSatUFract:
2815 case ZigClangBuiltinTypeSatULongFract:
2816 case ZigClangBuiltinTypeOCLIntelSubgroupAVCMcePayload:
2817 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImePayload:
2818 case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefPayload:
2819 case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicPayload:
2820 case ZigClangBuiltinTypeOCLIntelSubgroupAVCMceResult:
2821 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResult:
2822 case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefResult:
2823 case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicResult:
2824 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultSingleRefStreamout:
2825 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout:
2826 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin:
2827 case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin:
28542828 return res;
28552829 }
28562830 break;
......@@ -4268,8 +4242,8 @@ static AstNode *resolve_enum_decl(Context *c, const ZigClangEnumDecl *enum_decl)
42684242 // TODO only emit this tag type if the enum tag type is not the default.
42694243 // I don't know what the default is, need to figure out how clang is deciding.
42704244 // it appears to at least be different across gcc/msvc
4271 if (!c_is_builtin_type(c, ZigClangEnumDecl_getIntegerType(enum_decl), clang::BuiltinType::UInt) &&
4272 !c_is_builtin_type(c, ZigClangEnumDecl_getIntegerType(enum_decl), clang::BuiltinType::Int))
4245 if (!c_is_builtin_type(c, ZigClangEnumDecl_getIntegerType(enum_decl), ZigClangBuiltinTypeUInt) &&
4246 !c_is_builtin_type(c, ZigClangEnumDecl_getIntegerType(enum_decl), ZigClangBuiltinTypeInt))
42734247 {
42744248 enum_node->data.container_decl.init_arg_expr = tag_int_type;
42754249 }
src/zig_clang.cpp+244
......@@ -954,6 +954,245 @@ static_assert((clang::Decl::Kind)ZigClangDeclPragmaDetectMismatch == clang::Decl
954954static_assert((clang::Decl::Kind)ZigClangDeclStaticAssert == clang::Decl::StaticAssert, "");
955955static_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
9581197static_assert(sizeof(ZigClangSourceLocation) == sizeof(clang::SourceLocation), "");
9591198static ZigClangSourceLocation bitcast(clang::SourceLocation src) {
......@@ -1449,3 +1688,8 @@ void ZigClangErrorMsg_delete(Stage2ErrorMsg *ptr, size_t len) {
14491688void ZigClangASTUnit_delete(struct ZigClangASTUnit *self) {
14501689 delete reinterpret_cast<clang::ASTUnit *>(self);
14511690}
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 {
559559 ZigClangDeclTranslationUnit,
560560};
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
562681ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const struct ZigClangSourceManager *,
563682 struct ZigClangSourceLocation Loc);
564683ZIG_EXTERN_C const char *ZigClangSourceManager_getFilename(const struct ZigClangSourceManager *,
......@@ -655,4 +774,6 @@ ZIG_EXTERN_C unsigned ZigClangAPSInt_getNumWords(const struct ZigClangAPSInt *se
655774
656775ZIG_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
658779#endif