Changeset View
Changeset View
Standalone View
Standalone View
cfe/trunk/lib/AST/Type.cpp
Show First 20 Lines • Show All 1,959 Lines • ▼ Show 20 Lines | Type::ScalarTypeKind Type::getScalarTypeKind() const { | ||||
assert(isScalarType()); | assert(isScalarType()); | ||||
const Type *T = CanonicalType.getTypePtr(); | const Type *T = CanonicalType.getTypePtr(); | ||||
if (const auto *BT = dyn_cast<BuiltinType>(T)) { | if (const auto *BT = dyn_cast<BuiltinType>(T)) { | ||||
if (BT->getKind() == BuiltinType::Bool) return STK_Bool; | if (BT->getKind() == BuiltinType::Bool) return STK_Bool; | ||||
if (BT->getKind() == BuiltinType::NullPtr) return STK_CPointer; | if (BT->getKind() == BuiltinType::NullPtr) return STK_CPointer; | ||||
if (BT->isInteger()) return STK_Integral; | if (BT->isInteger()) return STK_Integral; | ||||
if (BT->isFloatingPoint()) return STK_Floating; | if (BT->isFloatingPoint()) return STK_Floating; | ||||
if (BT->isFixedPointType()) return STK_FixedPoint; | |||||
llvm_unreachable("unknown scalar builtin type"); | llvm_unreachable("unknown scalar builtin type"); | ||||
} else if (isa<PointerType>(T)) { | } else if (isa<PointerType>(T)) { | ||||
return STK_CPointer; | return STK_CPointer; | ||||
} else if (isa<BlockPointerType>(T)) { | } else if (isa<BlockPointerType>(T)) { | ||||
return STK_BlockPointer; | return STK_BlockPointer; | ||||
} else if (isa<ObjCObjectPointerType>(T)) { | } else if (isa<ObjCObjectPointerType>(T)) { | ||||
return STK_ObjCObjectPointer; | return STK_ObjCObjectPointer; | ||||
} else if (isa<MemberPointerType>(T)) { | } else if (isa<MemberPointerType>(T)) { | ||||
▲ Show 20 Lines • Show All 2,032 Lines • Show Last 20 Lines |