Commit 214625587c
Changed files (3)
src/translate_c.cpp
@@ -127,6 +127,7 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *
const ZigClangExpr *expr, TransLRValue lrval);
static AstNode *trans_ap_value(Context *c, const ZigClangAPValue *ap_value, ZigClangQualType qt,
ZigClangSourceLocation source_loc);
+static bool c_is_unsigned_integer(Context *c, ZigClangQualType qt);
static const ZigClangAPSInt *bitcast(const llvm::APSInt *src) {
return reinterpret_cast<const ZigClangAPSInt *>(src);
@@ -581,33 +582,6 @@ static bool qual_type_is_ptr(ZigClangQualType qt) {
return ZigClangType_getTypeClass(ty) == ZigClangType_Pointer;
}
-static bool qual_type_is_int(ZigClangQualType qt) {
- const ZigClangType *ty = qual_type_canon(qt);
- if (ZigClangType_getTypeClass(ty) != ZigClangType_Builtin)
- return false;
- const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(ty);
- switch (builtin_ty->getKind()) {
- case clang::BuiltinType::Char_U:
- case clang::BuiltinType::UChar:
- case clang::BuiltinType::Char_S:
- case clang::BuiltinType::Char8:
- case clang::BuiltinType::SChar:
- case clang::BuiltinType::UShort:
- case clang::BuiltinType::UInt:
- case clang::BuiltinType::ULong:
- case clang::BuiltinType::ULongLong:
- case clang::BuiltinType::Short:
- case clang::BuiltinType::Int:
- case clang::BuiltinType::Long:
- case clang::BuiltinType::LongLong:
- case clang::BuiltinType::UInt128:
- case clang::BuiltinType::Int128:
- return true;
- default:
- return false;
- }
-}
-
static const clang::FunctionProtoType *qual_type_get_fn_proto(ZigClangQualType qt, bool *is_ptr) {
const ZigClangType *ty = qual_type_canon(qt);
*is_ptr = false;
@@ -639,15 +613,15 @@ static uint32_t qual_type_int_bit_width(Context *c, const ZigClangQualType qt, Z
switch (ZigClangType_getTypeClass(ty)) {
case ZigClangType_Builtin:
{
- const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(ty);
- switch (builtin_ty->getKind()) {
- case clang::BuiltinType::Char_U:
- case clang::BuiltinType::UChar:
- case clang::BuiltinType::Char_S:
- case clang::BuiltinType::SChar:
+ const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(ty);
+ switch (ZigClangBuiltinType_getKind(builtin_ty)) {
+ case ZigClangBuiltinTypeChar_U:
+ case ZigClangBuiltinTypeUChar:
+ case ZigClangBuiltinTypeChar_S:
+ case ZigClangBuiltinTypeSChar:
return 8;
- case clang::BuiltinType::UInt128:
- case clang::BuiltinType::Int128:
+ case ZigClangBuiltinTypeUInt128:
+ case ZigClangBuiltinTypeInt128:
return 128;
default:
return 0;
@@ -771,12 +745,12 @@ static AstNode* trans_c_cast(Context *c, ZigClangSourceLocation source_location,
if (qual_type_is_ptr(dest_type) && qual_type_is_ptr(src_type)) {
return trans_c_ptr_cast(c, source_location, dest_type, src_type, expr);
}
- if (qual_type_is_int(dest_type) && qual_type_is_ptr(src_type)) {
+ if (c_is_unsigned_integer(c, dest_type) && qual_type_is_ptr(src_type)) {
AstNode *addr_node = trans_create_node_builtin_fn_call_str(c, "ptrToInt");
addr_node->data.fn_call_expr.params.append(expr);
return trans_create_node_fn_call_1(c, trans_qual_type(c, dest_type, source_location), addr_node);
}
- if (qual_type_is_int(src_type) && qual_type_is_ptr(dest_type)) {
+ if (c_is_unsigned_integer(c, src_type) && qual_type_is_ptr(dest_type)) {
AstNode *ptr_node = trans_create_node_builtin_fn_call_str(c, "intToPtr");
ptr_node->data.fn_call_expr.params.append(trans_qual_type(c, dest_type, source_location));
ptr_node->data.fn_call_expr.params.append(expr);
@@ -792,15 +766,15 @@ static bool c_is_signed_integer(Context *c, ZigClangQualType qt) {
const ZigClangType *c_type = qual_type_canon(qt);
if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)
return false;
- const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(c_type);
- switch (builtin_ty->getKind()) {
- case clang::BuiltinType::SChar:
- case clang::BuiltinType::Short:
- case clang::BuiltinType::Int:
- case clang::BuiltinType::Long:
- case clang::BuiltinType::LongLong:
- case clang::BuiltinType::Int128:
- case clang::BuiltinType::WChar_S:
+ const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(c_type);
+ switch (ZigClangBuiltinType_getKind(builtin_ty)) {
+ case ZigClangBuiltinTypeSChar:
+ case ZigClangBuiltinTypeShort:
+ case ZigClangBuiltinTypeInt:
+ case ZigClangBuiltinTypeLong:
+ case ZigClangBuiltinTypeLongLong:
+ case ZigClangBuiltinTypeInt128:
+ case ZigClangBuiltinTypeWChar_S:
return true;
default:
return false;
@@ -811,42 +785,42 @@ static bool c_is_unsigned_integer(Context *c, ZigClangQualType qt) {
const ZigClangType *c_type = qual_type_canon(qt);
if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)
return false;
- const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(c_type);
- switch (builtin_ty->getKind()) {
- case clang::BuiltinType::Char_U:
- case clang::BuiltinType::UChar:
- case clang::BuiltinType::Char_S:
- case clang::BuiltinType::UShort:
- case clang::BuiltinType::UInt:
- case clang::BuiltinType::ULong:
- case clang::BuiltinType::ULongLong:
- case clang::BuiltinType::UInt128:
- case clang::BuiltinType::WChar_U:
+ const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(c_type);
+ switch (ZigClangBuiltinType_getKind(builtin_ty)) {
+ case ZigClangBuiltinTypeChar_U:
+ case ZigClangBuiltinTypeUChar:
+ case ZigClangBuiltinTypeChar_S:
+ case ZigClangBuiltinTypeUShort:
+ case ZigClangBuiltinTypeUInt:
+ case ZigClangBuiltinTypeULong:
+ case ZigClangBuiltinTypeULongLong:
+ case ZigClangBuiltinTypeUInt128:
+ case ZigClangBuiltinTypeWChar_U:
return true;
default:
return false;
}
}
-static bool c_is_builtin_type(Context *c, ZigClangQualType qt, clang::BuiltinType::Kind kind) {
+static bool c_is_builtin_type(Context *c, ZigClangQualType qt, ZigClangBuiltinTypeKind kind) {
const ZigClangType *c_type = qual_type_canon(qt);
if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)
return false;
- const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(c_type);
- return builtin_ty->getKind() == kind;
+ const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(c_type);
+ return ZigClangBuiltinType_getKind(builtin_ty) == kind;
}
static bool c_is_float(Context *c, ZigClangQualType qt) {
const ZigClangType *c_type = ZigClangQualType_getTypePtr(qt);
if (ZigClangType_getTypeClass(c_type) != ZigClangType_Builtin)
return false;
- const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(c_type);
- switch (builtin_ty->getKind()) {
- case clang::BuiltinType::Half:
- case clang::BuiltinType::Float:
- case clang::BuiltinType::Double:
- case clang::BuiltinType::Float128:
- case clang::BuiltinType::LongDouble:
+ const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(c_type);
+ switch (ZigClangBuiltinType_getKind(builtin_ty)) {
+ case ZigClangBuiltinTypeHalf:
+ case ZigClangBuiltinTypeFloat:
+ case ZigClangBuiltinTypeDouble:
+ case ZigClangBuiltinTypeFloat128:
+ case ZigClangBuiltinTypeLongDouble:
return true;
default:
return false;
@@ -866,8 +840,8 @@ static bool qual_type_has_wrapping_overflow(Context *c, ZigClangQualType qt) {
static bool type_is_opaque(Context *c, const ZigClangType *ty, ZigClangSourceLocation source_loc) {
switch (ZigClangType_getTypeClass(ty)) {
case ZigClangType_Builtin: {
- const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(ty);
- return builtin_ty->getKind() == clang::BuiltinType::Void;
+ const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(ty);
+ return ZigClangBuiltinType_getKind(builtin_ty) == ZigClangBuiltinTypeVoid;
}
case ZigClangType_Record: {
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
switch (ZigClangType_getTypeClass(ty)) {
case ZigClangType_Builtin:
{
- const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(ty);
- switch (builtin_ty->getKind()) {
- case clang::BuiltinType::Void:
+ const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType *>(ty);
+ switch (ZigClangBuiltinType_getKind(builtin_ty)) {
+ case ZigClangBuiltinTypeVoid:
return trans_create_node_symbol_str(c, "c_void");
- case clang::BuiltinType::Bool:
+ case ZigClangBuiltinTypeBool:
return trans_create_node_symbol_str(c, "bool");
- case clang::BuiltinType::Char_U:
- case clang::BuiltinType::UChar:
- case clang::BuiltinType::Char_S:
- case clang::BuiltinType::Char8:
+ case ZigClangBuiltinTypeChar_U:
+ case ZigClangBuiltinTypeUChar:
+ case ZigClangBuiltinTypeChar_S:
+ case ZigClangBuiltinTypeChar8:
return trans_create_node_symbol_str(c, "u8");
- case clang::BuiltinType::SChar:
+ case ZigClangBuiltinTypeSChar:
return trans_create_node_symbol_str(c, "i8");
- case clang::BuiltinType::UShort:
+ case ZigClangBuiltinTypeUShort:
return trans_create_node_symbol_str(c, "c_ushort");
- case clang::BuiltinType::UInt:
+ case ZigClangBuiltinTypeUInt:
return trans_create_node_symbol_str(c, "c_uint");
- case clang::BuiltinType::ULong:
+ case ZigClangBuiltinTypeULong:
return trans_create_node_symbol_str(c, "c_ulong");
- case clang::BuiltinType::ULongLong:
+ case ZigClangBuiltinTypeULongLong:
return trans_create_node_symbol_str(c, "c_ulonglong");
- case clang::BuiltinType::Short:
+ case ZigClangBuiltinTypeShort:
return trans_create_node_symbol_str(c, "c_short");
- case clang::BuiltinType::Int:
+ case ZigClangBuiltinTypeInt:
return trans_create_node_symbol_str(c, "c_int");
- case clang::BuiltinType::Long:
+ case ZigClangBuiltinTypeLong:
return trans_create_node_symbol_str(c, "c_long");
- case clang::BuiltinType::LongLong:
+ case ZigClangBuiltinTypeLongLong:
return trans_create_node_symbol_str(c, "c_longlong");
- case clang::BuiltinType::UInt128:
+ case ZigClangBuiltinTypeUInt128:
return trans_create_node_symbol_str(c, "u128");
- case clang::BuiltinType::Int128:
+ case ZigClangBuiltinTypeInt128:
return trans_create_node_symbol_str(c, "i128");
- case clang::BuiltinType::Float:
+ case ZigClangBuiltinTypeFloat:
return trans_create_node_symbol_str(c, "f32");
- case clang::BuiltinType::Double:
+ case ZigClangBuiltinTypeDouble:
return trans_create_node_symbol_str(c, "f64");
- case clang::BuiltinType::Float128:
+ case ZigClangBuiltinTypeFloat128:
return trans_create_node_symbol_str(c, "f128");
- case clang::BuiltinType::Float16:
+ case ZigClangBuiltinTypeFloat16:
return trans_create_node_symbol_str(c, "f16");
- case clang::BuiltinType::LongDouble:
+ case ZigClangBuiltinTypeLongDouble:
return trans_create_node_symbol_str(c, "c_longdouble");
- case clang::BuiltinType::WChar_U:
- case clang::BuiltinType::Char16:
- case clang::BuiltinType::Char32:
- case clang::BuiltinType::WChar_S:
- case clang::BuiltinType::Half:
- case clang::BuiltinType::NullPtr:
- case clang::BuiltinType::ObjCId:
- case clang::BuiltinType::ObjCClass:
- case clang::BuiltinType::ObjCSel:
- case clang::BuiltinType::OMPArraySection:
- case clang::BuiltinType::Dependent:
- case clang::BuiltinType::Overload:
- case clang::BuiltinType::BoundMember:
- case clang::BuiltinType::PseudoObject:
- case clang::BuiltinType::UnknownAny:
- case clang::BuiltinType::BuiltinFn:
- case clang::BuiltinType::ARCUnbridgedCast:
- case clang::BuiltinType::ShortAccum:
- case clang::BuiltinType::Accum:
- case clang::BuiltinType::LongAccum:
- case clang::BuiltinType::UShortAccum:
- case clang::BuiltinType::UAccum:
- case clang::BuiltinType::ULongAccum:
-
- case clang::BuiltinType::OCLImage1dRO:
- case clang::BuiltinType::OCLImage1dArrayRO:
- case clang::BuiltinType::OCLImage1dBufferRO:
- case clang::BuiltinType::OCLImage2dRO:
- case clang::BuiltinType::OCLImage2dArrayRO:
- case clang::BuiltinType::OCLImage2dDepthRO:
- case clang::BuiltinType::OCLImage2dArrayDepthRO:
- case clang::BuiltinType::OCLImage2dMSAARO:
- case clang::BuiltinType::OCLImage2dArrayMSAARO:
- case clang::BuiltinType::OCLImage2dMSAADepthRO:
- case clang::BuiltinType::OCLImage2dArrayMSAADepthRO:
- case clang::BuiltinType::OCLImage3dRO:
- case clang::BuiltinType::OCLImage1dWO:
- case clang::BuiltinType::OCLImage1dArrayWO:
- case clang::BuiltinType::OCLImage1dBufferWO:
- case clang::BuiltinType::OCLImage2dWO:
- case clang::BuiltinType::OCLImage2dArrayWO:
- case clang::BuiltinType::OCLImage2dDepthWO:
- case clang::BuiltinType::OCLImage2dArrayDepthWO:
- case clang::BuiltinType::OCLImage2dMSAAWO:
- case clang::BuiltinType::OCLImage2dArrayMSAAWO:
- case clang::BuiltinType::OCLImage2dMSAADepthWO:
- case clang::BuiltinType::OCLImage2dArrayMSAADepthWO:
- case clang::BuiltinType::OCLImage3dWO:
- case clang::BuiltinType::OCLImage1dRW:
- case clang::BuiltinType::OCLImage1dArrayRW:
- case clang::BuiltinType::OCLImage1dBufferRW:
- case clang::BuiltinType::OCLImage2dRW:
- case clang::BuiltinType::OCLImage2dArrayRW:
- case clang::BuiltinType::OCLImage2dDepthRW:
- case clang::BuiltinType::OCLImage2dArrayDepthRW:
- case clang::BuiltinType::OCLImage2dMSAARW:
- case clang::BuiltinType::OCLImage2dArrayMSAARW:
- case clang::BuiltinType::OCLImage2dMSAADepthRW:
- case clang::BuiltinType::OCLImage2dArrayMSAADepthRW:
- case clang::BuiltinType::OCLImage3dRW:
- case clang::BuiltinType::OCLSampler:
- case clang::BuiltinType::OCLEvent:
- case clang::BuiltinType::OCLClkEvent:
- case clang::BuiltinType::OCLQueue:
- case clang::BuiltinType::OCLReserveID:
- case clang::BuiltinType::ShortFract:
- case clang::BuiltinType::Fract:
- case clang::BuiltinType::LongFract:
- case clang::BuiltinType::UShortFract:
- case clang::BuiltinType::UFract:
- case clang::BuiltinType::ULongFract:
- case clang::BuiltinType::SatShortAccum:
- case clang::BuiltinType::SatAccum:
- case clang::BuiltinType::SatLongAccum:
- case clang::BuiltinType::SatUShortAccum:
- case clang::BuiltinType::SatUAccum:
- case clang::BuiltinType::SatULongAccum:
- case clang::BuiltinType::SatShortFract:
- case clang::BuiltinType::SatFract:
- case clang::BuiltinType::SatLongFract:
- case clang::BuiltinType::SatUShortFract:
- case clang::BuiltinType::SatUFract:
- case clang::BuiltinType::SatULongFract:
- case clang::BuiltinType::OCLIntelSubgroupAVCMcePayload:
- case clang::BuiltinType::OCLIntelSubgroupAVCImePayload:
- case clang::BuiltinType::OCLIntelSubgroupAVCRefPayload:
- case clang::BuiltinType::OCLIntelSubgroupAVCSicPayload:
- case clang::BuiltinType::OCLIntelSubgroupAVCMceResult:
- case clang::BuiltinType::OCLIntelSubgroupAVCImeResult:
- case clang::BuiltinType::OCLIntelSubgroupAVCRefResult:
- case clang::BuiltinType::OCLIntelSubgroupAVCSicResult:
- case clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout:
- case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout:
- case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin:
- case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin:
+ case ZigClangBuiltinTypeWChar_U:
+ case ZigClangBuiltinTypeChar16:
+ case ZigClangBuiltinTypeChar32:
+ case ZigClangBuiltinTypeWChar_S:
+ case ZigClangBuiltinTypeHalf:
+ case ZigClangBuiltinTypeNullPtr:
+ case ZigClangBuiltinTypeObjCId:
+ case ZigClangBuiltinTypeObjCClass:
+ case ZigClangBuiltinTypeObjCSel:
+ case ZigClangBuiltinTypeOMPArraySection:
+ case ZigClangBuiltinTypeDependent:
+ case ZigClangBuiltinTypeOverload:
+ case ZigClangBuiltinTypeBoundMember:
+ case ZigClangBuiltinTypePseudoObject:
+ case ZigClangBuiltinTypeUnknownAny:
+ case ZigClangBuiltinTypeBuiltinFn:
+ case ZigClangBuiltinTypeARCUnbridgedCast:
+ case ZigClangBuiltinTypeShortAccum:
+ case ZigClangBuiltinTypeAccum:
+ case ZigClangBuiltinTypeLongAccum:
+ case ZigClangBuiltinTypeUShortAccum:
+ case ZigClangBuiltinTypeUAccum:
+ case ZigClangBuiltinTypeULongAccum:
+
+ case ZigClangBuiltinTypeOCLImage1dRO:
+ case ZigClangBuiltinTypeOCLImage1dArrayRO:
+ case ZigClangBuiltinTypeOCLImage1dBufferRO:
+ case ZigClangBuiltinTypeOCLImage2dRO:
+ case ZigClangBuiltinTypeOCLImage2dArrayRO:
+ case ZigClangBuiltinTypeOCLImage2dDepthRO:
+ case ZigClangBuiltinTypeOCLImage2dArrayDepthRO:
+ case ZigClangBuiltinTypeOCLImage2dMSAARO:
+ case ZigClangBuiltinTypeOCLImage2dArrayMSAARO:
+ case ZigClangBuiltinTypeOCLImage2dMSAADepthRO:
+ case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRO:
+ case ZigClangBuiltinTypeOCLImage3dRO:
+ case ZigClangBuiltinTypeOCLImage1dWO:
+ case ZigClangBuiltinTypeOCLImage1dArrayWO:
+ case ZigClangBuiltinTypeOCLImage1dBufferWO:
+ case ZigClangBuiltinTypeOCLImage2dWO:
+ case ZigClangBuiltinTypeOCLImage2dArrayWO:
+ case ZigClangBuiltinTypeOCLImage2dDepthWO:
+ case ZigClangBuiltinTypeOCLImage2dArrayDepthWO:
+ case ZigClangBuiltinTypeOCLImage2dMSAAWO:
+ case ZigClangBuiltinTypeOCLImage2dArrayMSAAWO:
+ case ZigClangBuiltinTypeOCLImage2dMSAADepthWO:
+ case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthWO:
+ case ZigClangBuiltinTypeOCLImage3dWO:
+ case ZigClangBuiltinTypeOCLImage1dRW:
+ case ZigClangBuiltinTypeOCLImage1dArrayRW:
+ case ZigClangBuiltinTypeOCLImage1dBufferRW:
+ case ZigClangBuiltinTypeOCLImage2dRW:
+ case ZigClangBuiltinTypeOCLImage2dArrayRW:
+ case ZigClangBuiltinTypeOCLImage2dDepthRW:
+ case ZigClangBuiltinTypeOCLImage2dArrayDepthRW:
+ case ZigClangBuiltinTypeOCLImage2dMSAARW:
+ case ZigClangBuiltinTypeOCLImage2dArrayMSAARW:
+ case ZigClangBuiltinTypeOCLImage2dMSAADepthRW:
+ case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRW:
+ case ZigClangBuiltinTypeOCLImage3dRW:
+ case ZigClangBuiltinTypeOCLSampler:
+ case ZigClangBuiltinTypeOCLEvent:
+ case ZigClangBuiltinTypeOCLClkEvent:
+ case ZigClangBuiltinTypeOCLQueue:
+ case ZigClangBuiltinTypeOCLReserveID:
+ case ZigClangBuiltinTypeShortFract:
+ case ZigClangBuiltinTypeFract:
+ case ZigClangBuiltinTypeLongFract:
+ case ZigClangBuiltinTypeUShortFract:
+ case ZigClangBuiltinTypeUFract:
+ case ZigClangBuiltinTypeULongFract:
+ case ZigClangBuiltinTypeSatShortAccum:
+ case ZigClangBuiltinTypeSatAccum:
+ case ZigClangBuiltinTypeSatLongAccum:
+ case ZigClangBuiltinTypeSatUShortAccum:
+ case ZigClangBuiltinTypeSatUAccum:
+ case ZigClangBuiltinTypeSatULongAccum:
+ case ZigClangBuiltinTypeSatShortFract:
+ case ZigClangBuiltinTypeSatFract:
+ case ZigClangBuiltinTypeSatLongFract:
+ case ZigClangBuiltinTypeSatUShortFract:
+ case ZigClangBuiltinTypeSatUFract:
+ case ZigClangBuiltinTypeSatULongFract:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCMcePayload:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCImePayload:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefPayload:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicPayload:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCMceResult:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResult:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefResult:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicResult:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultSingleRefStreamout:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin:
emit_warning(c, source_loc, "unsupported builtin type");
return nullptr;
}
@@ -2729,128 +2703,128 @@ static AstNode *trans_bool_expr(Context *c, ResultUsed result_used, TransScope *
switch (classs) {
case ZigClangType_Builtin:
{
- const clang::BuiltinType *builtin_ty = reinterpret_cast<const clang::BuiltinType*>(ty);
- switch (builtin_ty->getKind()) {
- case clang::BuiltinType::Bool:
- case clang::BuiltinType::Char_U:
- case clang::BuiltinType::UChar:
- case clang::BuiltinType::Char_S:
- case clang::BuiltinType::SChar:
- case clang::BuiltinType::UShort:
- case clang::BuiltinType::UInt:
- case clang::BuiltinType::ULong:
- case clang::BuiltinType::ULongLong:
- case clang::BuiltinType::Short:
- case clang::BuiltinType::Int:
- case clang::BuiltinType::Long:
- case clang::BuiltinType::LongLong:
- case clang::BuiltinType::UInt128:
- case clang::BuiltinType::Int128:
- case clang::BuiltinType::Float:
- case clang::BuiltinType::Double:
- case clang::BuiltinType::Float128:
- case clang::BuiltinType::LongDouble:
- case clang::BuiltinType::WChar_U:
- case clang::BuiltinType::Char8:
- case clang::BuiltinType::Char16:
- case clang::BuiltinType::Char32:
- case clang::BuiltinType::WChar_S:
- case clang::BuiltinType::Float16:
+ const ZigClangBuiltinType *builtin_ty = reinterpret_cast<const ZigClangBuiltinType*>(ty);
+ switch (ZigClangBuiltinType_getKind(builtin_ty)) {
+ case ZigClangBuiltinTypeBool:
+ case ZigClangBuiltinTypeChar_U:
+ case ZigClangBuiltinTypeUChar:
+ case ZigClangBuiltinTypeChar_S:
+ case ZigClangBuiltinTypeSChar:
+ case ZigClangBuiltinTypeUShort:
+ case ZigClangBuiltinTypeUInt:
+ case ZigClangBuiltinTypeULong:
+ case ZigClangBuiltinTypeULongLong:
+ case ZigClangBuiltinTypeShort:
+ case ZigClangBuiltinTypeInt:
+ case ZigClangBuiltinTypeLong:
+ case ZigClangBuiltinTypeLongLong:
+ case ZigClangBuiltinTypeUInt128:
+ case ZigClangBuiltinTypeInt128:
+ case ZigClangBuiltinTypeFloat:
+ case ZigClangBuiltinTypeDouble:
+ case ZigClangBuiltinTypeFloat128:
+ case ZigClangBuiltinTypeLongDouble:
+ case ZigClangBuiltinTypeWChar_U:
+ case ZigClangBuiltinTypeChar8:
+ case ZigClangBuiltinTypeChar16:
+ case ZigClangBuiltinTypeChar32:
+ case ZigClangBuiltinTypeWChar_S:
+ case ZigClangBuiltinTypeFloat16:
return trans_create_node_bin_op(c, res, BinOpTypeCmpNotEq, trans_create_node_unsigned_negative(c, 0, false));
- case clang::BuiltinType::NullPtr:
+ case ZigClangBuiltinTypeNullPtr:
return trans_create_node_bin_op(c, res, BinOpTypeCmpNotEq,
trans_create_node(c, NodeTypeNullLiteral));
- case clang::BuiltinType::Void:
- case clang::BuiltinType::Half:
- case clang::BuiltinType::ObjCId:
- case clang::BuiltinType::ObjCClass:
- case clang::BuiltinType::ObjCSel:
- case clang::BuiltinType::OMPArraySection:
- case clang::BuiltinType::Dependent:
- case clang::BuiltinType::Overload:
- case clang::BuiltinType::BoundMember:
- case clang::BuiltinType::PseudoObject:
- case clang::BuiltinType::UnknownAny:
- case clang::BuiltinType::BuiltinFn:
- case clang::BuiltinType::ARCUnbridgedCast:
- case clang::BuiltinType::OCLImage1dRO:
- case clang::BuiltinType::OCLImage1dArrayRO:
- case clang::BuiltinType::OCLImage1dBufferRO:
- case clang::BuiltinType::OCLImage2dRO:
- case clang::BuiltinType::OCLImage2dArrayRO:
- case clang::BuiltinType::OCLImage2dDepthRO:
- case clang::BuiltinType::OCLImage2dArrayDepthRO:
- case clang::BuiltinType::OCLImage2dMSAARO:
- case clang::BuiltinType::OCLImage2dArrayMSAARO:
- case clang::BuiltinType::OCLImage2dMSAADepthRO:
- case clang::BuiltinType::OCLImage2dArrayMSAADepthRO:
- case clang::BuiltinType::OCLImage3dRO:
- case clang::BuiltinType::OCLImage1dWO:
- case clang::BuiltinType::OCLImage1dArrayWO:
- case clang::BuiltinType::OCLImage1dBufferWO:
- case clang::BuiltinType::OCLImage2dWO:
- case clang::BuiltinType::OCLImage2dArrayWO:
- case clang::BuiltinType::OCLImage2dDepthWO:
- case clang::BuiltinType::OCLImage2dArrayDepthWO:
- case clang::BuiltinType::OCLImage2dMSAAWO:
- case clang::BuiltinType::OCLImage2dArrayMSAAWO:
- case clang::BuiltinType::OCLImage2dMSAADepthWO:
- case clang::BuiltinType::OCLImage2dArrayMSAADepthWO:
- case clang::BuiltinType::OCLImage3dWO:
- case clang::BuiltinType::OCLImage1dRW:
- case clang::BuiltinType::OCLImage1dArrayRW:
- case clang::BuiltinType::OCLImage1dBufferRW:
- case clang::BuiltinType::OCLImage2dRW:
- case clang::BuiltinType::OCLImage2dArrayRW:
- case clang::BuiltinType::OCLImage2dDepthRW:
- case clang::BuiltinType::OCLImage2dArrayDepthRW:
- case clang::BuiltinType::OCLImage2dMSAARW:
- case clang::BuiltinType::OCLImage2dArrayMSAARW:
- case clang::BuiltinType::OCLImage2dMSAADepthRW:
- case clang::BuiltinType::OCLImage2dArrayMSAADepthRW:
- case clang::BuiltinType::OCLImage3dRW:
- case clang::BuiltinType::OCLSampler:
- case clang::BuiltinType::OCLEvent:
- case clang::BuiltinType::OCLClkEvent:
- case clang::BuiltinType::OCLQueue:
- case clang::BuiltinType::OCLReserveID:
- case clang::BuiltinType::ShortAccum:
- case clang::BuiltinType::Accum:
- case clang::BuiltinType::LongAccum:
- case clang::BuiltinType::UShortAccum:
- case clang::BuiltinType::UAccum:
- case clang::BuiltinType::ULongAccum:
- case clang::BuiltinType::ShortFract:
- case clang::BuiltinType::Fract:
- case clang::BuiltinType::LongFract:
- case clang::BuiltinType::UShortFract:
- case clang::BuiltinType::UFract:
- case clang::BuiltinType::ULongFract:
- case clang::BuiltinType::SatShortAccum:
- case clang::BuiltinType::SatAccum:
- case clang::BuiltinType::SatLongAccum:
- case clang::BuiltinType::SatUShortAccum:
- case clang::BuiltinType::SatUAccum:
- case clang::BuiltinType::SatULongAccum:
- case clang::BuiltinType::SatShortFract:
- case clang::BuiltinType::SatFract:
- case clang::BuiltinType::SatLongFract:
- case clang::BuiltinType::SatUShortFract:
- case clang::BuiltinType::SatUFract:
- case clang::BuiltinType::SatULongFract:
- case clang::BuiltinType::OCLIntelSubgroupAVCMcePayload:
- case clang::BuiltinType::OCLIntelSubgroupAVCImePayload:
- case clang::BuiltinType::OCLIntelSubgroupAVCRefPayload:
- case clang::BuiltinType::OCLIntelSubgroupAVCSicPayload:
- case clang::BuiltinType::OCLIntelSubgroupAVCMceResult:
- case clang::BuiltinType::OCLIntelSubgroupAVCImeResult:
- case clang::BuiltinType::OCLIntelSubgroupAVCRefResult:
- case clang::BuiltinType::OCLIntelSubgroupAVCSicResult:
- case clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout:
- case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout:
- case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin:
- case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin:
+ case ZigClangBuiltinTypeVoid:
+ case ZigClangBuiltinTypeHalf:
+ case ZigClangBuiltinTypeObjCId:
+ case ZigClangBuiltinTypeObjCClass:
+ case ZigClangBuiltinTypeObjCSel:
+ case ZigClangBuiltinTypeOMPArraySection:
+ case ZigClangBuiltinTypeDependent:
+ case ZigClangBuiltinTypeOverload:
+ case ZigClangBuiltinTypeBoundMember:
+ case ZigClangBuiltinTypePseudoObject:
+ case ZigClangBuiltinTypeUnknownAny:
+ case ZigClangBuiltinTypeBuiltinFn:
+ case ZigClangBuiltinTypeARCUnbridgedCast:
+ case ZigClangBuiltinTypeOCLImage1dRO:
+ case ZigClangBuiltinTypeOCLImage1dArrayRO:
+ case ZigClangBuiltinTypeOCLImage1dBufferRO:
+ case ZigClangBuiltinTypeOCLImage2dRO:
+ case ZigClangBuiltinTypeOCLImage2dArrayRO:
+ case ZigClangBuiltinTypeOCLImage2dDepthRO:
+ case ZigClangBuiltinTypeOCLImage2dArrayDepthRO:
+ case ZigClangBuiltinTypeOCLImage2dMSAARO:
+ case ZigClangBuiltinTypeOCLImage2dArrayMSAARO:
+ case ZigClangBuiltinTypeOCLImage2dMSAADepthRO:
+ case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRO:
+ case ZigClangBuiltinTypeOCLImage3dRO:
+ case ZigClangBuiltinTypeOCLImage1dWO:
+ case ZigClangBuiltinTypeOCLImage1dArrayWO:
+ case ZigClangBuiltinTypeOCLImage1dBufferWO:
+ case ZigClangBuiltinTypeOCLImage2dWO:
+ case ZigClangBuiltinTypeOCLImage2dArrayWO:
+ case ZigClangBuiltinTypeOCLImage2dDepthWO:
+ case ZigClangBuiltinTypeOCLImage2dArrayDepthWO:
+ case ZigClangBuiltinTypeOCLImage2dMSAAWO:
+ case ZigClangBuiltinTypeOCLImage2dArrayMSAAWO:
+ case ZigClangBuiltinTypeOCLImage2dMSAADepthWO:
+ case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthWO:
+ case ZigClangBuiltinTypeOCLImage3dWO:
+ case ZigClangBuiltinTypeOCLImage1dRW:
+ case ZigClangBuiltinTypeOCLImage1dArrayRW:
+ case ZigClangBuiltinTypeOCLImage1dBufferRW:
+ case ZigClangBuiltinTypeOCLImage2dRW:
+ case ZigClangBuiltinTypeOCLImage2dArrayRW:
+ case ZigClangBuiltinTypeOCLImage2dDepthRW:
+ case ZigClangBuiltinTypeOCLImage2dArrayDepthRW:
+ case ZigClangBuiltinTypeOCLImage2dMSAARW:
+ case ZigClangBuiltinTypeOCLImage2dArrayMSAARW:
+ case ZigClangBuiltinTypeOCLImage2dMSAADepthRW:
+ case ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRW:
+ case ZigClangBuiltinTypeOCLImage3dRW:
+ case ZigClangBuiltinTypeOCLSampler:
+ case ZigClangBuiltinTypeOCLEvent:
+ case ZigClangBuiltinTypeOCLClkEvent:
+ case ZigClangBuiltinTypeOCLQueue:
+ case ZigClangBuiltinTypeOCLReserveID:
+ case ZigClangBuiltinTypeShortAccum:
+ case ZigClangBuiltinTypeAccum:
+ case ZigClangBuiltinTypeLongAccum:
+ case ZigClangBuiltinTypeUShortAccum:
+ case ZigClangBuiltinTypeUAccum:
+ case ZigClangBuiltinTypeULongAccum:
+ case ZigClangBuiltinTypeShortFract:
+ case ZigClangBuiltinTypeFract:
+ case ZigClangBuiltinTypeLongFract:
+ case ZigClangBuiltinTypeUShortFract:
+ case ZigClangBuiltinTypeUFract:
+ case ZigClangBuiltinTypeULongFract:
+ case ZigClangBuiltinTypeSatShortAccum:
+ case ZigClangBuiltinTypeSatAccum:
+ case ZigClangBuiltinTypeSatLongAccum:
+ case ZigClangBuiltinTypeSatUShortAccum:
+ case ZigClangBuiltinTypeSatUAccum:
+ case ZigClangBuiltinTypeSatULongAccum:
+ case ZigClangBuiltinTypeSatShortFract:
+ case ZigClangBuiltinTypeSatFract:
+ case ZigClangBuiltinTypeSatLongFract:
+ case ZigClangBuiltinTypeSatUShortFract:
+ case ZigClangBuiltinTypeSatUFract:
+ case ZigClangBuiltinTypeSatULongFract:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCMcePayload:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCImePayload:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefPayload:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicPayload:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCMceResult:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResult:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCRefResult:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCSicResult:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultSingleRefStreamout:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin:
+ case ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin:
return res;
}
break;
@@ -4268,8 +4242,8 @@ static AstNode *resolve_enum_decl(Context *c, const ZigClangEnumDecl *enum_decl)
// TODO only emit this tag type if the enum tag type is not the default.
// I don't know what the default is, need to figure out how clang is deciding.
// it appears to at least be different across gcc/msvc
- if (!c_is_builtin_type(c, ZigClangEnumDecl_getIntegerType(enum_decl), clang::BuiltinType::UInt) &&
- !c_is_builtin_type(c, ZigClangEnumDecl_getIntegerType(enum_decl), clang::BuiltinType::Int))
+ if (!c_is_builtin_type(c, ZigClangEnumDecl_getIntegerType(enum_decl), ZigClangBuiltinTypeUInt) &&
+ !c_is_builtin_type(c, ZigClangEnumDecl_getIntegerType(enum_decl), ZigClangBuiltinTypeInt))
{
enum_node->data.container_decl.init_arg_expr = tag_int_type;
}
src/zig_clang.cpp
@@ -954,6 +954,245 @@ static_assert((clang::Decl::Kind)ZigClangDeclPragmaDetectMismatch == clang::Decl
static_assert((clang::Decl::Kind)ZigClangDeclStaticAssert == clang::Decl::StaticAssert, "");
static_assert((clang::Decl::Kind)ZigClangDeclTranslationUnit == clang::Decl::TranslationUnit, "");
+void ZigClang_detect_enum_BuiltinTypeKind(clang::BuiltinType::Kind x) {
+ switch (x) {
+ case clang::BuiltinType::OCLImage1dRO:
+ case clang::BuiltinType::OCLImage1dArrayRO:
+ case clang::BuiltinType::OCLImage1dBufferRO:
+ case clang::BuiltinType::OCLImage2dRO:
+ case clang::BuiltinType::OCLImage2dArrayRO:
+ case clang::BuiltinType::OCLImage2dDepthRO:
+ case clang::BuiltinType::OCLImage2dArrayDepthRO:
+ case clang::BuiltinType::OCLImage2dMSAARO:
+ case clang::BuiltinType::OCLImage2dArrayMSAARO:
+ case clang::BuiltinType::OCLImage2dMSAADepthRO:
+ case clang::BuiltinType::OCLImage2dArrayMSAADepthRO:
+ case clang::BuiltinType::OCLImage3dRO:
+ case clang::BuiltinType::OCLImage1dWO:
+ case clang::BuiltinType::OCLImage1dArrayWO:
+ case clang::BuiltinType::OCLImage1dBufferWO:
+ case clang::BuiltinType::OCLImage2dWO:
+ case clang::BuiltinType::OCLImage2dArrayWO:
+ case clang::BuiltinType::OCLImage2dDepthWO:
+ case clang::BuiltinType::OCLImage2dArrayDepthWO:
+ case clang::BuiltinType::OCLImage2dMSAAWO:
+ case clang::BuiltinType::OCLImage2dArrayMSAAWO:
+ case clang::BuiltinType::OCLImage2dMSAADepthWO:
+ case clang::BuiltinType::OCLImage2dArrayMSAADepthWO:
+ case clang::BuiltinType::OCLImage3dWO:
+ case clang::BuiltinType::OCLImage1dRW:
+ case clang::BuiltinType::OCLImage1dArrayRW:
+ case clang::BuiltinType::OCLImage1dBufferRW:
+ case clang::BuiltinType::OCLImage2dRW:
+ case clang::BuiltinType::OCLImage2dArrayRW:
+ case clang::BuiltinType::OCLImage2dDepthRW:
+ case clang::BuiltinType::OCLImage2dArrayDepthRW:
+ case clang::BuiltinType::OCLImage2dMSAARW:
+ case clang::BuiltinType::OCLImage2dArrayMSAARW:
+ case clang::BuiltinType::OCLImage2dMSAADepthRW:
+ case clang::BuiltinType::OCLImage2dArrayMSAADepthRW:
+ case clang::BuiltinType::OCLImage3dRW:
+ case clang::BuiltinType::OCLIntelSubgroupAVCMcePayload:
+ case clang::BuiltinType::OCLIntelSubgroupAVCImePayload:
+ case clang::BuiltinType::OCLIntelSubgroupAVCRefPayload:
+ case clang::BuiltinType::OCLIntelSubgroupAVCSicPayload:
+ case clang::BuiltinType::OCLIntelSubgroupAVCMceResult:
+ case clang::BuiltinType::OCLIntelSubgroupAVCImeResult:
+ case clang::BuiltinType::OCLIntelSubgroupAVCRefResult:
+ case clang::BuiltinType::OCLIntelSubgroupAVCSicResult:
+ case clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout:
+ case clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout:
+ case clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin:
+ case clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin:
+ case clang::BuiltinType::Void:
+ case clang::BuiltinType::Bool:
+ case clang::BuiltinType::Char_U:
+ case clang::BuiltinType::UChar:
+ case clang::BuiltinType::WChar_U:
+ case clang::BuiltinType::Char8:
+ case clang::BuiltinType::Char16:
+ case clang::BuiltinType::Char32:
+ case clang::BuiltinType::UShort:
+ case clang::BuiltinType::UInt:
+ case clang::BuiltinType::ULong:
+ case clang::BuiltinType::ULongLong:
+ case clang::BuiltinType::UInt128:
+ case clang::BuiltinType::Char_S:
+ case clang::BuiltinType::SChar:
+ case clang::BuiltinType::WChar_S:
+ case clang::BuiltinType::Short:
+ case clang::BuiltinType::Int:
+ case clang::BuiltinType::Long:
+ case clang::BuiltinType::LongLong:
+ case clang::BuiltinType::Int128:
+ case clang::BuiltinType::ShortAccum:
+ case clang::BuiltinType::Accum:
+ case clang::BuiltinType::LongAccum:
+ case clang::BuiltinType::UShortAccum:
+ case clang::BuiltinType::UAccum:
+ case clang::BuiltinType::ULongAccum:
+ case clang::BuiltinType::ShortFract:
+ case clang::BuiltinType::Fract:
+ case clang::BuiltinType::LongFract:
+ case clang::BuiltinType::UShortFract:
+ case clang::BuiltinType::UFract:
+ case clang::BuiltinType::ULongFract:
+ case clang::BuiltinType::SatShortAccum:
+ case clang::BuiltinType::SatAccum:
+ case clang::BuiltinType::SatLongAccum:
+ case clang::BuiltinType::SatUShortAccum:
+ case clang::BuiltinType::SatUAccum:
+ case clang::BuiltinType::SatULongAccum:
+ case clang::BuiltinType::SatShortFract:
+ case clang::BuiltinType::SatFract:
+ case clang::BuiltinType::SatLongFract:
+ case clang::BuiltinType::SatUShortFract:
+ case clang::BuiltinType::SatUFract:
+ case clang::BuiltinType::SatULongFract:
+ case clang::BuiltinType::Half:
+ case clang::BuiltinType::Float:
+ case clang::BuiltinType::Double:
+ case clang::BuiltinType::LongDouble:
+ case clang::BuiltinType::Float16:
+ case clang::BuiltinType::Float128:
+ case clang::BuiltinType::NullPtr:
+ case clang::BuiltinType::ObjCId:
+ case clang::BuiltinType::ObjCClass:
+ case clang::BuiltinType::ObjCSel:
+ case clang::BuiltinType::OCLSampler:
+ case clang::BuiltinType::OCLEvent:
+ case clang::BuiltinType::OCLClkEvent:
+ case clang::BuiltinType::OCLQueue:
+ case clang::BuiltinType::OCLReserveID:
+ case clang::BuiltinType::Dependent:
+ case clang::BuiltinType::Overload:
+ case clang::BuiltinType::BoundMember:
+ case clang::BuiltinType::PseudoObject:
+ case clang::BuiltinType::UnknownAny:
+ case clang::BuiltinType::BuiltinFn:
+ case clang::BuiltinType::ARCUnbridgedCast:
+ case clang::BuiltinType::OMPArraySection:
+ break;
+ }
+}
+
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dRO == clang::BuiltinType::OCLImage1dRO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dArrayRO == clang::BuiltinType::OCLImage1dArrayRO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dBufferRO == clang::BuiltinType::OCLImage1dBufferRO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dRO == clang::BuiltinType::OCLImage2dRO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayRO == clang::BuiltinType::OCLImage2dArrayRO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dDepthRO == clang::BuiltinType::OCLImage2dDepthRO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayDepthRO == clang::BuiltinType::OCLImage2dArrayDepthRO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAARO == clang::BuiltinType::OCLImage2dMSAARO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAARO == clang::BuiltinType::OCLImage2dArrayMSAARO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAADepthRO == clang::BuiltinType::OCLImage2dMSAADepthRO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRO == clang::BuiltinType::OCLImage2dArrayMSAADepthRO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage3dRO == clang::BuiltinType::OCLImage3dRO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dWO == clang::BuiltinType::OCLImage1dWO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dArrayWO == clang::BuiltinType::OCLImage1dArrayWO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dBufferWO == clang::BuiltinType::OCLImage1dBufferWO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dWO == clang::BuiltinType::OCLImage2dWO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayWO == clang::BuiltinType::OCLImage2dArrayWO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dDepthWO == clang::BuiltinType::OCLImage2dDepthWO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayDepthWO == clang::BuiltinType::OCLImage2dArrayDepthWO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAAWO == clang::BuiltinType::OCLImage2dMSAAWO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAAWO == clang::BuiltinType::OCLImage2dArrayMSAAWO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAADepthWO == clang::BuiltinType::OCLImage2dMSAADepthWO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAADepthWO == clang::BuiltinType::OCLImage2dArrayMSAADepthWO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage3dWO == clang::BuiltinType::OCLImage3dWO, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dRW == clang::BuiltinType::OCLImage1dRW, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dArrayRW == clang::BuiltinType::OCLImage1dArrayRW, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage1dBufferRW == clang::BuiltinType::OCLImage1dBufferRW, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dRW == clang::BuiltinType::OCLImage2dRW, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayRW == clang::BuiltinType::OCLImage2dArrayRW, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dDepthRW == clang::BuiltinType::OCLImage2dDepthRW, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayDepthRW == clang::BuiltinType::OCLImage2dArrayDepthRW, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAARW == clang::BuiltinType::OCLImage2dMSAARW, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAARW == clang::BuiltinType::OCLImage2dArrayMSAARW, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dMSAADepthRW == clang::BuiltinType::OCLImage2dMSAADepthRW, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRW == clang::BuiltinType::OCLImage2dArrayMSAADepthRW, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLImage3dRW == clang::BuiltinType::OCLImage3dRW, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCMcePayload == clang::BuiltinType::OCLIntelSubgroupAVCMcePayload, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImePayload == clang::BuiltinType::OCLIntelSubgroupAVCImePayload, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCRefPayload == clang::BuiltinType::OCLIntelSubgroupAVCRefPayload, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCSicPayload == clang::BuiltinType::OCLIntelSubgroupAVCSicPayload, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCMceResult == clang::BuiltinType::OCLIntelSubgroupAVCMceResult, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResult == clang::BuiltinType::OCLIntelSubgroupAVCImeResult, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCRefResult == clang::BuiltinType::OCLIntelSubgroupAVCRefResult, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCSicResult == clang::BuiltinType::OCLIntelSubgroupAVCSicResult, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultSingleRefStreamout == clang::BuiltinType::OCLIntelSubgroupAVCImeResultSingleRefStreamout, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout == clang::BuiltinType::OCLIntelSubgroupAVCImeResultDualRefStreamout, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeSingleRefStreamin, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin == clang::BuiltinType::OCLIntelSubgroupAVCImeDualRefStreamin, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeVoid == clang::BuiltinType::Void, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBool == clang::BuiltinType::Bool, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_U == clang::BuiltinType::Char_U, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUChar == clang::BuiltinType::UChar, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeWChar_U == clang::BuiltinType::WChar_U, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar8 == clang::BuiltinType::Char8, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar16 == clang::BuiltinType::Char16, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar32 == clang::BuiltinType::Char32, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUShort == clang::BuiltinType::UShort, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUInt == clang::BuiltinType::UInt, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeULong == clang::BuiltinType::ULong, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeULongLong == clang::BuiltinType::ULongLong, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUInt128 == clang::BuiltinType::UInt128, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeChar_S == clang::BuiltinType::Char_S, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSChar == clang::BuiltinType::SChar, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeWChar_S == clang::BuiltinType::WChar_S, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeShort == clang::BuiltinType::Short, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeInt == clang::BuiltinType::Int, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLong == clang::BuiltinType::Long, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLongLong == clang::BuiltinType::LongLong, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeInt128 == clang::BuiltinType::Int128, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeShortAccum == clang::BuiltinType::ShortAccum, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeAccum == clang::BuiltinType::Accum, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLongAccum == clang::BuiltinType::LongAccum, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUShortAccum == clang::BuiltinType::UShortAccum, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUAccum == clang::BuiltinType::UAccum, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeULongAccum == clang::BuiltinType::ULongAccum, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeShortFract == clang::BuiltinType::ShortFract, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFract == clang::BuiltinType::Fract, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLongFract == clang::BuiltinType::LongFract, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUShortFract == clang::BuiltinType::UShortFract, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUFract == clang::BuiltinType::UFract, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeULongFract == clang::BuiltinType::ULongFract, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatShortAccum == clang::BuiltinType::SatShortAccum, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatAccum == clang::BuiltinType::SatAccum, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatLongAccum == clang::BuiltinType::SatLongAccum, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatUShortAccum == clang::BuiltinType::SatUShortAccum, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatUAccum == clang::BuiltinType::SatUAccum, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatULongAccum == clang::BuiltinType::SatULongAccum, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatShortFract == clang::BuiltinType::SatShortFract, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatFract == clang::BuiltinType::SatFract, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatLongFract == clang::BuiltinType::SatLongFract, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatUShortFract == clang::BuiltinType::SatUShortFract, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatUFract == clang::BuiltinType::SatUFract, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeSatULongFract == clang::BuiltinType::SatULongFract, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeHalf == clang::BuiltinType::Half, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat == clang::BuiltinType::Float, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeDouble == clang::BuiltinType::Double, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeLongDouble == clang::BuiltinType::LongDouble, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat16 == clang::BuiltinType::Float16, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeFloat128 == clang::BuiltinType::Float128, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeNullPtr == clang::BuiltinType::NullPtr, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeObjCId == clang::BuiltinType::ObjCId, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeObjCClass == clang::BuiltinType::ObjCClass, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeObjCSel == clang::BuiltinType::ObjCSel, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLSampler == clang::BuiltinType::OCLSampler, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLEvent == clang::BuiltinType::OCLEvent, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLClkEvent == clang::BuiltinType::OCLClkEvent, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLQueue == clang::BuiltinType::OCLQueue, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOCLReserveID == clang::BuiltinType::OCLReserveID, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeDependent == clang::BuiltinType::Dependent, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOverload == clang::BuiltinType::Overload, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBoundMember == clang::BuiltinType::BoundMember, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypePseudoObject == clang::BuiltinType::PseudoObject, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeUnknownAny == clang::BuiltinType::UnknownAny, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeBuiltinFn == clang::BuiltinType::BuiltinFn, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeARCUnbridgedCast == clang::BuiltinType::ARCUnbridgedCast, "");
+static_assert((clang::BuiltinType::Kind)ZigClangBuiltinTypeOMPArraySection == clang::BuiltinType::OMPArraySection, "");
+
static_assert(sizeof(ZigClangSourceLocation) == sizeof(clang::SourceLocation), "");
static ZigClangSourceLocation bitcast(clang::SourceLocation src) {
@@ -1449,3 +1688,8 @@ void ZigClangErrorMsg_delete(Stage2ErrorMsg *ptr, size_t len) {
void ZigClangASTUnit_delete(struct ZigClangASTUnit *self) {
delete reinterpret_cast<clang::ASTUnit *>(self);
}
+
+enum ZigClangBuiltinTypeKind ZigClangBuiltinType_getKind(const struct ZigClangBuiltinType *self) {
+ auto casted = reinterpret_cast<const clang::BuiltinType *>(self);
+ return (ZigClangBuiltinTypeKind)casted->getKind();
+}
src/zig_clang.h
@@ -559,6 +559,125 @@ enum ZigClangDeclKind {
ZigClangDeclTranslationUnit,
};
+enum ZigClangBuiltinTypeKind {
+ ZigClangBuiltinTypeOCLImage1dRO,
+ ZigClangBuiltinTypeOCLImage1dArrayRO,
+ ZigClangBuiltinTypeOCLImage1dBufferRO,
+ ZigClangBuiltinTypeOCLImage2dRO,
+ ZigClangBuiltinTypeOCLImage2dArrayRO,
+ ZigClangBuiltinTypeOCLImage2dDepthRO,
+ ZigClangBuiltinTypeOCLImage2dArrayDepthRO,
+ ZigClangBuiltinTypeOCLImage2dMSAARO,
+ ZigClangBuiltinTypeOCLImage2dArrayMSAARO,
+ ZigClangBuiltinTypeOCLImage2dMSAADepthRO,
+ ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRO,
+ ZigClangBuiltinTypeOCLImage3dRO,
+ ZigClangBuiltinTypeOCLImage1dWO,
+ ZigClangBuiltinTypeOCLImage1dArrayWO,
+ ZigClangBuiltinTypeOCLImage1dBufferWO,
+ ZigClangBuiltinTypeOCLImage2dWO,
+ ZigClangBuiltinTypeOCLImage2dArrayWO,
+ ZigClangBuiltinTypeOCLImage2dDepthWO,
+ ZigClangBuiltinTypeOCLImage2dArrayDepthWO,
+ ZigClangBuiltinTypeOCLImage2dMSAAWO,
+ ZigClangBuiltinTypeOCLImage2dArrayMSAAWO,
+ ZigClangBuiltinTypeOCLImage2dMSAADepthWO,
+ ZigClangBuiltinTypeOCLImage2dArrayMSAADepthWO,
+ ZigClangBuiltinTypeOCLImage3dWO,
+ ZigClangBuiltinTypeOCLImage1dRW,
+ ZigClangBuiltinTypeOCLImage1dArrayRW,
+ ZigClangBuiltinTypeOCLImage1dBufferRW,
+ ZigClangBuiltinTypeOCLImage2dRW,
+ ZigClangBuiltinTypeOCLImage2dArrayRW,
+ ZigClangBuiltinTypeOCLImage2dDepthRW,
+ ZigClangBuiltinTypeOCLImage2dArrayDepthRW,
+ ZigClangBuiltinTypeOCLImage2dMSAARW,
+ ZigClangBuiltinTypeOCLImage2dArrayMSAARW,
+ ZigClangBuiltinTypeOCLImage2dMSAADepthRW,
+ ZigClangBuiltinTypeOCLImage2dArrayMSAADepthRW,
+ ZigClangBuiltinTypeOCLImage3dRW,
+ ZigClangBuiltinTypeOCLIntelSubgroupAVCMcePayload,
+ ZigClangBuiltinTypeOCLIntelSubgroupAVCImePayload,
+ ZigClangBuiltinTypeOCLIntelSubgroupAVCRefPayload,
+ ZigClangBuiltinTypeOCLIntelSubgroupAVCSicPayload,
+ ZigClangBuiltinTypeOCLIntelSubgroupAVCMceResult,
+ ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResult,
+ ZigClangBuiltinTypeOCLIntelSubgroupAVCRefResult,
+ ZigClangBuiltinTypeOCLIntelSubgroupAVCSicResult,
+ ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultSingleRefStreamout,
+ ZigClangBuiltinTypeOCLIntelSubgroupAVCImeResultDualRefStreamout,
+ ZigClangBuiltinTypeOCLIntelSubgroupAVCImeSingleRefStreamin,
+ ZigClangBuiltinTypeOCLIntelSubgroupAVCImeDualRefStreamin,
+ ZigClangBuiltinTypeVoid,
+ ZigClangBuiltinTypeBool,
+ ZigClangBuiltinTypeChar_U,
+ ZigClangBuiltinTypeUChar,
+ ZigClangBuiltinTypeWChar_U,
+ ZigClangBuiltinTypeChar8,
+ ZigClangBuiltinTypeChar16,
+ ZigClangBuiltinTypeChar32,
+ ZigClangBuiltinTypeUShort,
+ ZigClangBuiltinTypeUInt,
+ ZigClangBuiltinTypeULong,
+ ZigClangBuiltinTypeULongLong,
+ ZigClangBuiltinTypeUInt128,
+ ZigClangBuiltinTypeChar_S,
+ ZigClangBuiltinTypeSChar,
+ ZigClangBuiltinTypeWChar_S,
+ ZigClangBuiltinTypeShort,
+ ZigClangBuiltinTypeInt,
+ ZigClangBuiltinTypeLong,
+ ZigClangBuiltinTypeLongLong,
+ ZigClangBuiltinTypeInt128,
+ ZigClangBuiltinTypeShortAccum,
+ ZigClangBuiltinTypeAccum,
+ ZigClangBuiltinTypeLongAccum,
+ ZigClangBuiltinTypeUShortAccum,
+ ZigClangBuiltinTypeUAccum,
+ ZigClangBuiltinTypeULongAccum,
+ ZigClangBuiltinTypeShortFract,
+ ZigClangBuiltinTypeFract,
+ ZigClangBuiltinTypeLongFract,
+ ZigClangBuiltinTypeUShortFract,
+ ZigClangBuiltinTypeUFract,
+ ZigClangBuiltinTypeULongFract,
+ ZigClangBuiltinTypeSatShortAccum,
+ ZigClangBuiltinTypeSatAccum,
+ ZigClangBuiltinTypeSatLongAccum,
+ ZigClangBuiltinTypeSatUShortAccum,
+ ZigClangBuiltinTypeSatUAccum,
+ ZigClangBuiltinTypeSatULongAccum,
+ ZigClangBuiltinTypeSatShortFract,
+ ZigClangBuiltinTypeSatFract,
+ ZigClangBuiltinTypeSatLongFract,
+ ZigClangBuiltinTypeSatUShortFract,
+ ZigClangBuiltinTypeSatUFract,
+ ZigClangBuiltinTypeSatULongFract,
+ ZigClangBuiltinTypeHalf,
+ ZigClangBuiltinTypeFloat,
+ ZigClangBuiltinTypeDouble,
+ ZigClangBuiltinTypeLongDouble,
+ ZigClangBuiltinTypeFloat16,
+ ZigClangBuiltinTypeFloat128,
+ ZigClangBuiltinTypeNullPtr,
+ ZigClangBuiltinTypeObjCId,
+ ZigClangBuiltinTypeObjCClass,
+ ZigClangBuiltinTypeObjCSel,
+ ZigClangBuiltinTypeOCLSampler,
+ ZigClangBuiltinTypeOCLEvent,
+ ZigClangBuiltinTypeOCLClkEvent,
+ ZigClangBuiltinTypeOCLQueue,
+ ZigClangBuiltinTypeOCLReserveID,
+ ZigClangBuiltinTypeDependent,
+ ZigClangBuiltinTypeOverload,
+ ZigClangBuiltinTypeBoundMember,
+ ZigClangBuiltinTypePseudoObject,
+ ZigClangBuiltinTypeUnknownAny,
+ ZigClangBuiltinTypeBuiltinFn,
+ ZigClangBuiltinTypeARCUnbridgedCast,
+ ZigClangBuiltinTypeOMPArraySection,
+};
+
ZIG_EXTERN_C struct ZigClangSourceLocation ZigClangSourceManager_getSpellingLoc(const struct ZigClangSourceManager *,
struct ZigClangSourceLocation Loc);
ZIG_EXTERN_C const char *ZigClangSourceManager_getFilename(const struct ZigClangSourceManager *,
@@ -655,4 +774,6 @@ ZIG_EXTERN_C unsigned ZigClangAPSInt_getNumWords(const struct ZigClangAPSInt *se
ZIG_EXTERN_C const struct ZigClangExpr *ZigClangAPValueLValueBase_dyn_cast_Expr(struct ZigClangAPValueLValueBase self);
+ZIG_EXTERN_C enum ZigClangBuiltinTypeKind ZigClangBuiltinType_getKind(const struct ZigClangBuiltinType *self);
+
#endif