reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Derived Classes

tools/clang/include/clang/AST/LocInfoType.h
   28 class LocInfoType : public Type {
tools/clang/include/clang/AST/Type.h
 2436 class BuiltinType : public Type {
 2525 class ComplexType : public Type, public llvm::FoldingSetNode {
 2555 class ParenType : public Type, public llvm::FoldingSetNode {
 2585 class PointerType : public Type, public llvm::FoldingSetNode {
 2633 class AdjustedType : public Type, public llvm::FoldingSetNode {
 2687 class BlockPointerType : public Type, public llvm::FoldingSetNode {
 2721 class ReferenceType : public Type, public llvm::FoldingSetNode {
 2804 class MemberPointerType : public Type, public llvm::FoldingSetNode {
 2860 class ArrayType : public Type, public llvm::FoldingSetNode {
 3124 class DependentAddressSpaceType : public Type, public llvm::FoldingSetNode {
 3166 class DependentSizedExtVectorType : public Type, public llvm::FoldingSetNode {
 3206 class VectorType : public Type, public llvm::FoldingSetNode {
 3283 class DependentVectorType : public Type, public llvm::FoldingSetNode {
 3393 class FunctionType : public Type {
 4160 class UnresolvedUsingType : public Type {
 4190 class TypedefType : public Type {
 4216 class MacroQualifiedType : public Type {
 4250 class TypeOfExprType : public Type {
 4293 class TypeOfType : public Type {
 4320 class DecltypeType : public Type {
 4363 class UnaryTransformType : public Type {
 4421 class TagType : public Type {
 4499 class AttributedType : public Type, public llvm::FoldingSetNode {
 4596 class TemplateTypeParmType : public Type, public llvm::FoldingSetNode {
 4677 class SubstTemplateTypeParmType : public Type, public llvm::FoldingSetNode {
 4733 class SubstTemplateTypeParmPackType : public Type, public llvm::FoldingSetNode {
 4783 class DeducedType : public Type {
 4917 class alignas(8) TemplateSpecializationType
 5054 class InjectedClassNameType : public Type {
 5154 class TypeWithKeyword : public Type {
 5431 class PackExpansionType : public Type, public llvm::FoldingSetNode {
 5540 class ObjCTypeParamType : public Type,
 5614 class ObjCObjectType : public Type,
 5870 class ObjCObjectPointerType : public Type, public llvm::FoldingSetNode {
 6044 class AtomicType : public Type, public llvm::FoldingSetNode {
 6078 class PipeType : public Type, public llvm::FoldingSetNode {

Declarations

tools/clang/include/clang/AST/APValue.h
   33   class Type;
tools/clang/include/clang/AST/ASTFwd.h
   25 class Type;
tools/clang/include/clang/AST/MangleNumberingContext.h
   26 class Type;
tools/clang/include/clang/AST/NestedNameSpecifier.h
   35 class Type;
tools/clang/include/clang/AST/Type.h
   62 class Type;
tools/clang/lib/CodeGen/CodeGenTBAA.h
   29   class Type;
tools/clang/lib/CodeGen/CodeGenTypes.h
   46 class Type;
tools/lldb/include/lldb/Core/ClangForward.h
  116 class Type;

References

include/llvm/Support/Casting.h
   57   static inline bool doit(const From &Val) {
   66   static inline bool doit(const From &) { return true; }
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  218   static typename cast_retty<To, From>::ret_type doit(From &Val) {
  219     return cast_convert_val<To, SimpleFrom,
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  248                                typename cast_retty<X, const Y>::ret_type>::type
  252       X, const Y, typename simplify_type<const Y>::SimpleType>::doit(Val);
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  258   return cast_convert_val<X, Y,
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  306 cast_or_null(Y *Val) {
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  367 dyn_cast_or_null(Y *Val) {
include/llvm/Support/PointerLikeTypeTraits.h
   91   typedef PointerLikeTypeTraits<T *> NonConst;
   93   static inline const void *getAsVoidPointer(const T *P) {
   96   static inline const T *getFromVoidPointer(const void *P) {
tools/clang/include/clang/AST/APValue.h
   38   const Type *T;
   42   explicit TypeInfoLValue(const Type *T);
   44   const Type *getType() const { return T; }
tools/clang/include/clang/AST/ASTContext.h
  179   mutable SmallVector<Type *, 0> Types;
  253   using TypeInfoMap = llvm::DenseMap<const Type *, struct TypeInfo>;
  259   using UnadjustedAlignMap = llvm::DenseMap<const Type *, unsigned>;
 1103   const SmallVectorImpl<Type *>& getTypes() const { return Types; }
 1128   QualType getExtQualType(const Type *Base, Qualifiers Quals) const;
 1272   TargetInfo::OpenCLTypeKind getOpenCLTypeKind(const Type *T) const;
 1275   LangAS getOpenCLTypeAddrSpace(const Type *T) const;
 1308   QualType getMemberPointerType(QualType T, const Type *Cls) const;
 1951     const Type *Ptr = Qc.strip(T);
 1956   QualType getQualifiedType(const Type *T, Qualifiers Qs) const {
 2043   TypeInfo getTypeInfoImpl(const Type *T) const;
 2081   TypeInfo getTypeInfo(const Type *T) const;
 2089   uint64_t getTypeSize(const Type *T) const { return getTypeInfo(T).Width; }
 2105   CharUnits getTypeSizeInChars(const Type *T) const;
 2113   Optional<CharUnits> getTypeSizeInCharsIfKnown(const Type *Ty) const {
 2120   unsigned getTypeAlign(const Type *T) const { return getTypeInfo(T).Align; }
 2130   unsigned getTypeUnadjustedAlign(const Type *T) const;
 2140   CharUnits getTypeAlignInChars(const Type *T) const;
 2146   CharUnits getTypeUnadjustedAlignInChars(const Type *T) const;
 2152   std::pair<CharUnits, CharUnits> getTypeInfoInChars(const Type *T) const;
 2157   bool isAlignmentRequired(const Type *T) const;
 2165   unsigned getPreferredTypeAlign(const Type *T) const;
 2293   const Type *getCanonicalType(const Type *T) const {
 2293   const Type *getCanonicalType(const Type *T) const {
 2308   bool hasSameType(const Type *T1, const Type *T2) const {
 2308   bool hasSameType(const Type *T1, const Type *T2) const {
 2563   unsigned getIntegerRank(const Type *T) const;
tools/clang/include/clang/AST/ASTImporter.h
  248     llvm::DenseMap<const Type *, const Type *> ImportedTypes;
  248     llvm::DenseMap<const Type *, const Type *> ImportedTypes;
tools/clang/include/clang/AST/ASTNodeTraverser.h
  131   void Visit(const Type *T) {
  216     else if (const auto *T = N.get<Type>())
  216     else if (const auto *T = N.get<Type>())
tools/clang/include/clang/AST/ASTTypeTraits.h
   65     return ASTNodeKind(KindToKindId<T>::Id);
   72   static ASTNodeKind getFromNode(const Type &T);
  234   static DynTypedNode create(const T &Node) {
  235     return BaseConverter<T>::create(Node);
  251   const T *get() const {
  252     return BaseConverter<T>::get(NodeKind, Storage.buffer);
  259   const T &getUnchecked() const {
  260     return BaseConverter<T>::getUnchecked(NodeKind, Storage.buffer);
  394     static const T *get(ASTNodeKind NodeKind, const char Storage[]) {
  395       if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
  399     static const T &getUnchecked(ASTNodeKind NodeKind, const char Storage[]) {
  401       return *cast<T>(static_cast<const BaseT *>(
  404     static DynTypedNode create(const BaseT &Node) {
  479     : public DynCastPtrConverter<T, Type> {};
  479     : public DynCastPtrConverter<T, Type> {};
tools/clang/include/clang/AST/CanonicalType.h
   76   CanQual(const CanQual<U> &Other,
   77           typename std::enable_if<std::is_base_of<T, U>::value, int>::type = 0);
   77           typename std::enable_if<std::is_base_of<T, U>::value, int>::type = 0);
   83   const T *getTypePtr() const { return cast<T>(Stored.getTypePtr()); }
   83   const T *getTypePtr() const { return cast<T>(Stored.getTypePtr()); }
   87   const T *getTypePtrOrNull() const {
  120   template<typename U> CanProxy<U> getAs() const;
  126   CanProxy<T> operator->() const;
  157   CanQual<T> getUnqualifiedType() const;
  167   bool isMoreQualifiedThan(CanQual<T> Other) const {
  173   bool isAtLeastAsQualifiedAs(CanQual<T> Other) const {
  179   CanQual<Type> getNonReferenceType() const;
  185   static CanQual<T> getFromOpaquePtr(void *Ptr);
  192   static CanQual<T> CreateUnsafe(QualType Other);
  202 inline bool operator==(CanQual<T> x, CanQual<U> y) {
  202 inline bool operator==(CanQual<T> x, CanQual<U> y) {
  207 inline bool operator!=(CanQual<T> x, CanQual<U> y) {
  207 inline bool operator!=(CanQual<T> x, CanQual<U> y) {
  212 using CanQualType = CanQual<Type>;
  241   CanQual<T> Stored;
  245   const T *getTypePtr() const { return Stored.getTypePtr(); }
  254   operator const T*() const { return this->Stored.getTypePtrOrNull(); }
  321   const CanProxyAdaptor<T> *operator->() const {
  337 struct CanProxyAdaptor : CanProxyBase<T> {};
  347 class CanProxy : public CanProxyAdaptor<T> {
  353   CanProxy(CanQual<T> Stored) { this->Stored = Stored; }
  356   operator CanQual<T>() const { return this->Stored; }
  368   using SimpleType = const T *;
  370   static SimpleType getSimplifiedValue(::clang::CanQual<T> Val) {
  378   static void *getAsVoidPointer(clang::CanQual<T> P) {
  382   static clang::CanQual<T> getFromVoidPointer(void *P) {
  407           CanProxy<Type>, CanQualType> {
  413   CanProxy<Type> operator->() const;
  619   return CanQual<T>::CreateUnsafe(Stored.getLocalUnqualifiedType());
  623 inline CanQual<Type> CanQual<T>::getNonReferenceType() const {
  632   CanQual<T> Result;
  644   CanQual<T> Result;
  652   static_assert(!TypeIsArrayType<T>::value,
  658   if (isa<U>(Stored.getTypePtr()))
  659     return CanQual<U>::CreateUnsafe(Stored);
  680 CanProxy<Type> CanTypeIterator<InputIterator>::operator->() const {
  681   return CanProxy<Type>(*this);
tools/clang/include/clang/AST/Decl.h
 2957   mutable const Type *TypeForDecl = nullptr;
 2974   const Type *getTypeForDecl() const { return TypeForDecl; }
 2975   void setTypeForDecl(const Type *TD) { TypeForDecl = TD; }
 3420   llvm::PointerUnion<const Type *, TypeSourceInfo *> IntegerType;
 3559     if (const Type *T = IntegerType.dyn_cast<const Type*>())
 3559     if (const Type *T = IntegerType.dyn_cast<const Type*>())
tools/clang/include/clang/AST/DeclCXX.h
 2256   const Type *getBaseClass() const;
tools/clang/include/clang/AST/DeclObjC.h
 1177   mutable const Type *TypeForDecl = nullptr;
 1918   const Type *getTypeForDecl() const { return TypeForDecl; }
 1919   void setTypeForDecl(const Type *TD) const { TypeForDecl = TD; }
tools/clang/include/clang/AST/DeclarationName.h
   43 using CanQualType = CanQual<Type>;
tools/clang/include/clang/AST/Expr.h
 1006   static ResultStorageKind getStorageKind(const Type *T,
tools/clang/include/clang/AST/ExprObjC.h
  645   llvm::PointerUnion3<Stmt *, const Type *, ObjCInterfaceDecl *> Receiver;
  768     return QualType(Receiver.get<const Type*>(), 0);
  776   bool isSuperReceiver() const { return Receiver.is<const Type*>(); }
tools/clang/include/clang/AST/JSONNodeDumper.h
  190   void Visit(const Type *T);
tools/clang/include/clang/AST/LocInfoType.h
   28 class LocInfoType : public Type {
   32     LocInfo = Type::TypeLast + 1
   53   static bool classof(const Type *T) {
tools/clang/include/clang/AST/NestedNameSpecifier.h
  140                                      bool Template, const Type *T);
  194   const Type *getAsType() const {
tools/clang/include/clang/AST/ODRHash.h
   79   void AddType(const Type *T);
tools/clang/include/clang/AST/RecursiveASTVisitor.h
  438   bool WalkUpFromType(Type *T) { return getDerived().VisitType(T); }
  439   bool VisitType(Type *T) { return true; }
tools/clang/include/clang/AST/TextNodeDumper.h
  165   void Visit(const Type *T);
tools/clang/include/clang/AST/Type.h
   77     static inline void *getAsVoidPointer(::clang::Type *P) { return P; }
   79     static inline ::clang::Type *getFromVoidPointer(void *P) {
  125 using CanQualType = CanQual<Type>;
  584   const Type *Ty = nullptr;
  590   SplitQualType(const Type *ty, Qualifiers qs) : Ty(ty), Quals(qs) {}
  595   std::pair<const Type *,Qualifiers> asPair() const {
  647   llvm::PointerIntPair<llvm::PointerUnion<const Type *, const ExtQuals *>,
  654   const Type *getTypePtrUnsafe() const {
  655     return Value.getPointer().get<const Type*>();
  667   QualType(const Type *Ptr, unsigned Quals) : Value(Ptr, Quals) {}
  677   const Type *getTypePtr() const;
  679   const Type *getTypePtrOrNull() const;
  696   const Type &operator*() const {
  700   const Type *operator->() const {
  983   static std::string getAsString(const Type *ty, Qualifiers qs,
  999   static void print(const Type *ty, Qualifiers qs,
 1012   static void getAsStringInternal(const Type *ty, Qualifiers qs,
 1266   using SimpleType = const ::clang::Type *;
 1305   const Type *const BaseType;
 1310   ExtQualsTypeCommonBase(const Type *baseType, QualType canon)
 1345   ExtQuals(const Type *baseType, QualType canon, Qualifiers quals)
 1368   const Type *getBaseType() const { return BaseType; }
 1376                       const Type *BaseType,
 1825   Type *this_() { return this; }
 1846   Type(const Type &) = delete;
 1847   Type(Type &&) = delete;
 1848   Type &operator=(const Type &) = delete;
 1848   Type &operator=(const Type &) = delete;
 1849   Type &operator=(Type &&) = delete;
 1849   Type &operator=(Type &&) = delete;
 2269   const Type *getBaseElementTypeUnsafe() const;
 2274   const Type *getArrayElementTypeNoTypeQual() const;
 2279   const Type *getPointeeOrArrayElementType() const;
 2287   const Type *getUnqualifiedDesugaredType() const;
 2436 class BuiltinType : public Type {
 2520   static bool classof(const Type *T) { return T->getTypeClass() == Builtin; }
 2525 class ComplexType : public Type, public llvm::FoldingSetNode {
 2551   static bool classof(const Type *T) { return T->getTypeClass() == Complex; }
 2555 class ParenType : public Type, public llvm::FoldingSetNode {
 2581   static bool classof(const Type *T) { return T->getTypeClass() == Paren; }
 2585 class PointerType : public Type, public llvm::FoldingSetNode {
 2627   static bool classof(const Type *T) { return T->getTypeClass() == Pointer; }
 2633 class AdjustedType : public Type, public llvm::FoldingSetNode {
 2664   static bool classof(const Type *T) {
 2681   static bool classof(const Type *T) { return T->getTypeClass() == Decayed; }
 2687 class BlockPointerType : public Type, public llvm::FoldingSetNode {
 2715   static bool classof(const Type *T) {
 2721 class ReferenceType : public Type, public llvm::FoldingSetNode {
 2761   static bool classof(const Type *T) {
 2780   static bool classof(const Type *T) {
 2796   static bool classof(const Type *T) {
 2804 class MemberPointerType : public Type, public llvm::FoldingSetNode {
 2811   const Type *Class;
 2813   MemberPointerType(QualType Pointee, const Type *Cls, QualType CanonicalPtr)
 2838   const Type *getClass() const { return Class; }
 2849                       const Type *Class) {
 2854   static bool classof(const Type *T) {
 2860 class ArrayType : public Type, public llvm::FoldingSetNode {
 2895   static bool classof(const Type *T) {
 2958   static bool classof(const Type *T) {
 2979   static bool classof(const Type *T) {
 3042   static bool classof(const Type *T) {
 3099   static bool classof(const Type *T) {
 3124 class DependentAddressSpaceType : public Type, public llvm::FoldingSetNode {
 3144   static bool classof(const Type *T) {
 3166 class DependentSizedExtVectorType : public Type, public llvm::FoldingSetNode {
 3188   static bool classof(const Type *T) {
 3206 class VectorType : public Type, public llvm::FoldingSetNode {
 3269   static bool classof(const Type *T) {
 3283 class DependentVectorType : public Type, public llvm::FoldingSetNode {
 3306   static bool classof(const Type *T) {
 3386   static bool classof(const Type *T) {
 3393 class FunctionType : public Type {
 3680   static bool classof(const Type *T) {
 3713   static bool classof(const Type *T) {
 4144   static bool classof(const Type *T) {
 4160 class UnresolvedUsingType : public Type {
 4176   static bool classof(const Type *T) {
 4190 class TypedefType : public Type {
 4211   static bool classof(const Type *T) { return T->getTypeClass() == Typedef; }
 4216 class MacroQualifiedType : public Type {
 4244   static bool classof(const Type *T) {
 4250 class TypeOfExprType : public Type {
 4267   static bool classof(const Type *T) { return T->getTypeClass() == TypeOfExpr; }
 4293 class TypeOfType : public Type {
 4316   static bool classof(const Type *T) { return T->getTypeClass() == TypeOf; }
 4320 class DecltypeType : public Type {
 4339   static bool classof(const Type *T) { return T->getTypeClass() == Decltype; }
 4363 class UnaryTransformType : public Type {
 4393   static bool classof(const Type *T) {
 4421 class TagType : public Type {
 4437   static bool classof(const Type *T) {
 4465   static bool classof(const Type *T) { return T->getTypeClass() == Record; }
 4484   static bool classof(const Type *T) { return T->getTypeClass() == Enum; }
 4499 class AttributedType : public Type, public llvm::FoldingSetNode {
 4591   static bool classof(const Type *T) {
 4596 class TemplateTypeParmType : public Type, public llvm::FoldingSetNode {
 4665   static bool classof(const Type *T) {
 4677 class SubstTemplateTypeParmType : public Type, public llvm::FoldingSetNode {
 4716   static bool classof(const Type *T) {
 4733 class SubstTemplateTypeParmPackType : public Type, public llvm::FoldingSetNode {
 4769   static bool classof(const Type *T) {
 4783 class DeducedType : public Type {
 4816   static bool classof(const Type *T) {
 4855   static bool classof(const Type *T) {
 4892   static bool classof(const Type *T) {
 4918     : public Type,
 5018   static bool classof(const Type *T) {
 5054 class InjectedClassNameType : public Type {
 5101   static bool classof(const Type *T) {
 5154 class TypeWithKeyword : public Type {
 5194   static CannotCastToThisType classof(const Type *);
 5273   static bool classof(const Type *T) { return T->getTypeClass() == Elaborated; }
 5332   static bool classof(const Type *T) {
 5404   static bool classof(const Type *T) {
 5431 class PackExpansionType : public Type, public llvm::FoldingSetNode {
 5477   static bool classof(const Type *T) {
 5540 class ObjCTypeParamType : public Type,
 5574   static bool classof(const Type *T) {
 5614 class ObjCObjectType : public Type,
 5757   static bool classof(const Type *T) {
 5832   static bool classof(const Type *T) {
 5870 class ObjCObjectPointerType : public Type, public llvm::FoldingSetNode {
 6039   static bool classof(const Type *T) {
 6044 class AtomicType : public Type, public llvm::FoldingSetNode {
 6072   static bool classof(const Type *T) {
 6078 class PipeType : public Type, public llvm::FoldingSetNode {
 6107   static bool classof(const Type *T) {
 6122   const Type *strip(QualType type) {
 6136   QualType apply(const ASTContext &Context, const Type* T) const;
 6148 inline const Type *QualType::getTypePtr() const {
 6152 inline const Type *QualType::getTypePtrOrNull() const {
 6200   const Type *T = getTypePtr();
 6291 inline FunctionType::ExtInfo getFunctionExtInfo(const Type &t) {
 6798 inline const Type *Type::getBaseElementTypeUnsafe() const {
 6799   const Type *type = this;
 6805 inline const Type *Type::getPointeeOrArrayElementType() const {
 6806   const Type *type = this;
 6858 template <typename T> const T *Type::getAs() const {
 6859   static_assert(!TypeIsArrayType<T>::value,
 6863   if (const auto *Ty = dyn_cast<T>(this))
 6863   if (const auto *Ty = dyn_cast<T>(this))
 6867   if (!isa<T>(CanonicalType))
 6872   return cast<T>(getUnqualifiedDesugaredType());
 6888   const Type *Ty = this;
tools/clang/include/clang/AST/TypeLoc.h
   67   TypeLoc(const Type *ty, void *opaqueData)
  134   const Type *getTypePtr() const {
  250   UnqualTypeLoc(const Type *Ty, void *Data) : TypeLoc(Ty, Data) {}
  252   const Type *getTypePtr() const {
  369   static bool classofType(const Type *Ty) {
  405   const TypeClass *getTypePtr() const {
  406     return cast<TypeClass>(Base::getTypePtr());
  485   static bool classofType(const Type *Ty) {
  511                                                Type,
 1279   const Type *getClass() const {
tools/clang/include/clang/AST/TypeVisitor.h
   68   RetTy Visit(const Type *T) {
   87   RetTy VisitType(const Type*) { return RetTy(); }
tools/clang/include/clang/ASTMatchers/ASTMatchFinder.h
  266 const NodeT *
  269     if (const NodeT *Node = N.getNodeAs<NodeT>(BoundTo))
  269     if (const NodeT *Node = N.getNodeAs<NodeT>(BoundTo))
tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  110   const T *getNodeAs(StringRef ID) const {
  111     return MyBoundNodes.getNodeAs<T>(ID);
 2419 extern const internal::VariadicAllOfMatcher<Type> type;
 5351 using AstTypeMatcher = internal::VariadicDynCastAllOfMatcher<Type, NodeType>;
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  160   const T *getNodeAs(StringRef ID) const {
  165     return It->second.get<T>();
  302   virtual bool matches(const T &Node,
  309     return matches(DynNode.getUnchecked<T>(), Finder, Builder);
  345   DynTypedMatcher(MatcherInterface<T> *Implementation)
  346       : SupportedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()),
  436     return canConvertTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  445   template <typename T> Matcher<T> convertTo() const {
  447     return unconditionalConvertTo<T>();
  454   template <typename T> Matcher<T> unconditionalConvertTo() const;
  499   explicit Matcher(MatcherInterface<T> *Implementation)
  506   Matcher(const Matcher<From> &Other,
  507           typename std::enable_if<std::is_base_of<From, T>::value &&
  508                                !std::is_same<From, T>::value>::type * = nullptr)
  518   Matcher(const Matcher<TypeT> &Other,
  520             std::is_same<T, QualType>::value &&
  521             std::is_same<TypeT, Type>::value>::type* = nullptr)
  521             std::is_same<TypeT, Type>::value>::type* = nullptr)
  522       : Implementation(new TypeToQualType<TypeT>(Other)) {}
  528   Matcher<To> dynCastTo() const {
  529     static_assert(std::is_base_of<To, T>::value, "Invalid dynCast call.");
  534   bool matches(const T &Node,
  561     TypeToQualType(const Matcher<TypeT> &InnerMatcher)
  581     return Other.dynCastTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  609           ast_type_traits::ASTNodeKind::getFromNodeKind<Type>())) {
  611     return unconditionalConvertTo<Type>();
  776   bool matchesSpecialized(const Type &Node, ASTMatchFinder *Finder,
  780     const Type *EffectiveType = &Node;
  922       std::is_same<T, Decl>::value ||
  923       std::is_same<T, Stmt>::value ||
  924       std::is_same<T, QualType>::value ||
  925       std::is_same<T, Type>::value ||
  925       std::is_same<T, Type>::value ||
  926       std::is_same<T, TypeLoc>::value ||
  927       std::is_same<T, NestedNameSpecifier>::value ||
  928       std::is_same<T, NestedNameSpecifierLoc>::value ||
  929       std::is_same<T, CXXCtorInitializer>::value;
 1067   using head = T1;
 1073   using tail = TypeList<Ts...>;
 1084       std::is_base_of<typename AnyTypeList::head, T>::value ||
 1085       TypeListContainsSuperOf<typename AnyTypeList::tail, T>::value;
 1097              Type, TypeLoc, CXXCtorInitializer>;
 1141     explicit Adaptor(const Matcher<T> &InnerMatcher)
 1146     template <typename To> operator Matcher<To>() const {
 1151     const Matcher<T> InnerMatcher;
 1155   static Adaptor<T> create(const Matcher<T> &InnerMatcher) {
 1155   static Adaptor<T> create(const Matcher<T> &InnerMatcher) {
 1160   Adaptor<T> operator()(const Matcher<T> &InnerMatcher) const {
 1160   Adaptor<T> operator()(const Matcher<T> &InnerMatcher) const {
 1202   operator Matcher<T>() const {
 1203     static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
 1243   operator Matcher<T>() const {
 1245                ast_type_traits::ASTNodeKind::getFromNodeKind<T>())
 1246         .template unconditionalConvertTo<T>();
 1255 class BindableMatcher : public Matcher<T> {
 1257   explicit BindableMatcher(const Matcher<T> &M) : Matcher<T>(M) {}
 1258   explicit BindableMatcher(MatcherInterface<T> *Implementation)
 1265   Matcher<T> bind(StringRef ID) const {
 1268         ->template unconditionalConvertTo<T>();
 1287   explicit HasMatcher(const Matcher<ChildT> &ChildMatcher)
 1305   static_assert(IsBaseType<ChildT>::value,
 1309    explicit ForEachMatcher(const Matcher<ChildT> &ChildMatcher)
 1335   template <typename T> operator Matcher<T>() const {
 1337                Op, ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1338                getMatchers<T>(std::index_sequence_for<Ps...>()))
 1339         .template unconditionalConvertTo<T>();
 1376 BindableMatcher<T> makeAllOfComposite(
 1377     ArrayRef<const Matcher<T> *> InnerMatchers) {
 1388   using PI = llvm::pointee_iterator<const Matcher<T> *const *>;
 1395           ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1397           .template unconditionalConvertTo<T>());
 1407 BindableMatcher<T> makeDynCastAllOfComposite(
 1410       makeAllOfComposite(InnerMatchers).template dynCastTo<T>());
 1419   static_assert(IsBaseType<DescendantT>::value,
 1423   explicit HasDescendantMatcher(const Matcher<DescendantT> &DescendantMatcher)
 1481   static_assert(IsBaseType<DescendantT>::value,
 1486       const Matcher<DescendantT> &DescendantMatcher)
 1557     : public VariadicFunction<BindableMatcher<SourceT>, Matcher<TargetT>,
 1558                               makeDynCastAllOfComposite<SourceT, TargetT>> {
 1575     : public VariadicFunction<BindableMatcher<T>, Matcher<T>,
 1575     : public VariadicFunction<BindableMatcher<T>, Matcher<T>,
 1576                               makeAllOfComposite<T>> {
tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h
  199   ast_matchers::internal::Matcher<T> getTypedMatcher() const {
  202         ->template convertTo<T>();
  227       : MatcherOps(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()) {}
  228   typedef ast_matchers::internal::Matcher<T> MatcherT;
  232     return DynTypedMatcher(Matcher.convertTo<T>());
tools/clang/include/clang/Sema/Sema.h
 9180   llvm::DenseMap<const Type*, std::set<std::string>> OpenCLTypeExtMap;
11610   void DiscardMisalignedMemberAddress(const Type *T, Expr *E);
tools/clang/include/clang/Serialization/ASTReader.h
  882   llvm::DenseMap<const Type *, std::set<std::string>> OpenCLTypeExtMap;
tools/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h
  101     if (const Type *TP = Loc.getTypePtr()) {
  102       if (TP->getTypeClass() == clang::Type::Record)
tools/clang/lib/AST/APValue.cpp
   25 TypeInfoLValue::TypeInfoLValue(const Type *T)
   37         alignof(Type),
tools/clang/lib/AST/ASTContext.cpp
  986     Type *T = Types[i];
 1736 ASTContext::getTypeInfoInChars(const Type *T) const {
 1749 bool ASTContext::isAlignmentRequired(const Type *T) const {
 1781 TypeInfo ASTContext::getTypeInfo(const Type *T) const {
 1798 TypeInfo ASTContext::getTypeInfoImpl(const Type *T) const {
 1815   case Type::FunctionNoProto:
 1816   case Type::FunctionProto:
 1822   case Type::IncompleteArray:
 1823   case Type::VariableArray:
 1828   case Type::ConstantArray: {
 1842   case Type::ExtVector:
 1843   case Type::Vector: {
 1861   case Type::Builtin:
 2052   case Type::ObjCObjectPointer:
 2056   case Type::BlockPointer:
 2061   case Type::LValueReference:
 2062   case Type::RValueReference:
 2069   case Type::Pointer:
 2074   case Type::MemberPointer: {
 2081   case Type::Complex: {
 2089   case Type::ObjCObject:
 2091   case Type::Adjusted:
 2092   case Type::Decayed:
 2094   case Type::ObjCInterface: {
 2101   case Type::Record:
 2102   case Type::Enum: {
 2131   case Type::SubstTemplateTypeParm:
 2135   case Type::Auto:
 2136   case Type::DeducedTemplateSpecialization: {
 2143   case Type::Paren:
 2146   case Type::MacroQualified:
 2150   case Type::ObjCTypeParam:
 2153   case Type::Typedef: {
 2170   case Type::Elaborated:
 2173   case Type::Attributed:
 2177   case Type::Atomic: {
 2203   case Type::Pipe:
 2213 unsigned ASTContext::getTypeUnadjustedAlign(const Type *T) const {
 2260 CharUnits ASTContext::getTypeSizeInChars(const Type *T) const {
 2269 CharUnits ASTContext::getTypeAlignInChars(const Type *T) const {
 2279 CharUnits ASTContext::getTypeUnadjustedAlignInChars(const Type *T) const {
 2287 unsigned ASTContext::getPreferredTypeAlign(const Type *T) const {
 2714 ASTContext::getExtQualType(const Type *baseType, Qualifiers quals) const {
 2752   const Type *TypeNode = Quals.strip(T);
 2767   const Type *TypeNode = Quals.strip(T);
 2801   const Type *TypeNode = Quals.strip(T);
 2985       AdjustedType(Type::Adjusted, Orig, New, Canonical);
 3137 QualType ASTContext::getMemberPointerType(QualType T, const Type *Cls) const {
 3230   const Type *ty = split.Ty;
 3239   case Type::Builtin:
 3240   case Type::Complex:
 3241   case Type::Vector:
 3242   case Type::DependentVector:
 3243   case Type::ExtVector:
 3244   case Type::DependentSizedExtVector:
 3245   case Type::DependentAddressSpace:
 3246   case Type::ObjCObject:
 3247   case Type::ObjCInterface:
 3248   case Type::ObjCObjectPointer:
 3249   case Type::Record:
 3250   case Type::Enum:
 3251   case Type::UnresolvedUsing:
 3252   case Type::TypeOfExpr:
 3253   case Type::TypeOf:
 3254   case Type::Decltype:
 3255   case Type::UnaryTransform:
 3256   case Type::DependentName:
 3257   case Type::InjectedClassName:
 3258   case Type::TemplateSpecialization:
 3259   case Type::DependentTemplateSpecialization:
 3260   case Type::TemplateTypeParm:
 3261   case Type::SubstTemplateTypeParmPack:
 3262   case Type::Auto:
 3263   case Type::DeducedTemplateSpecialization:
 3264   case Type::PackExpansion:
 3269   case Type::FunctionNoProto:
 3270   case Type::FunctionProto:
 3271   case Type::BlockPointer:
 3272   case Type::MemberPointer:
 3273   case Type::Pipe:
 3280   case Type::Pointer:
 3285   case Type::LValueReference: {
 3293   case Type::RValueReference: {
 3300   case Type::Atomic: {
 3306   case Type::ConstantArray: {
 3317   case Type::DependentSizedArray: {
 3329   case Type::IncompleteArray: {
 3341   case Type::VariableArray: {
 3499   VectorType::Profile(ID, vecType, NumElts, Type::Vector, VecKind);
 3569   VectorType::Profile(ID, vecType, NumElts, Type::ExtVector,
 3961     Type *newType =
 3989     Type *newType = new (*this, TypeAlignment) UnresolvedUsingType(Using);
 4008     TypedefType(Type::Typedef, Decl, Canonical);
 5156   const Type *Ty = T.getTypePtr();
 5755 unsigned ASTContext::getIntegerRank(const Type *T) const {
 5906 static const Type *getIntegerTypeForEnum(const EnumType *ET) {
 5918   const Type *LHSC = getCanonicalType(LHS).getTypePtr();
 5919   const Type *RHSC = getCanonicalType(RHS).getTypePtr();
 6148 TargetInfo::OpenCLTypeKind ASTContext::getOpenCLTypeKind(const Type *T) const {
 6184 LangAS ASTContext::getOpenCLTypeAddrSpace(const Type *T) const {
 6806   case Type::Builtin:
 6807   case Type::Enum:
 6816   case Type::Complex: {
 6824   case Type::Atomic: {
 6833   case Type::Pointer:
 6834   case Type::LValueReference:
 6835   case Type::RValueReference: {
 6906   case Type::ConstantArray:
 6907   case Type::IncompleteArray:
 6908   case Type::VariableArray: {
 6939   case Type::FunctionNoProto:
 6940   case Type::FunctionProto:
 6944   case Type::Record: {
 6991   case Type::BlockPointer: {
 7014   case Type::ObjCObject: {
 7029   case Type::ObjCInterface: {
 7055   case Type::ObjCObjectPointer: {
 7108   case Type::MemberPointer:
 7111   case Type::Vector:
 7112   case Type::ExtVector:
 7120   case Type::Auto:
 7121   case Type::DeducedTemplateSpecialization:
 7124   case Type::Pipe:
 8902   Type::TypeClass LHSClass = LHSCan->getTypeClass();
 8903   Type::TypeClass RHSClass = RHSCan->getTypeClass();
 8907   if (LHSClass == Type::FunctionProto) LHSClass = Type::FunctionNoProto;
 8907   if (LHSClass == Type::FunctionProto) LHSClass = Type::FunctionNoProto;
 8908   if (RHSClass == Type::FunctionProto) RHSClass = Type::FunctionNoProto;
 8908   if (RHSClass == Type::FunctionProto) RHSClass = Type::FunctionNoProto;
 8911   if (LHSClass == Type::VariableArray || LHSClass == Type::IncompleteArray)
 8911   if (LHSClass == Type::VariableArray || LHSClass == Type::IncompleteArray)
 8912     LHSClass = Type::ConstantArray;
 8913   if (RHSClass == Type::VariableArray || RHSClass == Type::IncompleteArray)
 8913   if (RHSClass == Type::VariableArray || RHSClass == Type::IncompleteArray)
 8914     RHSClass = Type::ConstantArray;
 8917   if (LHSClass == Type::ObjCInterface) LHSClass = Type::ObjCObject;
 8917   if (LHSClass == Type::ObjCInterface) LHSClass = Type::ObjCObject;
 8918   if (RHSClass == Type::ObjCInterface) RHSClass = Type::ObjCObject;
 8918   if (RHSClass == Type::ObjCInterface) RHSClass = Type::ObjCObject;
 8921   if (LHSClass == Type::ExtVector) LHSClass = Type::Vector;
 8921   if (LHSClass == Type::ExtVector) LHSClass = Type::Vector;
 8922   if (RHSClass == Type::ExtVector) RHSClass = Type::Vector;
 8922   if (RHSClass == Type::ExtVector) RHSClass = Type::Vector;
 8955   case Type::Auto:
 8956   case Type::DeducedTemplateSpecialization:
 8957   case Type::LValueReference:
 8958   case Type::RValueReference:
 8959   case Type::MemberPointer:
 8962   case Type::ObjCInterface:
 8963   case Type::IncompleteArray:
 8964   case Type::VariableArray:
 8965   case Type::FunctionProto:
 8966   case Type::ExtVector:
 8969   case Type::Pointer:
 8988   case Type::BlockPointer:
 9021   case Type::Atomic:
 9040   case Type::ConstantArray:
 9122   case Type::FunctionNoProto:
 9124   case Type::Record:
 9125   case Type::Enum:
 9127   case Type::Builtin:
 9130   case Type::Complex:
 9133   case Type::Vector:
 9139   case Type::ObjCObject: {
 9148   case Type::ObjCObjectPointer:
 9160   case Type::Pipe:
tools/clang/lib/AST/ASTDiagnostic.cpp
   32     const Type *Ty = QC.strip(QT);
tools/clang/lib/AST/ASTImporter.cpp
  308     ExpectedType VisitType(const Type *T);
  964 ExpectedType ASTNodeImporter::VisitType(const Type *T) {
 1557       const Type *LeafT =
 7871   const Type *FromTy = FromT.getTypePtr();
 7874   llvm::DenseMap<const Type *, const Type *>::iterator Pos
 7874   llvm::DenseMap<const Type *, const Type *>::iterator Pos
 8794   llvm::DenseMap<const Type *, const Type *>::iterator Pos =
 8794   llvm::DenseMap<const Type *, const Type *>::iterator Pos =
tools/clang/lib/AST/ASTStructuralEquivalence.cpp
  453   Type::TypeClass TC = T1->getTypeClass();
  458     if (T1->getTypeClass() == Type::FunctionProto &&
  459         T2->getTypeClass() == Type::FunctionNoProto)
  460       TC = Type::FunctionNoProto;
  461     else if (T1->getTypeClass() == Type::FunctionNoProto &&
  462              T2->getTypeClass() == Type::FunctionProto)
  463       TC = Type::FunctionNoProto;
  469   case Type::Builtin:
  475   case Type::Complex:
  482   case Type::Adjusted:
  483   case Type::Decayed:
  490   case Type::Pointer:
  497   case Type::BlockPointer:
  504   case Type::LValueReference:
  505   case Type::RValueReference: {
  518   case Type::MemberPointer: {
  530   case Type::ConstantArray: {
  541   case Type::IncompleteArray:
  547   case Type::VariableArray: {
  560   case Type::DependentSizedArray: {
  573   case Type::DependentAddressSpace: {
  586   case Type::DependentSizedExtVector: {
  598   case Type::DependentVector: {
  612   case Type::Vector:
  613   case Type::ExtVector: {
  626   case Type::FunctionProto: {
  655   case Type::FunctionNoProto: {
  667   case Type::UnresolvedUsing:
  674   case Type::Attributed:
  685   case Type::Paren:
  691   case Type::MacroQualified:
  698   case Type::Typedef:
  704   case Type::TypeOfExpr:
  711   case Type::TypeOf:
  718   case Type::UnaryTransform:
  725   case Type::Decltype:
  732   case Type::Auto:
  738   case Type::DeducedTemplateSpecialization: {
  750   case Type::Record:
  751   case Type::Enum:
  757   case Type::TemplateTypeParm: {
  771   case Type::SubstTemplateTypeParm: {
  784   case Type::SubstTemplateTypeParmPack: {
  797   case Type::TemplateSpecialization: {
  813   case Type::Elaborated: {
  828   case Type::InjectedClassName: {
  838   case Type::DependentName: {
  851   case Type::DependentTemplateSpecialization: {
  870   case Type::PackExpansion:
  877   case Type::ObjCInterface: {
  886   case Type::ObjCTypeParam: {
  902   case Type::ObjCObject: {
  918   case Type::ObjCObjectPointer: {
  927   case Type::Atomic:
  933   case Type::Pipe:
tools/clang/lib/AST/ASTTypeTraits.cpp
  102 ASTNodeKind ASTNodeKind::getFromNode(const Type &T) {
  148   else if (const Type *T = get<Type>())
  148   else if (const Type *T = get<Type>())
  159   else if (const Type *T = get<Type>())
  159   else if (const Type *T = get<Type>())
tools/clang/lib/AST/Decl.cpp
  238 LinkageInfo LinkageComputer::getLVForType(const Type &T,
 1872     const Type* T = QT.getTypePtr();
 1876     case Type::Pointer:
 1879     case Type::BlockPointer:
 1882     case Type::MemberPointer:
 1885     case Type::LValueReference:
 1886     case Type::RValueReference:
 1889     case Type::PackExpansion:
 1892     case Type::Paren:
 1893     case Type::ConstantArray:
 1894     case Type::DependentSizedArray:
 1895     case Type::IncompleteArray:
 1896     case Type::VariableArray:
 1897     case Type::FunctionProto:
 1898     case Type::FunctionNoProto:
 4068   if (const Type *T = getTypeForDecl()) {
tools/clang/lib/AST/DeclCXX.cpp
 2400 const Type *CXXCtorInitializer::getBaseClass() const {
tools/clang/lib/AST/Expr.cpp
  260 ConstantExpr::getStorageKind(const Type *T, const ASTContext &Context) {
tools/clang/lib/AST/ExprCXX.cpp
 1577     const Type *T = getQualifier()->getAsType();
tools/clang/lib/AST/ExprConstant.cpp
 6475   Optional<APValue> visit(const Type *Ty, CharUnits Offset) {
 8720     const Type *FinalTy = E->getType()->castAs<MemberPointerType>()->getClass();
 9966   case Type::Auto:
 9967   case Type::DeducedTemplateSpecialization:
 9970   case Type::Builtin:
10039   case Type::Enum:
10042   case Type::Pointer:
10043   case Type::ConstantArray:
10044   case Type::VariableArray:
10045   case Type::IncompleteArray:
10046   case Type::FunctionNoProto:
10047   case Type::FunctionProto:
10050   case Type::MemberPointer:
10055   case Type::Complex:
10058   case Type::Record:
10062   case Type::Atomic:
10067   case Type::BlockPointer:
10068   case Type::Vector:
10069   case Type::ExtVector:
10070   case Type::ObjCObject:
10071   case Type::ObjCInterface:
10072   case Type::ObjCObjectPointer:
10073   case Type::Pipe:
10078   case Type::LValueReference:
10079   case Type::RValueReference:
tools/clang/lib/AST/Interp/Program.cpp
  296 Descriptor *Program::createDescriptor(const DeclTy &D, const Type *Ty,
  353     const Type *InnerTy = AT->getValueType().getTypePtr();
tools/clang/lib/AST/Interp/Program.h
  109   Descriptor *createDescriptor(const DeclTy &D, const Type *Ty,
tools/clang/lib/AST/ItaniumMangle.cpp
 1170     const Type *type = qualifier->getAsType();
 1972   case Type::Builtin:
 1973   case Type::Complex:
 1974   case Type::Adjusted:
 1975   case Type::Decayed:
 1976   case Type::Pointer:
 1977   case Type::BlockPointer:
 1978   case Type::LValueReference:
 1979   case Type::RValueReference:
 1980   case Type::MemberPointer:
 1981   case Type::ConstantArray:
 1982   case Type::IncompleteArray:
 1983   case Type::VariableArray:
 1984   case Type::DependentSizedArray:
 1985   case Type::DependentAddressSpace:
 1986   case Type::DependentVector:
 1987   case Type::DependentSizedExtVector:
 1988   case Type::Vector:
 1989   case Type::ExtVector:
 1990   case Type::FunctionProto:
 1991   case Type::FunctionNoProto:
 1992   case Type::Paren:
 1993   case Type::Attributed:
 1994   case Type::Auto:
 1995   case Type::DeducedTemplateSpecialization:
 1996   case Type::PackExpansion:
 1997   case Type::ObjCObject:
 1998   case Type::ObjCInterface:
 1999   case Type::ObjCObjectPointer:
 2000   case Type::ObjCTypeParam:
 2001   case Type::Atomic:
 2002   case Type::Pipe:
 2003   case Type::MacroQualified:
 2006   case Type::SubstTemplateTypeParmPack:
 2018   case Type::TypeOfExpr:
 2019   case Type::TypeOf:
 2020   case Type::Decltype:
 2021   case Type::TemplateTypeParm:
 2022   case Type::UnaryTransform:
 2023   case Type::SubstTemplateTypeParm:
 2036   case Type::Typedef:
 2040   case Type::UnresolvedUsing:
 2045   case Type::Enum:
 2046   case Type::Record:
 2050   case Type::TemplateSpecialization: {
 2095   case Type::InjectedClassName:
 2100   case Type::DependentName:
 2104   case Type::DependentTemplateSpecialization: {
 2112   case Type::Elaborated:
 2388 static bool isTypeSubstitutable(Qualifiers Quals, const Type *Ty,
 2461   const Type *ty = split.Ty;
tools/clang/lib/AST/JSONNodeDumper.cpp
   67 void JSONNodeDumper::Visit(const Type *T) {
tools/clang/lib/AST/Linkage.h
  137   LinkageInfo getLVForType(const Type &T, LVComputationKind computation);
  149   LinkageInfo computeTypeLinkageInfo(const Type *T);
  156   LinkageInfo getTypeLinkageAndVisibility(const Type *T);
tools/clang/lib/AST/MicrosoftCXXABI.cpp
   30   llvm::DenseMap<const Type *, unsigned> ManglingNumbers;
   45     const Type *Ty = nullptr;
tools/clang/lib/AST/MicrosoftMangle.cpp
 1932   const Type *ty = T.getTypePtr();
 2672   const Type *ty = T.getTypePtr();
 2677   case Type::Vector: {
tools/clang/lib/AST/NestedNameSpecifier.cpp
  105                             bool Template, const Type *T) {
  316     const Type *T = getAsType();
tools/clang/lib/AST/ODRHash.cpp
  679   void AddType(const Type *T) {
  706   static const Type *RemoveTypedef(const Type *T) {
  706   static const Type *RemoveTypedef(const Type *T) {
  748   void Visit(const Type *T) {
  754   void VisitType(const Type *T) {}
 1107 void ODRHash::AddType(const Type *T) {
tools/clang/lib/AST/QualTypeNames.cpp
  116 static const Type *getFullyQualifiedTemplateType(const ASTContext &Ctx,
  117                                                  const Type *TypePtr,
  239       const Type *Type = Scope->getAsType();
  317     const ASTContext &Ctx, const Type *TypePtr,
  452     const Type *TypePtr = getFullyQualifiedTemplateType(
tools/clang/lib/AST/StmtIterator.cpp
   25 static inline const VariableArrayType *FindVA(const Type* t) {
tools/clang/lib/AST/TemplateBase.cpp
   54   const Type *T = TemplArg.getIntegralType().getTypePtr();
tools/clang/lib/AST/TextNodeDumper.cpp
  168 void TextNodeDumper::Visit(const Type *T) {
tools/clang/lib/AST/Type.cpp
   73   const Type* ty = getTypePtr();
   81   else if (ty->getTypeClass() == Type::Typedef)
  301 const Type *Type::getArrayElementTypeNoTypeQual() const {
  373     const Type *CurTy = Qs.strip(Cur);
  396   const Type *lastTypeWithQuals = split.Ty;
  438 template<typename T> static const T *getAsSugar(const Type *Cur) {
  471 const Type *Type::getUnqualifiedDesugaredType() const {
  472   const Type *Cur = this;
 1706   const Type *Cur = this;
 1718     public TypeVisitor<GetContainedDeducedTypeVisitor, Type*> {
 1727     Type *Visit(QualType T) {
 1734     Type *VisitDeducedType(const DeducedType *AT) {
 1740     Type *VisitElaboratedType(const ElaboratedType *T) {
 1744     Type *VisitPointerType(const PointerType *T) {
 1748     Type *VisitBlockPointerType(const BlockPointerType *T) {
 1752     Type *VisitReferenceType(const ReferenceType *T) {
 1756     Type *VisitMemberPointerType(const MemberPointerType *T) {
 1760     Type *VisitArrayType(const ArrayType *T) {
 1764     Type *VisitDependentSizedExtVectorType(
 1769     Type *VisitVectorType(const VectorType *T) {
 1773     Type *VisitFunctionProtoType(const FunctionProtoType *T) {
 1779     Type *VisitFunctionType(const FunctionType *T) {
 1783     Type *VisitParenType(const ParenType *T) {
 1787     Type *VisitAttributedType(const AttributedType *T) {
 1791     Type *VisitMacroQualifiedType(const MacroQualifiedType *T) {
 1795     Type *VisitAdjustedType(const AdjustedType *T) {
 1799     Type *VisitPackExpansionType(const PackExpansionType *T) {
 2050 Type::ScalarTypeKind Type::getScalarTypeKind() const {
 2053   const Type *T = CanonicalType.getTypePtr();
 2153     const Type *ClassTy = MPTy->getClass();
 2212   case Type::VariableArray:
 2213   case Type::ConstantArray:
 2217   case Type::ObjCObjectPointer:
 2218   case Type::BlockPointer:
 2219   case Type::Builtin:
 2220   case Type::Complex:
 2221   case Type::Pointer:
 2222   case Type::MemberPointer:
 2223   case Type::Vector:
 2224   case Type::ExtVector:
 2227   case Type::Enum:
 2230   case Type::Record:
 2398   const Type *BaseTy = getBaseElementTypeUnsafe();
 2455   const Type *BaseTy = getBaseElementTypeUnsafe();
 2484   const Type *ty = getTypePtr();
 2494   const Type *BaseTy = ty->getBaseElementTypeUnsafe();
 3501 QualifierCollector::apply(const ASTContext &Context, const Type *T) const {
 3565 static CachedProperties computeCachedProperties(const Type *T);
 3578   static CachedProperties get(const Type *T) {
 3584   static void ensure(const Type *T) {
 3591       const Type *CT = T->getCanonicalTypeInternal().getTypePtr();
 3620 static CachedProperties computeCachedProperties(const Type *T) {
 3636   case Type::Auto:
 3637   case Type::DeducedTemplateSpecialization:
 3642   case Type::Builtin:
 3648   case Type::Record:
 3649   case Type::Enum: {
 3666   case Type::Complex:
 3668   case Type::Pointer:
 3670   case Type::BlockPointer:
 3672   case Type::LValueReference:
 3673   case Type::RValueReference:
 3675   case Type::MemberPointer: {
 3680   case Type::ConstantArray:
 3681   case Type::IncompleteArray:
 3682   case Type::VariableArray:
 3684   case Type::Vector:
 3685   case Type::ExtVector:
 3687   case Type::FunctionNoProto:
 3689   case Type::FunctionProto: {
 3696   case Type::ObjCInterface: {
 3700   case Type::ObjCObject:
 3702   case Type::ObjCObjectPointer:
 3704   case Type::Atomic:
 3706   case Type::Pipe:
 3724 LinkageInfo LinkageComputer::computeTypeLinkageInfo(const Type *T) {
 3739   case Type::Builtin:
 3742   case Type::Auto:
 3743   case Type::DeducedTemplateSpecialization:
 3746   case Type::Record:
 3747   case Type::Enum:
 3750   case Type::Complex:
 3752   case Type::Pointer:
 3754   case Type::BlockPointer:
 3756   case Type::LValueReference:
 3757   case Type::RValueReference:
 3759   case Type::MemberPointer: {
 3765   case Type::ConstantArray:
 3766   case Type::IncompleteArray:
 3767   case Type::VariableArray:
 3769   case Type::Vector:
 3770   case Type::ExtVector:
 3772   case Type::FunctionNoProto:
 3774   case Type::FunctionProto: {
 3781   case Type::ObjCInterface:
 3783   case Type::ObjCObject:
 3785   case Type::ObjCObjectPointer:
 3788   case Type::Atomic:
 3790   case Type::Pipe:
 3807 LinkageInfo LinkageComputer::getTypeLinkageAndVisibility(const Type *T) {
 3846   case Type::Pointer:
 3847   case Type::BlockPointer:
 3848   case Type::MemberPointer:
 3849   case Type::ObjCObjectPointer:
 3853   case Type::UnresolvedUsing:
 3854   case Type::TypeOfExpr:
 3855   case Type::TypeOf:
 3856   case Type::Decltype:
 3857   case Type::UnaryTransform:
 3858   case Type::TemplateTypeParm:
 3859   case Type::SubstTemplateTypeParmPack:
 3860   case Type::DependentName:
 3861   case Type::DependentTemplateSpecialization:
 3862   case Type::Auto:
 3868   case Type::TemplateSpecialization:
 3877   case Type::Builtin:
 3922   case Type::Complex:
 3923   case Type::LValueReference:
 3924   case Type::RValueReference:
 3925   case Type::ConstantArray:
 3926   case Type::IncompleteArray:
 3927   case Type::VariableArray:
 3928   case Type::DependentSizedArray:
 3929   case Type::DependentVector:
 3930   case Type::DependentSizedExtVector:
 3931   case Type::Vector:
 3932   case Type::ExtVector:
 3933   case Type::DependentAddressSpace:
 3934   case Type::FunctionProto:
 3935   case Type::FunctionNoProto:
 3936   case Type::Record:
 3937   case Type::DeducedTemplateSpecialization:
 3938   case Type::Enum:
 3939   case Type::InjectedClassName:
 3940   case Type::PackExpansion:
 3941   case Type::ObjCObject:
 3942   case Type::ObjCInterface:
 3943   case Type::Atomic:
 3944   case Type::Pipe:
 4019   const Type *canon = getCanonicalTypeInternal().getTypePtr();
 4035   const Type *cur = this;
 4074   const Type *type = this;
tools/clang/lib/AST/TypePrinter.cpp
  111     void print(const Type *ty, Qualifiers qs, raw_ostream &OS,
  115     static bool canPrefixQualifiers(const Type *T, bool &NeedARCStrongQualifier);
  131     void printBefore(const Type *ty, Qualifiers qs, raw_ostream &OS);
  132     void printAfter(const Type *ty, Qualifiers qs, raw_ostream &OS);
  176 void TypePrinter::print(const Type *T, Qualifiers Quals, raw_ostream &OS,
  190 bool TypePrinter::canPrefixQualifiers(const Type *T,
  199   Type::TypeClass TC = T->getTypeClass();
  206     case Type::Auto:
  207     case Type::Builtin:
  208     case Type::Complex:
  209     case Type::UnresolvedUsing:
  210     case Type::Typedef:
  211     case Type::TypeOfExpr:
  212     case Type::TypeOf:
  213     case Type::Decltype:
  214     case Type::UnaryTransform:
  215     case Type::Record:
  216     case Type::Enum:
  217     case Type::Elaborated:
  218     case Type::TemplateTypeParm:
  219     case Type::SubstTemplateTypeParmPack:
  220     case Type::DeducedTemplateSpecialization:
  221     case Type::TemplateSpecialization:
  222     case Type::InjectedClassName:
  223     case Type::DependentName:
  224     case Type::DependentTemplateSpecialization:
  225     case Type::ObjCObject:
  226     case Type::ObjCTypeParam:
  227     case Type::ObjCInterface:
  228     case Type::Atomic:
  229     case Type::Pipe:
  233     case Type::ObjCObjectPointer:
  238     case Type::ConstantArray:
  239     case Type::IncompleteArray:
  240     case Type::VariableArray:
  241     case Type::DependentSizedArray:
  245     case Type::Adjusted:
  246     case Type::Decayed:
  247     case Type::Pointer:
  248     case Type::BlockPointer:
  249     case Type::LValueReference:
  250     case Type::RValueReference:
  251     case Type::MemberPointer:
  252     case Type::DependentAddressSpace:
  253     case Type::DependentVector:
  254     case Type::DependentSizedExtVector:
  255     case Type::Vector:
  256     case Type::ExtVector:
  257     case Type::FunctionProto:
  258     case Type::FunctionNoProto:
  259     case Type::Paren:
  260     case Type::PackExpansion:
  261     case Type::SubstTemplateTypeParm:
  262     case Type::MacroQualified:
  266     case Type::Attributed: {
  291 void TypePrinter::printBefore(const Type *T,Qualifiers Quals, raw_ostream &OS) {
  344 void TypePrinter::printAfter(const Type *T, Qualifiers Quals, raw_ostream &OS) {
 1873 std::string QualType::getAsString(const Type *ty, Qualifiers qs,
 1886 void QualType::print(const Type *ty, Qualifiers qs,
 1901 void QualType::getAsStringInternal(const Type *ty, Qualifiers qs,
tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp
  254   bool match(const T &Node) {
  370     const Type *TypeNode = DeclNode->getUnderlyingType().getTypePtr();
  371     const Type *CanonicalType =  // root of the typedef tree
  490     } else if (auto *N = Node.get<Type>()) {
  505   template <typename T> void match(const T &Node) {
  608   void matchDispatch(const Type *Node) {
  759   bool typeHasMatchingAlias(const Type *TypeNode,
  762     const Type *const CanonicalType =
  816   llvm::DenseMap<const Type*, std::set<const TypedefNameDecl*> > TypeAliases;
  829 getAsCXXRecordDeclOrPrimaryTemplate(const Type *TypeNode) {
  859     const Type *TypeNode = It.getType().getTypePtr();
  900     const Type *TypeNode = ClassDecl->getTypeForDecl();
tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp
  250   auto TypeKind = ast_type_traits::ASTNodeKind::getFromNodeKind<Type>();
  591 const internal::VariadicAllOfMatcher<Type> type;
tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h
   75     return Value.isMatcher() && Value.getMatcher().hasTypedMatcher<T>();
   78   static ast_matchers::internal::Matcher<T> get(const VariantValue &Value) {
   79     return Value.getMatcher().getTypedMatcher<T>();
   83     return ArgKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  361     RetTypes.push_back(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  368     RetTypes.push_back(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  466       ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT> Func,
  778     ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT>
tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp
  561       ASTNodeKind::getFromNodeKind<Type>(),
tools/clang/lib/Analysis/CFG.cpp
 1329 static const VariableArrayType *FindVA(const Type *t) {
 5541     const Type *T = FD->getType()->getBaseElementTypeUnsafe();
tools/clang/lib/Analysis/LiveVariables.cpp
  224   const Type *ty = Ty.getTypePtr();
tools/clang/lib/CodeGen/ABIInfo.h
   99     virtual bool isHomogeneousAggregateSmallEnough(const Type *Base,
  102     bool isHomogeneousAggregate(QualType Ty, const Type *&Base,
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGCXX.cpp
  281   const Type *QTy = Qual->getAsType();
tools/clang/lib/CodeGen/CGCall.cpp
  282   CanQualType FT = GetFormalType(MD).getAs<Type>();
tools/clang/lib/CodeGen/CGClass.cpp
  541   const Type *BaseType = BaseInit->getBaseClass();
 1249   const Type *BaseType = BaseInit->getBaseClass();
tools/clang/lib/CodeGen/CGDebugInfo.cpp
   52 static uint32_t getTypeAlignIfRequired(const Type *Ty, const ASTContext &Ctx) {
  833   const Type *T = Qc.strip(Ty);
 1001                                                  const Type *Ty,
 2860     case Type::TemplateSpecialization: {
 2867     case Type::TypeOfExpr:
 2870     case Type::TypeOf:
 2873     case Type::Decltype:
 2876     case Type::UnaryTransform:
 2879     case Type::Attributed:
 2882     case Type::Elaborated:
 2885     case Type::Paren:
 2888     case Type::MacroQualified:
 2891     case Type::SubstTemplateTypeParm:
 2894     case Type::Auto:
 2895     case Type::DeducedTemplateSpecialization: {
 2901     case Type::Adjusted:
 2902     case Type::Decayed:
 3013   case Type::ExtVector:
 3014   case Type::Vector:
 3016   case Type::ObjCObjectPointer:
 3018   case Type::ObjCObject:
 3020   case Type::ObjCTypeParam:
 3022   case Type::ObjCInterface:
 3024   case Type::Builtin:
 3026   case Type::Complex:
 3028   case Type::Pointer:
 3030   case Type::BlockPointer:
 3032   case Type::Typedef:
 3034   case Type::Record:
 3036   case Type::Enum:
 3038   case Type::FunctionProto:
 3039   case Type::FunctionNoProto:
 3041   case Type::ConstantArray:
 3042   case Type::VariableArray:
 3043   case Type::IncompleteArray:
 3046   case Type::LValueReference:
 3048   case Type::RValueReference:
 3051   case Type::MemberPointer:
 3054   case Type::Atomic:
 3057   case Type::Pipe:
 3060   case Type::TemplateSpecialization:
 3063   case Type::Auto:
 3064   case Type::Attributed:
 3065   case Type::Adjusted:
 3066   case Type::Decayed:
 3067   case Type::DeducedTemplateSpecialization:
 3068   case Type::Elaborated:
 3069   case Type::Paren:
 3070   case Type::MacroQualified:
 3071   case Type::SubstTemplateTypeParm:
 3072   case Type::TypeOfExpr:
 3073   case Type::TypeOf:
 3074   case Type::Decltype:
 3075   case Type::UnaryTransform:
 3076   case Type::PackExpansion:
tools/clang/lib/CodeGen/CGDebugInfo.h
  216   llvm::DIType *CreatePointerLikeType(llvm::dwarf::Tag Tag, const Type *Ty,
tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp
   33 llvm::Type *CGOpenCLRuntime::convertOpenCLSpecificType(const Type *T) {
   89 llvm::PointerType *CGOpenCLRuntime::getSamplerType(const Type *T) {
tools/clang/lib/CodeGen/CGOpenCLRuntime.h
   65   virtual llvm::Type *convertOpenCLSpecificType(const Type *T);
   69   llvm::PointerType *getSamplerType(const Type *T);
tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
 4448   const Type *NonQualTy = QC.strip(ArgType);
 4487   const Type *NonQualTy = QC.strip(NativeParamType);
tools/clang/lib/CodeGen/CodeGenFunction.cpp
  200     case Type::Auto:
  201     case Type::DeducedTemplateSpecialization:
  205     case Type::Builtin:
  206     case Type::Pointer:
  207     case Type::BlockPointer:
  208     case Type::LValueReference:
  209     case Type::RValueReference:
  210     case Type::MemberPointer:
  211     case Type::Vector:
  212     case Type::ExtVector:
  213     case Type::FunctionProto:
  214     case Type::FunctionNoProto:
  215     case Type::Enum:
  216     case Type::ObjCObjectPointer:
  217     case Type::Pipe:
  221     case Type::Complex:
  225     case Type::ConstantArray:
  226     case Type::IncompleteArray:
  227     case Type::VariableArray:
  228     case Type::Record:
  229     case Type::ObjCObject:
  230     case Type::ObjCInterface:
  234     case Type::Atomic:
 1866     const Type *ty = type.getTypePtr();
 1878     case Type::Builtin:
 1879     case Type::Complex:
 1880     case Type::Vector:
 1881     case Type::ExtVector:
 1882     case Type::Record:
 1883     case Type::Enum:
 1884     case Type::Elaborated:
 1885     case Type::TemplateSpecialization:
 1886     case Type::ObjCTypeParam:
 1887     case Type::ObjCObject:
 1888     case Type::ObjCInterface:
 1889     case Type::ObjCObjectPointer:
 1892     case Type::Adjusted:
 1896     case Type::Decayed:
 1900     case Type::Pointer:
 1904     case Type::BlockPointer:
 1908     case Type::LValueReference:
 1909     case Type::RValueReference:
 1913     case Type::MemberPointer:
 1917     case Type::ConstantArray:
 1918     case Type::IncompleteArray:
 1923     case Type::VariableArray: {
 1961     case Type::FunctionProto:
 1962     case Type::FunctionNoProto:
 1966     case Type::Paren:
 1967     case Type::TypeOf:
 1968     case Type::UnaryTransform:
 1969     case Type::Attributed:
 1970     case Type::SubstTemplateTypeParm:
 1971     case Type::PackExpansion:
 1972     case Type::MacroQualified:
 1977     case Type::Typedef:
 1978     case Type::Decltype:
 1979     case Type::Auto:
 1980     case Type::DeducedTemplateSpecialization:
 1984     case Type::TypeOfExpr:
 1989     case Type::Atomic:
 1993     case Type::Pipe:
tools/clang/lib/CodeGen/CodeGenTBAA.cpp
  114 llvm::MDNode *CodeGenTBAA::getTypeInfoHelper(const Type *Ty) {
  206   const Type *Ty = Context.getCanonicalType(QTy).getTypePtr();
  283   const Type *Ty = Context.getCanonicalType(QTy).getTypePtr();
  296 llvm::MDNode *CodeGenTBAA::getBaseTypeInfoHelper(const Type *Ty) {
  347   const Type *Ty = Context.getCanonicalType(QTy).getTypePtr();
tools/clang/lib/CodeGen/CodeGenTBAA.h
  129   llvm::DenseMap<const Type *, llvm::MDNode *> MetadataCache;
  131   llvm::DenseMap<const Type *, llvm::MDNode *> BaseTypeMetadataCache;
  137   llvm::DenseMap<const Type *, llvm::MDNode *> StructMetadataCache;
  164   llvm::MDNode *getTypeInfoHelper(const Type *Ty);
  168   llvm::MDNode *getBaseTypeInfoHelper(const Type *Ty);
tools/clang/lib/CodeGen/CodeGenTypes.cpp
  101 bool CodeGenTypes::isRecordLayoutComplete(const Type *Ty) const {
  102   llvm::DenseMap<const Type*, llvm::StructType *>::const_iterator I =
  123   const Type *Key = CGT.getContext().getTagDeclType(RD).getTypePtr();
  282   const Type *Ty = T.getTypePtr();
  313   const Type *Ty = QFT.getTypePtr();
  384   const Type *Ty = T.getTypePtr();
  391   llvm::DenseMap<const Type *, llvm::Type *>::iterator TCI = TypeCache.find(Ty);
  399   case Type::Record: // Handled above.
  408   case Type::Builtin: {
  540   case Type::Auto:
  541   case Type::DeducedTemplateSpecialization:
  543   case Type::Complex: {
  548   case Type::LValueReference:
  549   case Type::RValueReference: {
  557   case Type::Pointer: {
  568   case Type::VariableArray: {
  577   case Type::IncompleteArray: {
  591   case Type::ConstantArray: {
  605   case Type::ExtVector:
  606   case Type::Vector: {
  612   case Type::FunctionNoProto:
  613   case Type::FunctionProto:
  616   case Type::ObjCObject:
  620   case Type::ObjCInterface: {
  631   case Type::ObjCObjectPointer: {
  641   case Type::Enum: {
  652   case Type::BlockPointer: {
  662   case Type::MemberPointer: {
  673   case Type::Atomic: {
  691   case Type::Pipe: {
  715   const Type *Key = Context.getTagDeclType(RD).getTypePtr();
  777   const Type *Key = Context.getTagDeclType(RD).getTypePtr();
tools/clang/lib/CodeGen/CodeGenTypes.h
   47 typedef CanQual<Type> CanQualType;
   78   llvm::DenseMap<const Type*, CGRecordLayout *> CGRecordLayouts;
   81   llvm::DenseMap<const Type*, llvm::StructType *> RecordDeclTypes;
   90   llvm::SmallPtrSet<const Type*, 4> RecordsBeingLaidOut;
  102   llvm::DenseMap<const Type *, llvm::Type *> TypeCache;
  104   llvm::SmallSet<const Type *, 8> RecordsWithOpaqueMemberPointers;
  305   bool isRecordLayoutComplete(const Type *Ty) const;
  309   bool isRecordBeingLaidOut(const Type *Ty) const {
tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
 2773   void BuildVTablePointer(const Type *Ty);
 3147 void ItaniumRTTIBuilder::BuildVTablePointer(const Type *Ty) {
 3169   case Type::LValueReference:
 3170   case Type::RValueReference:
 3173   case Type::Auto:
 3174   case Type::DeducedTemplateSpecialization:
 3177   case Type::Pipe:
 3180   case Type::Builtin:
 3182   case Type::Vector:
 3183   case Type::ExtVector:
 3184   case Type::Complex:
 3185   case Type::Atomic:
 3187   case Type::BlockPointer:
 3192   case Type::ConstantArray:
 3193   case Type::IncompleteArray:
 3194   case Type::VariableArray:
 3199   case Type::FunctionNoProto:
 3200   case Type::FunctionProto:
 3205   case Type::Enum:
 3210   case Type::Record: {
 3225   case Type::ObjCObject:
 3238   case Type::ObjCInterface:
 3246   case Type::ObjCObjectPointer:
 3247   case Type::Pointer:
 3252   case Type::MemberPointer:
 3382   BuildVTablePointer(cast<Type>(Ty));
 3416   case Type::Builtin:
 3417   case Type::Vector:
 3418   case Type::ExtVector:
 3419   case Type::Complex:
 3420   case Type::BlockPointer:
 3425   case Type::LValueReference:
 3426   case Type::RValueReference:
 3429   case Type::Auto:
 3430   case Type::DeducedTemplateSpecialization:
 3433   case Type::Pipe:
 3436   case Type::ConstantArray:
 3437   case Type::IncompleteArray:
 3438   case Type::VariableArray:
 3443   case Type::FunctionNoProto:
 3444   case Type::FunctionProto:
 3449   case Type::Enum:
 3454   case Type::Record: {
 3470   case Type::ObjCObject:
 3471   case Type::ObjCInterface:
 3475   case Type::ObjCObjectPointer:
 3479   case Type::Pointer:
 3483   case Type::MemberPointer:
 3487   case Type::Atomic:
 3553   const Type *T = OT->getBaseType().getTypePtr();
tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp
 2735     const Type *SrcRecTy = Ctx.getTypeDeclType(SrcRD).getTypePtr();
tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
   67     static bool CanRepresent(const Type *Ty) {
tools/clang/lib/CodeGen/TargetInfo.cpp
  215 bool ABIInfo::isHomogeneousAggregateSmallEnough(const Type *Base,
  539 static const Type *isSingleElementStruct(QualType T, ASTContext &Context) {
  548   const Type *Found = nullptr;
  806     if (const Type *SeltTy = isSingleElementStruct(Ty, getContext()))
  825       if (const Type *SeltTy = isSingleElementStruct(RetTy, getContext()))
 1029   bool isHomogeneousAggregateSmallEnough(const Type *Ty,
 1384   const Type *Base = nullptr;
 1443       if (const Type *SeltTy = isSingleElementStruct(RetTy, getContext()))
 1539   const Type *T = isSingleElementStruct(Ty, getContext());
 1652   const Type *Base = nullptr;
 1756     const Type *Base = nullptr;
 1773     const Type *Base = nullptr;
 2255   bool isHomogeneousAggregateSmallEnough(const Type *Ty,
 2999   if (const Type *InnerTy = isSingleElementStruct(Ty, getContext()))
 3917   const Type *Base = nullptr;
 3954   const Type *Base = nullptr;
 4166   const Type *AlignTy = nullptr;
 4167   if (const Type *EltType = isSingleElementStruct(Ty, getContext())) {
 4394   bool IsQPXVectorTy(const Type *Ty) const {
 4433   bool isHomogeneousAggregateSmallEnough(const Type *Ty,
 4449       const Type *T = isSingleElementStruct(I.type, getContext());
 4556   const Type *AlignAsType = nullptr;
 4557   const Type *EltType = isSingleElementStruct(Ty, getContext());
 4567   const Type *Base = nullptr;
 4597 bool ABIInfo::isHomogeneousAggregate(QualType Ty, const Type *&Base,
 4674     const Type *TyPtr = Ty.getTypePtr();
 4718     const Type *Base, uint64_t Members) const {
 4758     const Type *Base = nullptr;
 4824     const Type *Base = nullptr;
 4997   bool isHomogeneousAggregateSmallEnough(const Type *Ty,
 5168   const Type *Base = nullptr;
 5225   const Type *Base = nullptr;
 5294 bool AArch64ABIInfo::isHomogeneousAggregateSmallEnough(const Type *Base,
 5427   const Type *Base = nullptr;
 5570     const Type *Base = nullptr;
 5644   ABIArgInfo classifyHomogeneousAggregate(QualType Ty, const Type *Base,
 5651   bool isHomogeneousAggregateSmallEnough(const Type *Ty,
 5842                                                     const Type *Base,
 5910     const Type *Base = nullptr;
 5918     const Type *Base = nullptr;
 6140     const Type *Base = nullptr;
 6270 bool ARMABIInfo::isHomogeneousAggregateSmallEnough(const Type *Base,
 6301   const Type *Base = nullptr;
 7685   bool isHomogeneousAggregateSmallEnough(const Type *Base,
 7706   const Type *Base, uint64_t Members) const {
 7777       if (const Type *SeltTy = isSingleElementStruct(RetTy, getContext()))
 7816   if (const Type *SeltTy = isSingleElementStruct(Ty, getContext()))
 7844     if (const Type *SeltTy = isSingleElementStruct(Ty, getContext()))
tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
 2273   const Type* TypePtr = QT->getAs<Type>();
 2273   const Type* TypePtr = QT->getAs<Type>();
 2279     TypePtr = QT->getAs<Type>();
 4727   const Type* TypePtr = QT->getAs<Type>();
 4727   const Type* TypePtr = QT->getAs<Type>();
tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
 2185   const Type* TypePtr = QT->getAs<Type>();
 2185   const Type* TypePtr = QT->getAs<Type>();
 2191     TypePtr = QT->getAs<Type>();
 3896   const Type* TypePtr = QT->getAs<Type>();
 3896   const Type* TypePtr = QT->getAs<Type>();
tools/clang/lib/Index/IndexBody.cpp
  154       const Expr *E, const Type *T, const DeclarationNameInfo &NameInfo,
tools/clang/lib/Index/IndexTypeSourceInfo.cpp
  176     const Type *T = NNS->getAsType();
tools/clang/lib/Index/USRGeneration.cpp
   65   llvm::DenseMap<const Type *, unsigned> TypeSubstitutions;
  769     llvm::DenseMap<const Type *, unsigned>::iterator Substitution
tools/clang/lib/Parse/ParseExpr.cpp
 1755         const Type* BaseType = Base->getType().getTypePtrOrNull();
tools/clang/lib/Sema/Sema.cpp
  562   case Type::STK_Bool: return CK_NoOp;
  563   case Type::STK_CPointer: return CK_PointerToBoolean;
  564   case Type::STK_BlockPointer: return CK_PointerToBoolean;
  565   case Type::STK_ObjCObjectPointer: return CK_PointerToBoolean;
  566   case Type::STK_MemberPointer: return CK_MemberPointerToBoolean;
  567   case Type::STK_Integral: return CK_IntegralToBoolean;
  568   case Type::STK_Floating: return CK_FloatingToBoolean;
  569   case Type::STK_IntegralComplex: return CK_IntegralComplexToBoolean;
  570   case Type::STK_FloatingComplex: return CK_FloatingComplexToBoolean;
  571   case Type::STK_FixedPoint: return CK_FixedPointToBoolean;
tools/clang/lib/Sema/SemaCXXScopeSpec.cpp
   32   const Type *Ty = T->getCanonicalTypeInternal().getTypePtr();
   87       const Type *NNSType = NNS->getAsType();
tools/clang/lib/Sema/SemaCast.cpp
 2369     const Type *DestPtr, *SrcPtr;
tools/clang/lib/Sema/SemaChecking.cpp
 5692   const Type *Arg1Ty = Arg1->getType().getCanonicalType().getTypePtr();
 5695   const Type *Arg2Ty = Arg2->getType().getCanonicalType().getTypePtr();
 9346   const Type *Ty = T->getBaseElementTypeUnsafe();
10078   static IntRange forValueOfCanonicalType(ASTContext &C, const Type *T) {
10123   static IntRange forTargetOfCanonicalType(ASTContext &C, const Type *T) {
11263   const Type *Target = S.Context.getCanonicalType(Ex->getType()).getTypePtr();
11264   const Type *Source =
11271   const Type *BoolCandidateType = ToBool ? Target : Source;
11548   const Type *Source = S.Context.getCanonicalType(E->getType()).getTypePtr();
11549   const Type *Target = S.Context.getCanonicalType(T).getTypePtr();
13242   const Type *EffectiveType =
13251   const Type *BaseType = ArrayTy->getElementType().getTypePtr();
14344   const Type::TypeClass TC1 = T1->getTypeClass();
14345   const Type::TypeClass TC2 = T2->getTypeClass();
14350   if (TC1 == Type::Enum) {
14354   } else if (TC1 == Type::Record) {
14647 void Sema::DiscardMisalignedMemberAddress(const Type *T, Expr *E) {
tools/clang/lib/Sema/SemaCodeComplete.cpp
  813   case Type::Builtin:
  834   case Type::Complex:
  837   case Type::Pointer:
  840   case Type::BlockPointer:
  843   case Type::LValueReference:
  844   case Type::RValueReference:
  847   case Type::ConstantArray:
  848   case Type::IncompleteArray:
  849   case Type::VariableArray:
  850   case Type::DependentSizedArray:
  853   case Type::DependentSizedExtVector:
  854   case Type::Vector:
  855   case Type::ExtVector:
  858   case Type::FunctionProto:
  859   case Type::FunctionNoProto:
  862   case Type::Record:
  865   case Type::Enum:
  868   case Type::ObjCObject:
  869   case Type::ObjCInterface:
  870   case Type::ObjCObjectPointer:
 1503   case Type::ObjCObject:
 1504   case Type::ObjCInterface:
 1505   case Type::ObjCObjectPointer:
 1508   case Type::Builtin:
tools/clang/lib/Sema/SemaCoroutine.cpp
  379   Type const *T = RetType.getTypePtr();
tools/clang/lib/Sema/SemaDecl.cpp
  259                                           cast<Type>(Context.getRecordType(RD)));
  646     const Type *Ty = SS->getScopeRep()->getAsType();
 1767     const auto *Ty = VD->getType().getTypePtr();
 5745   const Type *Ty = Qs.strip(T);
 8361     const Type *UnderlyingTy = PT->getPointeeOrArrayElementType();
 8375   llvm::SmallPtrSetImpl<const Type *> &ValidTypes) {
 8479       const Type *FieldRecTy = FieldTy->getPointeeOrArrayElementType();
 9461     llvm::SmallPtrSet<const Type *, 16> ValidTypes;
14762   llvm::PointerUnion<const Type*, TypeSourceInfo*> EnumUnderlying;
14826           ED->setIntegerType(QualType(EnumUnderlying.get<const Type *>(), 0));
15188           else if (const Type *T = EnumUnderlying.dyn_cast<const Type*>())
15188           else if (const Type *T = EnumUnderlying.dyn_cast<const Type*>())
15445         ED->setIntegerType(QualType(EnumUnderlying.get<const Type*>(), 0));
16445     const Type *FDTy = FD->getType().getTypePtr();
tools/clang/lib/Sema/SemaDeclAttr.cpp
  547               const auto &Ty = *BS->getType();
 3435   const Type *CalleeType =
 3444   const Type *CalleeFnType =
 4392       const Type *ExistingDerefType = OAttr->getDerefTypeLoc()
 4409       const Type *ExistingDerefType = PAttr->getDerefTypeLoc()
 6295     const Type *DeclTy = PDecl->getType().getCanonicalType().getTypePtr();
 8407   const Type *TyPtr = Ty.getTypePtr();
tools/clang/lib/Sema/SemaDeclCXX.cpp
 3071   const Type *T = FD.getType()->getBaseElementTypeUnsafe();
 3662                           FieldDecl *Field, const Type *BaseClass) {
 5249     const Type *BaseClass = Init->getBaseClass();
10667   const Type *SourceType = UD->getQualifier()->getAsType();
12048   const Type *E = T->getBaseElementTypeUnsafe();
12175     const Type *CanonicalT = S.Context.getCanonicalType(T.getTypePtr());
tools/clang/lib/Sema/SemaDeclObjC.cpp
 3127                                 const Type *left, const Type *right);
 3127                                 const Type *left, const Type *right);
 3131   const Type *left =
 3133   const Type *right =
 3171   Type::ScalarTypeKind leftSK = left->getScalarTypeKind();
 3172   Type::ScalarTypeKind rightSK = right->getScalarTypeKind();
 3173   if (leftSK == Type::STK_Bool) leftSK = Type::STK_Integral;
 3173   if (leftSK == Type::STK_Bool) leftSK = Type::STK_Integral;
 3174   if (rightSK == Type::STK_Bool) rightSK = Type::STK_Integral;
 3174   if (rightSK == Type::STK_Bool) rightSK = Type::STK_Integral;
 3175   if (leftSK == Type::STK_CPointer || leftSK == Type::STK_BlockPointer)
 3175   if (leftSK == Type::STK_CPointer || leftSK == Type::STK_BlockPointer)
 3176     leftSK = Type::STK_ObjCObjectPointer;
 3177   if (rightSK == Type::STK_CPointer || rightSK == Type::STK_BlockPointer)
 3177   if (rightSK == Type::STK_CPointer || rightSK == Type::STK_BlockPointer)
 3178     rightSK = Type::STK_ObjCObjectPointer;
 3188                                 const Type *lt, const Type *rt) {
 3188                                 const Type *lt, const Type *rt) {
tools/clang/lib/Sema/SemaExpr.cpp
 2053           const Type *Ty = Corrected.getCorrectionSpecifier()->getAsType();
 4046     const Type *Ty = T.getTypePtr();
 4057     case Type::Builtin:
 4058     case Type::Complex:
 4059     case Type::Vector:
 4060     case Type::ExtVector:
 4061     case Type::Record:
 4062     case Type::Enum:
 4063     case Type::Elaborated:
 4064     case Type::TemplateSpecialization:
 4065     case Type::ObjCObject:
 4066     case Type::ObjCInterface:
 4067     case Type::ObjCObjectPointer:
 4068     case Type::ObjCTypeParam:
 4069     case Type::Pipe:
 4071     case Type::Adjusted:
 4074     case Type::Decayed:
 4077     case Type::Pointer:
 4080     case Type::BlockPointer:
 4083     case Type::LValueReference:
 4084     case Type::RValueReference:
 4087     case Type::MemberPointer:
 4090     case Type::ConstantArray:
 4091     case Type::IncompleteArray:
 4095     case Type::VariableArray: {
 4109     case Type::FunctionProto:
 4110     case Type::FunctionNoProto:
 4113     case Type::Paren:
 4114     case Type::TypeOf:
 4115     case Type::UnaryTransform:
 4116     case Type::Attributed:
 4117     case Type::SubstTemplateTypeParm:
 4118     case Type::PackExpansion:
 4119     case Type::MacroQualified:
 4123     case Type::Typedef:
 4126     case Type::Decltype:
 4129     case Type::Auto:
 4130     case Type::DeducedTemplateSpecialization:
 4133     case Type::TypeOfExpr:
 4136     case Type::Atomic:
 6280   switch (Type::ScalarTypeKind SrcKind = SrcTy->getScalarTypeKind()) {
 6281   case Type::STK_MemberPointer:
 6284   case Type::STK_CPointer:
 6285   case Type::STK_BlockPointer:
 6286   case Type::STK_ObjCObjectPointer:
 6288     case Type::STK_CPointer: {
 6297     case Type::STK_BlockPointer:
 6298       return (SrcKind == Type::STK_BlockPointer
 6300     case Type::STK_ObjCObjectPointer:
 6301       if (SrcKind == Type::STK_ObjCObjectPointer)
 6303       if (SrcKind == Type::STK_CPointer)
 6307     case Type::STK_Bool:
 6309     case Type::STK_Integral:
 6311     case Type::STK_Floating:
 6312     case Type::STK_FloatingComplex:
 6313     case Type::STK_IntegralComplex:
 6314     case Type::STK_MemberPointer:
 6315     case Type::STK_FixedPoint:
 6320   case Type::STK_FixedPoint:
 6322     case Type::STK_FixedPoint:
 6324     case Type::STK_Bool:
 6326     case Type::STK_Integral:
 6328     case Type::STK_Floating:
 6329     case Type::STK_IntegralComplex:
 6330     case Type::STK_FloatingComplex:
 6335     case Type::STK_CPointer:
 6336     case Type::STK_ObjCObjectPointer:
 6337     case Type::STK_BlockPointer:
 6338     case Type::STK_MemberPointer:
 6343   case Type::STK_Bool: // casting from bool is like casting from an integer
 6344   case Type::STK_Integral:
 6346     case Type::STK_CPointer:
 6347     case Type::STK_ObjCObjectPointer:
 6348     case Type::STK_BlockPointer:
 6353     case Type::STK_Bool:
 6355     case Type::STK_Integral:
 6357     case Type::STK_Floating:
 6359     case Type::STK_IntegralComplex:
 6364     case Type::STK_FloatingComplex:
 6369     case Type::STK_MemberPointer:
 6371     case Type::STK_FixedPoint:
 6376   case Type::STK_Floating:
 6378     case Type::STK_Floating:
 6380     case Type::STK_Bool:
 6382     case Type::STK_Integral:
 6384     case Type::STK_FloatingComplex:
 6389     case Type::STK_IntegralComplex:
 6394     case Type::STK_CPointer:
 6395     case Type::STK_ObjCObjectPointer:
 6396     case Type::STK_BlockPointer:
 6398     case Type::STK_MemberPointer:
 6400     case Type::STK_FixedPoint:
 6408   case Type::STK_FloatingComplex:
 6410     case Type::STK_FloatingComplex:
 6412     case Type::STK_IntegralComplex:
 6414     case Type::STK_Floating: {
 6421     case Type::STK_Bool:
 6423     case Type::STK_Integral:
 6428     case Type::STK_CPointer:
 6429     case Type::STK_ObjCObjectPointer:
 6430     case Type::STK_BlockPointer:
 6432     case Type::STK_MemberPointer:
 6434     case Type::STK_FixedPoint:
 6442   case Type::STK_IntegralComplex:
 6444     case Type::STK_FloatingComplex:
 6446     case Type::STK_IntegralComplex:
 6448     case Type::STK_Integral: {
 6455     case Type::STK_Bool:
 6457     case Type::STK_Floating:
 6462     case Type::STK_CPointer:
 6463     case Type::STK_ObjCObjectPointer:
 6464     case Type::STK_BlockPointer:
 6466     case Type::STK_MemberPointer:
 6468     case Type::STK_FixedPoint:
 7902   const Type *lhptee, *rhptee;
tools/clang/lib/Sema/SemaExprCXX.cpp
  595   const Type *Ty = QT.getTypePtr();
 6192   SmallVector<std::pair<const Type *, const Type *>, 4> MemberOfClass;
 6192   SmallVector<std::pair<const Type *, const Type *>, 4> MemberOfClass;
 6465   const Type *T = Context.getCanonicalType(E->getType().getTypePtr());
 6469     case Type::Record:
 6472     case Type::ConstantArray:
 6473     case Type::IncompleteArray:
 6474     case Type::VariableArray:
 6475     case Type::DependentSizedArray:
tools/clang/lib/Sema/SemaExprObjC.cpp
 4213       const Type *DT = castType.getTypePtr();
tools/clang/lib/Sema/SemaFixItUtils.cpp
  168     const Type &T, SourceLocation Loc, const Sema &S) {
tools/clang/lib/Sema/SemaLambda.cpp
 1571   const Type *BaseT = T->getBaseElementTypeUnsafe();
tools/clang/lib/Sema/SemaLookup.cpp
 2821   SmallVector<const Type *, 16> Queue;
 2822   const Type *T = Ty->getCanonicalTypeInternal().getTypePtr();
 2842     case Type::Pointer:
 2845     case Type::ConstantArray:
 2846     case Type::IncompleteArray:
 2847     case Type::VariableArray:
 2853     case Type::Builtin:
 2861     case Type::Record: {
 2872     case Type::Enum: {
 2888     case Type::FunctionProto: {
 2895     case Type::FunctionNoProto: {
 2910     case Type::MemberPointer: {
 2922     case Type::BlockPointer:
 2928     case Type::LValueReference:
 2929     case Type::RValueReference:
 2934     case Type::Vector:
 2935     case Type::ExtVector:
 2936     case Type::Complex:
 2940     case Type::Auto:
 2941     case Type::DeducedTemplateSpecialization:
 2947     case Type::ObjCObject:
 2948     case Type::ObjCInterface:
 2949     case Type::ObjCObjectPointer:
 2955     case Type::Atomic:
 2958     case Type::Pipe:
 4297     if (const Type *T = NNS->getAsType())
 4298       SSIsTemplate = T->getTypeClass() == Type::TemplateSpecialization;
 4305     const auto *TI = Types[I];
 4400       const Type *NSType = NSI.NameSpecifier->getAsType();
tools/clang/lib/Sema/SemaOpenMP.cpp
 4800           const Type *Ty = QTy.getTypePtrOrNull();
 5025       const Type *ClassType =
13777   const auto *Ty = Type.getTypePtrOrNull();
14057     const Type *Ty = QType.getTypePtrOrNull();
tools/clang/lib/Sema/SemaOverload.cpp
 1491   Type::TypeClass TyClass = CanTo->getTypeClass();
 1493   if (TyClass != Type::FunctionProto && TyClass != Type::FunctionNoProto) {
 1493   if (TyClass != Type::FunctionProto && TyClass != Type::FunctionNoProto) {
 1494     if (TyClass == Type::Pointer) {
 1497     } else if (TyClass == Type::BlockPointer) {
 1500     } else if (TyClass == Type::MemberPointer) {
 1514     if (TyClass != Type::FunctionProto && TyClass != Type::FunctionNoProto)
 1514     if (TyClass != Type::FunctionProto && TyClass != Type::FunctionNoProto)
 1686         const Type *ClassType
 2215 BuildSimilarlyQualifiedPointerType(const Type *FromPtr,
 4304     const Type *FromPointeeType1 = FromMemPointer1->getClass();
 4305     const Type *ToPointeeType1 = ToMemPointer1->getClass();
 4306     const Type *FromPointeeType2 = FromMemPointer2->getClass();
 4307     const Type *ToPointeeType2 = ToMemPointer2->getClass();
 7722   const Type *ClassTy = PointerTy->getClass();
tools/clang/lib/Sema/SemaStmtAsm.cpp
  420     const Type *Ty = Exprs[i]->getType().getTypePtr();
  497     const Type *Ty = Exprs[ConstraintIdx]->getType().getTypePtr();
  776     if (const Type *PT = getCurrentThisType().getTypePtrOrNull())
tools/clang/lib/Sema/SemaTemplate.cpp
 2564     if (const Type *CurType = NNS->getAsType()) {
 8916     if (const Type *T = NNS->getAsType())
tools/clang/lib/Sema/SemaTemplateDeduction.cpp
  612   case Type::TypeOfExpr:
  613   case Type::TypeOf:
  614   case Type::DependentName:
  615   case Type::Decltype:
  616   case Type::UnresolvedUsing:
  617   case Type::TemplateTypeParm:
  620   case Type::ConstantArray:
  621   case Type::IncompleteArray:
  622   case Type::VariableArray:
  623   case Type::DependentSizedArray:
 1491     case Type::TemplateTypeParm:
 1492     case Type::SubstTemplateTypeParmPack:
 1497     case Type::Builtin:
 1498     case Type::VariableArray:
 1499     case Type::Vector:
 1500     case Type::FunctionNoProto:
 1501     case Type::Record:
 1502     case Type::Enum:
 1503     case Type::ObjCObject:
 1504     case Type::ObjCInterface:
 1505     case Type::ObjCObjectPointer:
 1517     case Type::Complex:
 1527     case Type::Atomic:
 1537     case Type::Pointer: {
 1556     case Type::LValueReference: {
 1568     case Type::RValueReference: {
 1581     case Type::IncompleteArray: {
 1595     case Type::ConstantArray: {
 1614     case Type::DependentSizedArray: {
 1663     case Type::FunctionProto: {
 1736     case Type::InjectedClassName:
 1750     case Type::TemplateSpecialization: {
 1860     case Type::MemberPointer: {
 1895     case Type::BlockPointer: {
 1911     case Type::ExtVector: {
 1941     case Type::DependentVector: {
 1992     case Type::DependentSizedExtVector: {
 2048     case Type::DependentAddressSpace: {
 2098     case Type::TypeOfExpr:
 2099     case Type::TypeOf:
 2100     case Type::DependentName:
 2101     case Type::UnresolvedUsing:
 2102     case Type::Decltype:
 2103     case Type::UnaryTransform:
 2104     case Type::Auto:
 2105     case Type::DeducedTemplateSpecialization:
 2106     case Type::DependentTemplateSpecialization:
 2107     case Type::PackExpansion:
 2108     case Type::Pipe:
 5359   case Type::Pointer:
 5367   case Type::BlockPointer:
 5375   case Type::LValueReference:
 5376   case Type::RValueReference:
 5384   case Type::MemberPointer: {
 5393   case Type::DependentSizedArray:
 5400   case Type::ConstantArray:
 5401   case Type::IncompleteArray:
 5407   case Type::Vector:
 5408   case Type::ExtVector:
 5414   case Type::DependentVector: {
 5422   case Type::DependentSizedExtVector: {
 5432   case Type::DependentAddressSpace: {
 5443   case Type::FunctionProto: {
 5470   case Type::TemplateTypeParm: {
 5477   case Type::SubstTemplateTypeParmPack: {
 5488   case Type::InjectedClassName:
 5492   case Type::TemplateSpecialization: {
 5512   case Type::Complex:
 5519   case Type::Atomic:
 5526   case Type::DependentName:
 5533   case Type::DependentTemplateSpecialization: {
 5558   case Type::TypeOf:
 5565   case Type::TypeOfExpr:
 5572   case Type::Decltype:
 5579   case Type::UnaryTransform:
 5586   case Type::PackExpansion:
 5592   case Type::Auto:
 5593   case Type::DeducedTemplateSpecialization:
 5600   case Type::Builtin:
 5601   case Type::VariableArray:
 5602   case Type::FunctionNoProto:
 5603   case Type::Record:
 5604   case Type::Enum:
 5605   case Type::ObjCInterface:
 5606   case Type::ObjCObject:
 5607   case Type::ObjCObjectPointer:
 5608   case Type::UnresolvedUsing:
 5609   case Type::Pipe:
tools/clang/lib/Sema/SemaType.cpp
 5631       const Type* ClsTy = TL.getClass();
 6149       const Type *prevTy = nullptr;
 6337         const Type *Ty = T.getTypePtr();
 6360           const Type *DTy = Ty->getUnqualifiedDesugaredType();
 6398     QualType wrap(ASTContext &C, const Type *Old, unsigned I) {
 6622     const Type *pointeeType;
tools/clang/lib/Serialization/ASTReader.cpp
 6749     const Type *T = nullptr;
 6751       if (const Type *Existing = DI->getTypeForDecl()) {
 9491       const Type *T = readType(F, Record, Idx).getTypePtrOrNull();
tools/clang/lib/Serialization/ASTWriter.cpp
 4337   const llvm::DenseMap<const Type *, std::set<std::string>> &OpenCLTypeExtMap =
tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp
   62   const Type *ElemType = Last->getType()->getArrayElementTypeNoTypeQual();
tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
  285   if (const Type *NewTy = getBetterObjCType(CE, C)) {
tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
  637       const Type *ArgTy = Arg->getType().getTypePtr();
tools/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp
  501     const Type *Tp = ConversionDec->getConversionType().getTypePtrOrNull();
tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp
  109   while (const Type *T = Ty.getTypePtr()) {
tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp
   35   inline bool isPointerSize(const Type *T) {
   48     const Type *TP = T.getTypePtr();
   54       if (const Type *TElem = PointeeT->getArrayElementTypeNoTypeQual())
   62     if (const Type *TElem = TP->getArrayElementTypeNoTypeQual())
tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp
  864       const Type *GT = GQT.getTypePtrOrNull();
tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
  280   const Type *T = D->getTypeForDecl();
tools/clang/tools/extra/clang-change-namespace/ChangeNamespace.cpp
  584       const Type *SpecifierType =
tools/clang/tools/extra/clang-tidy/bugprone/CopyConstructorInitCheck.cpp
   52     const Type *BaseType = Init->getBaseClass();
tools/clang/tools/extra/clang-tidy/bugprone/ForwardDeclarationNamespaceCheck.h
   51   llvm::SmallPtrSet<const Type *, 16> FriendTypes;
tools/clang/tools/extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp
   33   const Type *BaseType = Node.getTypePtr();
   47     if (const auto *Qualifier = Elaborated->getQualifier()->getAsType()) {
tools/clang/tools/extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp
   52     const Type *TypePtr = ActualMemberDecl->getThisType().getTypePtr();
  112   const auto *CastToTypePtr = Result.Nodes.getNodeAs<Type>("castToType");
  112   const auto *CastToTypePtr = Result.Nodes.getNodeAs<Type>("castToType");
tools/clang/tools/extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp
   51 CharUnits getSizeOfType(const ASTContext &Ctx, const Type *Ty) {
  283     const auto *NumTy = Result.Nodes.getNodeAs<Type>("num-type");
  283     const auto *NumTy = Result.Nodes.getNodeAs<Type>("num-type");
  284     const auto *DenomTy = Result.Nodes.getNodeAs<Type>("denom-type");
  284     const auto *DenomTy = Result.Nodes.getNodeAs<Type>("denom-type");
  285     const auto *ElementTy = Result.Nodes.getNodeAs<Type>("elem-type");
  285     const auto *ElementTy = Result.Nodes.getNodeAs<Type>("elem-type");
  286     const auto *PointedTy = Result.Nodes.getNodeAs<Type>("elem-ptr-type");
  286     const auto *PointedTy = Result.Nodes.getNodeAs<Type>("elem-ptr-type");
  320     const auto *LPtrTy = Result.Nodes.getNodeAs<Type>("left-ptr-type");
  320     const auto *LPtrTy = Result.Nodes.getNodeAs<Type>("left-ptr-type");
  321     const auto *RPtrTy = Result.Nodes.getNodeAs<Type>("right-ptr-type");
  321     const auto *RPtrTy = Result.Nodes.getNodeAs<Type>("right-ptr-type");
  322     const auto *SizeofArgTy = Result.Nodes.getNodeAs<Type>("sizeof-arg-type");
  322     const auto *SizeofArgTy = Result.Nodes.getNodeAs<Type>("sizeof-arg-type");
  330     const auto *LPtrTy = Result.Nodes.getNodeAs<Type>("left-ptr-type");
  330     const auto *LPtrTy = Result.Nodes.getNodeAs<Type>("left-ptr-type");
  331     const auto *RPtrTy = Result.Nodes.getNodeAs<Type>("right-ptr-type");
  331     const auto *RPtrTy = Result.Nodes.getNodeAs<Type>("right-ptr-type");
  332     const auto *SizeofArgTy = Result.Nodes.getNodeAs<Type>("sizeof-arg-type");
  332     const auto *SizeofArgTy = Result.Nodes.getNodeAs<Type>("sizeof-arg-type");
tools/clang/tools/extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
  209   const Type *TheType = VD->getType().getNonReferenceType().getTypePtrOrNull();
tools/clang/tools/extra/clang-tidy/misc/UniqueptrResetReleaseCheck.cpp
   44 const Type *getDeleterForUniquePtr(const MatchFinder::MatchResult &Result,
   57   const Type *LeftDeleterType = getDeleterForUniquePtr(Result, "left_class");
   58   const Type *RightDeleterType = getDeleterForUniquePtr(Result, "right_class");
tools/clang/tools/extra/clang-tidy/modernize/AvoidCArraysCheck.cpp
   24   const clang::Type *TypeNode = Node.getTypePtr();
tools/clang/tools/extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
   22   case Type::STK_CPointer:
   23   case Type::STK_BlockPointer:
   24   case Type::STK_ObjCObjectPointer:
   25   case Type::STK_MemberPointer:
   28   case Type::STK_Bool:
   31   case Type::STK_Integral:
   49   case Type::STK_Floating:
   58   case Type::STK_FloatingComplex:
   59   case Type::STK_IntegralComplex:
   63   case Type::STK_FixedPoint:
tools/clang/tools/extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp
   37 static std::set<const Type *> getAllDirectBases(const CXXRecordDecl *Record) {
   38   std::set<const Type *> Result;
   41     const auto *BaseType = Base.getTypeSourceInfo()->getType().getTypePtr();
   73   for (const auto *Base : BasesToInit) {
  139   for (const auto *Base : BasesToInit) {
tools/clang/tools/extra/clang-tidy/modernize/UseNoexceptCheck.cpp
   75                ->getAs<Type>()
tools/clang/tools/extra/clang-tidy/modernize/UseNullptrCheck.cpp
   27   const Type *DesugaredType = Node.getUnqualifiedDesugaredType();
tools/clang/tools/extra/clang-tidy/mpi/BufferDerefCheck.cpp
   36   SmallVector<const Type *, 1> BufferTypes;
   53     const Type *ArgType = ArgExpr->IgnoreImpCasts()->getType().getTypePtr();
   82 void BufferDerefCheck::checkBuffers(ArrayRef<const Type *> BufferTypes,
   86     const Type *BufferType = BufferTypes[i];
tools/clang/tools/extra/clang-tidy/mpi/BufferDerefCheck.h
   40   void checkBuffers(ArrayRef<const Type *> BufferTypes,
tools/clang/tools/extra/clang-tidy/mpi/TypeMismatchCheck.cpp
  234 static const Type *argumentType(const CallExpr *const CE, const size_t idx) {
  254   SmallVector<const Type *, 1> BufferTypes;
  272     const Type *ArgType = argumentType(CE, BufferIdx);
  301 void TypeMismatchCheck::checkArguments(ArrayRef<const Type *> BufferTypes,
  308     const Type *const BT = BufferTypes[i];
tools/clang/tools/extra/clang-tidy/mpi/TypeMismatchCheck.h
   41   void checkArguments(ArrayRef<const Type *> BufferTypes,
tools/clang/tools/extra/clang-tidy/readability/IdentifierNamingCheck.cpp
  815       if (const auto *TypePtr = Value->getType().getTypePtrOrNull()) {
tools/clang/tools/extra/clang-tidy/readability/IsolateDeclarationCheck.cpp
   60 static int countIndirections(const Type *T, int Indirections = 0) {
   81 static bool typeIsMemberPointer(const Type *T) {
tools/clang/tools/extra/clang-tidy/readability/NonConstParameterCheck.cpp
   77           const Type *ParType = Par->getType().getTypePtr();
tools/clang/tools/extra/clang-tidy/readability/RedundantSmartptrGetCheck.cpp
  119   const Type *OpArrowType =
  120       Result.Nodes.getNodeAs<Type>("op->Type")->getUnqualifiedDesugaredType();
  121   const Type *OpStarType =
  122       Result.Nodes.getNodeAs<Type>("op*Type")->getUnqualifiedDesugaredType();
  123   const Type *GetType =
  124       Result.Nodes.getNodeAs<Type>("getType")->getUnqualifiedDesugaredType();
tools/clang/tools/extra/clang-tidy/utils/ExceptionAnalyzer.cpp
   16     const Type *ExceptionType) {
   49 static bool isBaseOf(const Type *DerivedType, const Type *BaseType) {
   49 static bool isBaseOf(const Type *DerivedType, const Type *BaseType) {
   59 bool ExceptionAnalyzer::ExceptionInfo::filterByCatch(const Type *BaseClass) {
   60   llvm::SmallVector<const Type *, 8> TypesToDelete;
   61   for (const Type *T : ThrownExceptions) {
   66   for (const Type *T : TypesToDelete)
   76   llvm::SmallVector<const Type *, 8> TypesToDelete;
   79   for (const Type *T : ThrownExceptions) {
   89   for (const Type *T : TypesToDelete)
  145       const auto *ThrownType =
  171         const auto *CaughtType =
tools/clang/tools/extra/clang-tidy/utils/ExceptionAnalyzer.h
   42     using Throwables = llvm::SmallSet<const Type *, 2>;
   65     void registerException(const Type *ExceptionType);
   83     bool filterByCatch(const Type *BaseClass);
tools/clang/tools/extra/clangd/ExpectedTypes.cpp
   22 static const Type *toEquivClass(ASTContext &Ctx, QualType T) {
   72   const Type *C = toEquivClass(Ctx, T);
tools/clang/tools/extra/clangd/IncludeFixer.cpp
   80         if (const Type *T = QT.getTypePtrOrNull())
  117 std::vector<Fix> IncludeFixer::fixIncompleteType(const Type &T) const {
tools/clang/tools/extra/clangd/IncludeFixer.h
   53   std::vector<Fix> fixIncompleteType(const Type &T) const;
tools/clang/tools/extra/clangd/SemanticHighlighting.cpp
   38 llvm::Optional<HighlightingKind> kindForType(const Type *TP);
   91 llvm::Optional<HighlightingKind> kindForType(const Type *TP) {
tools/clang/tools/extra/clangd/XRefs.cpp
 1190     const Type *Type = Base.getType().getTypePtr();
tools/clang/tools/extra/clangd/refactor/tweaks/DumpAST.cpp
   53     return N.get<Decl>() || N.get<Stmt>() || N.get<Type>();
tools/clang/tools/extra/clangd/refactor/tweaks/ExtractVariable.cpp
  370   if (const Type *ExprType = E->getType().getTypePtrOrNull())
tools/clang/tools/libclang/CIndex.cpp
 1343     const Type *T = NNS->getAsType();
tools/clang/tools/libclang/CIndexCodeCompletion.cpp
  641         const Type *type = baseType.getTypePtrOrNull();
tools/clang/tools/libclang/CXType.cpp
   85   const Type *TP = T.getTypePtrOrNull();
   91     case Type::Builtin:
  444   const Type *TP = T.getTypePtrOrNull();
  451     case Type::Pointer:
  454     case Type::BlockPointer:
  457     case Type::LValueReference:
  458     case Type::RValueReference:
  461     case Type::ObjCObjectPointer:
  464     case Type::MemberPointer:
  467     case Type::Auto:
  468     case Type::DeducedTemplateSpecialization:
  485   const Type *TP = T.getTypePtrOrNull();
  494   case Type::Typedef:
  497   case Type::ObjCObject:
  500   case Type::ObjCInterface:
  503   case Type::Record:
  504   case Type::Enum:
  507   case Type::TemplateSpecialization:
  515   case Type::Auto:
  516   case Type::DeducedTemplateSpecialization:
  522   case Type::InjectedClassName:
  528   case Type::Elaborated:
  792   const Type *TP = T.getTypePtrOrNull();
  796     case Type::ConstantArray:
  799     case Type::IncompleteArray:
  802     case Type::VariableArray:
  805     case Type::DependentSizedArray:
  808     case Type::Vector:
  811     case Type::ExtVector:
  814     case Type::Complex:
  827   const Type *TP = T.getTypePtrOrNull();
  831     case Type::ConstantArray:
  834     case Type::Vector:
  837     case Type::ExtVector:
  850   const Type *TP = T.getTypePtrOrNull();
  854     case Type::ConstantArray:
  857     case Type::IncompleteArray:
  860     case Type::VariableArray:
  863     case Type::DependentSizedArray:
  876   const Type *TP = T.getTypePtrOrNull();
  880     case Type::ConstantArray:
  920   const Type *TP = T.getTypePtrOrNull();
  922   if (TP && TP->getTypeClass() == Type::MemberPointer) {
 1286   const Type *TP = T.getTypePtrOrNull();
 1288   if (TP && TP->getTypeClass() == Type::Elaborated)
tools/clang/unittests/AST/ASTImporterTest.cpp
  849 const internal::VariadicDynCastAllOfMatcher<Type,
 2962 const internal::VariadicDynCastAllOfMatcher<Type, DependentNameType>
tools/clang/unittests/AST/ASTTraverserTest.cpp
   38   void Visit(const Type *T) { OS << T->getTypeClassName() << "Type"; }
tools/clang/unittests/AST/ASTTypeTraitsTest.cpp
   25   return ASTNodeKind::getFromNodeKind<T>();
tools/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
 1542     const T *Node = Nodes->getNodeAs<T>("");
 1542     const T *Node = Nodes->getNodeAs<T>("");
 1564   bool verify(const BoundNodes &Nodes, ASTContext &Context, const Type *Node) {
 1567     const T *TypedNode = cast<T>(Node);
 1567     const T *TypedNode = cast<T>(Node);
 1569     return selectFirst<T>(
tools/clang/unittests/ASTMatchers/ASTMatchersTest.h
  421     if (Nodes->getNodeAs<T>(Id)) {
tools/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp
  285   Matcher<Type> M = constructMatcher(
  288                        constructMatcher("isInteger"))).getTypedMatcher<Type>();
  295       .getTypedMatcher<Type>();
tools/clang/unittests/CodeGen/CodeGenExternalTest.cpp
  190         const clang::Type *clangTy = rd->getCanonicalDecl()->getTypeForDecl();
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.cpp
   62 ASTDumper::ASTDumper(const clang::Type *type) {
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.h
   24   ASTDumper(const clang::Type *type);
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp
  300   const clang::Type *expr_type = expr_qual_type.getTypePtr();
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
  504   const clang::Type *complete_clang_type =
 1699     const clang::Type *origin_base_type = bi->getType().getTypePtr();
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
 1005         const clang::Type *interface_type = self_interface->getTypeForDecl();
 1633   if (const clang::Type *parser_type = parser_opaque_type.getTypePtr()) {
tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
  275     const clang::Type *pointer_type = pointer_qual_type.getTypePtr();
tools/lldb/source/Symbol/ClangASTContext.cpp
 2516   const clang::Type *clang_type = tag_qual_type.getTypePtr();
 2561   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 2563   case clang::Type::ObjCInterface:
 2566   case clang::Type::ObjCObjectPointer:
 2570   case clang::Type::Record:
 2572   case clang::Type::Enum:
 2574   case clang::Type::Typedef:
 2578   case clang::Type::Auto:
 2581   case clang::Type::Elaborated:
 2584   case clang::Type::Paren:
 2597   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 2599   case clang::Type::ConstantArray:
 2600   case clang::Type::IncompleteArray:
 2601   case clang::Type::VariableArray: {
 2609   case clang::Type::Record: {
 2640   case clang::Type::Enum: {
 2667   case clang::Type::ObjCObject:
 2668   case clang::Type::ObjCInterface: {
 2698   case clang::Type::Typedef:
 2704   case clang::Type::Auto:
 2709   case clang::Type::Elaborated:
 2714   case clang::Type::Paren:
 2719   case clang::Type::Attributed:
 2753   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 2755   case clang::Type::IncompleteArray:
 2756   case clang::Type::VariableArray:
 2757   case clang::Type::ConstantArray:
 2758   case clang::Type::ExtVector:
 2759   case clang::Type::Vector:
 2760   case clang::Type::Record:
 2761   case clang::Type::ObjCObject:
 2762   case clang::Type::ObjCInterface:
 2764   case clang::Type::Auto:
 2768   case clang::Type::Elaborated:
 2772   case clang::Type::Typedef:
 2777   case clang::Type::Paren:
 2790   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 2792   case clang::Type::Record: {
 2802   case clang::Type::Auto:
 2806   case clang::Type::Elaborated:
 2810   case clang::Type::Typedef:
 2815   case clang::Type::Paren:
 2830   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 2835   case clang::Type::ConstantArray:
 2849   case clang::Type::IncompleteArray:
 2861   case clang::Type::VariableArray:
 2873   case clang::Type::DependentSizedArray:
 2885   case clang::Type::Typedef:
 2891   case clang::Type::Auto:
 2896   case clang::Type::Elaborated:
 2901   case clang::Type::Paren:
 2919   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 2921   case clang::Type::Vector: {
 2933   case clang::Type::ExtVector: {
 3027     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 3031     case clang::Type::Typedef:
 3037     case clang::Type::Auto:
 3042     case clang::Type::Elaborated:
 3047     case clang::Type::Paren:
 3051     case clang::Type::LValueReference:
 3052     case clang::Type::RValueReference: {
 3072   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 3074   case clang::Type::Record:
 3141   case clang::Type::Typedef:
 3148   case clang::Type::Auto:
 3154   case clang::Type::Elaborated:
 3199     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 3203     case clang::Type::Typedef:
 3208     case clang::Type::Auto:
 3212     case clang::Type::Elaborated:
 3216     case clang::Type::Paren:
 3220     case clang::Type::LValueReference:
 3221     case clang::Type::RValueReference: {
 3251     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 3255     case clang::Type::Typedef:
 3261     case clang::Type::Auto:
 3266     case clang::Type::Elaborated:
 3271     case clang::Type::Paren:
 3276     case clang::Type::LValueReference:
 3277     case clang::Type::RValueReference: {
 3329     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 3331     case clang::Type::Builtin:
 3340     case clang::Type::ObjCObjectPointer:
 3347     case clang::Type::BlockPointer:
 3354     case clang::Type::Pointer:
 3361     case clang::Type::MemberPointer:
 3368     case clang::Type::Typedef:
 3374     case clang::Type::Auto:
 3379     case clang::Type::Elaborated:
 3384     case clang::Type::Paren:
 3401     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 3403     case clang::Type::Builtin:
 3412     case clang::Type::ObjCObjectPointer:
 3418     case clang::Type::BlockPointer:
 3425     case clang::Type::Pointer:
 3432     case clang::Type::MemberPointer:
 3439     case clang::Type::LValueReference:
 3446     case clang::Type::RValueReference:
 3453     case clang::Type::Typedef:
 3459     case clang::Type::Auto:
 3464     case clang::Type::Elaborated:
 3470     case clang::Type::Paren:
 3488     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 3491     case clang::Type::LValueReference:
 3500     case clang::Type::RValueReference:
 3509     case clang::Type::Typedef:
 3515     case clang::Type::Auto:
 3520     case clang::Type::Elaborated:
 3525     case clang::Type::Paren:
 3626   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 3627   return (type_class == clang::Type::Record);
 3634   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 3635   return (type_class == clang::Type::Enum);
 3641     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 3643     case clang::Type::Record:
 3672     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 3674     case clang::Type::Builtin:
 3684     case clang::Type::ObjCObjectPointer:
 3704     case clang::Type::Pointer:
 3710     case clang::Type::LValueReference:
 3711     case clang::Type::RValueReference:
 3717     case clang::Type::Typedef:
 3725     case clang::Type::Auto:
 3732     case clang::Type::Elaborated:
 3739     case clang::Type::Paren:
 3751       const clang::Type::TypeClass pointee_type_class =
 3754       case clang::Type::Builtin:
 3767       case clang::Type::Record:
 3802       case clang::Type::ObjCObject:
 3803       case clang::Type::ObjCInterface:
 3832   return GetQualType(type)->getTypeClass() == clang::Type::Typedef;
 3954   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 3956   case clang::Type::Attributed:
 3961   case clang::Type::Builtin: {
 4018   case clang::Type::BlockPointer:
 4024   case clang::Type::Complex: {
 4039   case clang::Type::ConstantArray:
 4040   case clang::Type::DependentSizedArray:
 4041   case clang::Type::IncompleteArray:
 4042   case clang::Type::VariableArray:
 4050   case clang::Type::DependentName:
 4052   case clang::Type::DependentSizedExtVector:
 4054   case clang::Type::DependentTemplateSpecialization:
 4056   case clang::Type::Decltype:
 4062   case clang::Type::Enum:
 4071   case clang::Type::Auto:
 4076   case clang::Type::Elaborated:
 4081   case clang::Type::Paren:
 4087   case clang::Type::FunctionProto:
 4089   case clang::Type::FunctionNoProto:
 4091   case clang::Type::InjectedClassName:
 4094   case clang::Type::LValueReference:
 4095   case clang::Type::RValueReference:
 4103   case clang::Type::MemberPointer:
 4106   case clang::Type::ObjCObjectPointer:
 4113   case clang::Type::ObjCObject:
 4115   case clang::Type::ObjCInterface:
 4118   case clang::Type::Pointer:
 4124   case clang::Type::Record:
 4130   case clang::Type::SubstTemplateTypeParm:
 4132   case clang::Type::TemplateTypeParm:
 4134   case clang::Type::TemplateSpecialization:
 4137   case clang::Type::Typedef:
 4144   case clang::Type::TypeOfExpr:
 4150   case clang::Type::TypeOf:
 4155   case clang::Type::UnresolvedUsing:
 4158   case clang::Type::ExtVector:
 4159   case clang::Type::Vector: {
 4208     case clang::Type::Builtin:
 4251     case clang::Type::Typedef:
 4270   case clang::Type::UnaryTransform:
 4272   case clang::Type::FunctionNoProto:
 4274   case clang::Type::FunctionProto:
 4276   case clang::Type::IncompleteArray:
 4278   case clang::Type::VariableArray:
 4280   case clang::Type::ConstantArray:
 4282   case clang::Type::DependentSizedArray:
 4284   case clang::Type::DependentSizedExtVector:
 4286   case clang::Type::DependentVector:
 4288   case clang::Type::ExtVector:
 4290   case clang::Type::Vector:
 4292   case clang::Type::Builtin:
 4294   case clang::Type::ObjCObjectPointer:
 4296   case clang::Type::BlockPointer:
 4298   case clang::Type::Pointer:
 4300   case clang::Type::LValueReference:
 4302   case clang::Type::RValueReference:
 4304   case clang::Type::MemberPointer:
 4306   case clang::Type::Complex:
 4311   case clang::Type::ObjCObject:
 4313   case clang::Type::ObjCInterface:
 4315   case clang::Type::Record: {
 4326   case clang::Type::Enum:
 4328   case clang::Type::Typedef:
 4330   case clang::Type::UnresolvedUsing:
 4332   case clang::Type::Paren:
 4337   case clang::Type::Auto:
 4342   case clang::Type::Elaborated:
 4348   case clang::Type::Attributed:
 4350   case clang::Type::TemplateTypeParm:
 4352   case clang::Type::SubstTemplateTypeParm:
 4354   case clang::Type::SubstTemplateTypeParmPack:
 4356   case clang::Type::InjectedClassName:
 4358   case clang::Type::DependentName:
 4360   case clang::Type::DependentTemplateSpecialization:
 4362   case clang::Type::PackExpansion:
 4365   case clang::Type::TypeOfExpr:
 4371   case clang::Type::TypeOf:
 4376   case clang::Type::Decltype:
 4381   case clang::Type::TemplateSpecialization:
 4383   case clang::Type::DeducedTemplateSpecialization:
 4385   case clang::Type::Atomic:
 4387   case clang::Type::Pipe:
 4391   case clang::Type::Decayed:
 4393   case clang::Type::Adjusted:
 4395   case clang::Type::ObjCTypeParam:
 4398   case clang::Type::DependentAddressSpace:
 4400   case clang::Type::MacroQualified:
 4421     const clang::Type *array_eletype =
 4537     case clang::Type::Record:
 4551     case clang::Type::ObjCObjectPointer: {
 4569     case clang::Type::ObjCObject:
 4570     case clang::Type::ObjCInterface:
 4584     case clang::Type::Typedef:
 4591     case clang::Type::Auto:
 4597     case clang::Type::Elaborated:
 4603     case clang::Type::Paren:
 4626     case clang::Type::Record:
 4661     case clang::Type::ObjCObjectPointer: {
 4693     case clang::Type::ObjCObject:
 4694     case clang::Type::ObjCInterface:
 4723     case clang::Type::Typedef:
 4730     case clang::Type::Auto:
 4736     case clang::Type::Elaborated:
 4743     case clang::Type::Paren:
 4813     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 4815     case clang::Type::ObjCObject:
 4816     case clang::Type::ObjCInterface:
 4959     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 4961     case clang::Type::Record:
 4968     case clang::Type::ObjCInterface:
 4969     case clang::Type::ObjCObject: {
 5037   case clang::Type::UnaryTransform:
 5040   case clang::Type::FunctionNoProto:
 5041   case clang::Type::FunctionProto:
 5044   case clang::Type::IncompleteArray:
 5045   case clang::Type::VariableArray:
 5048   case clang::Type::ConstantArray:
 5051   case clang::Type::DependentVector:
 5052   case clang::Type::ExtVector:
 5053   case clang::Type::Vector:
 5057   case clang::Type::Builtin:
 5211   case clang::Type::ObjCObjectPointer:
 5212   case clang::Type::BlockPointer:
 5213   case clang::Type::Pointer:
 5214   case clang::Type::LValueReference:
 5215   case clang::Type::RValueReference:
 5216   case clang::Type::MemberPointer:
 5218   case clang::Type::Complex: {
 5236   case clang::Type::ObjCInterface:
 5238   case clang::Type::Record:
 5240   case clang::Type::Enum:
 5242   case clang::Type::Typedef:
 5249   case clang::Type::Auto:
 5255   case clang::Type::Elaborated:
 5261   case clang::Type::Paren:
 5266   case clang::Type::TypeOfExpr:
 5272   case clang::Type::TypeOf:
 5277   case clang::Type::Decltype:
 5282   case clang::Type::DependentSizedArray:
 5283   case clang::Type::DependentSizedExtVector:
 5284   case clang::Type::UnresolvedUsing:
 5285   case clang::Type::Attributed:
 5286   case clang::Type::TemplateTypeParm:
 5287   case clang::Type::SubstTemplateTypeParm:
 5288   case clang::Type::SubstTemplateTypeParmPack:
 5289   case clang::Type::InjectedClassName:
 5290   case clang::Type::DependentName:
 5291   case clang::Type::DependentTemplateSpecialization:
 5292   case clang::Type::PackExpansion:
 5293   case clang::Type::ObjCObject:
 5295   case clang::Type::TemplateSpecialization:
 5296   case clang::Type::DeducedTemplateSpecialization:
 5297   case clang::Type::Atomic:
 5298   case clang::Type::Adjusted:
 5299   case clang::Type::Pipe:
 5303   case clang::Type::Decayed:
 5305   case clang::Type::ObjCTypeParam:
 5308   case clang::Type::DependentAddressSpace:
 5310   case clang::Type::MacroQualified:
 5324   case clang::Type::UnaryTransform:
 5327   case clang::Type::FunctionNoProto:
 5328   case clang::Type::FunctionProto:
 5331   case clang::Type::IncompleteArray:
 5332   case clang::Type::VariableArray:
 5335   case clang::Type::ConstantArray:
 5338   case clang::Type::DependentVector:
 5339   case clang::Type::ExtVector:
 5340   case clang::Type::Vector:
 5343   case clang::Type::Builtin:
 5393   case clang::Type::ObjCObjectPointer:
 5395   case clang::Type::BlockPointer:
 5397   case clang::Type::Pointer:
 5399   case clang::Type::LValueReference:
 5400   case clang::Type::RValueReference:
 5402   case clang::Type::MemberPointer:
 5404   case clang::Type::Complex: {
 5410   case clang::Type::ObjCInterface:
 5412   case clang::Type::Record:
 5414   case clang::Type::Enum:
 5416   case clang::Type::Typedef:
 5422   case clang::Type::Auto:
 5427   case clang::Type::Paren:
 5432   case clang::Type::Elaborated:
 5437   case clang::Type::TypeOfExpr:
 5443   case clang::Type::TypeOf:
 5448   case clang::Type::Decltype:
 5453   case clang::Type::DependentSizedArray:
 5454   case clang::Type::DependentSizedExtVector:
 5455   case clang::Type::UnresolvedUsing:
 5456   case clang::Type::Attributed:
 5457   case clang::Type::TemplateTypeParm:
 5458   case clang::Type::SubstTemplateTypeParm:
 5459   case clang::Type::SubstTemplateTypeParmPack:
 5460   case clang::Type::InjectedClassName:
 5461   case clang::Type::DependentName:
 5462   case clang::Type::DependentTemplateSpecialization:
 5463   case clang::Type::PackExpansion:
 5464   case clang::Type::ObjCObject:
 5466   case clang::Type::TemplateSpecialization:
 5467   case clang::Type::DeducedTemplateSpecialization:
 5468   case clang::Type::Atomic:
 5469   case clang::Type::Adjusted:
 5470   case clang::Type::Pipe:
 5474   case clang::Type::Decayed:
 5476   case clang::Type::ObjCTypeParam:
 5479   case clang::Type::DependentAddressSpace:
 5481   case clang::Type::MacroQualified:
 5521   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 5523   case clang::Type::Builtin:
 5535   case clang::Type::Complex:
 5537   case clang::Type::Record:
 5580   case clang::Type::ObjCObject:
 5581   case clang::Type::ObjCInterface:
 5608   case clang::Type::ObjCObjectPointer: {
 5622   case clang::Type::Vector:
 5623   case clang::Type::ExtVector:
 5628   case clang::Type::ConstantArray:
 5633   case clang::Type::IncompleteArray:
 5642   case clang::Type::Pointer: {
 5657   case clang::Type::LValueReference:
 5658   case clang::Type::RValueReference: {
 5672   case clang::Type::Typedef:
 5680   case clang::Type::Auto:
 5687   case clang::Type::Elaborated:
 5695   case clang::Type::Paren:
 5716     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 5717     if (type_class == clang::Type::Builtin) {
 5818   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 5820   case clang::Type::Record:
 5839   case clang::Type::Typedef:
 5847   case clang::Type::Auto:
 5854   case clang::Type::Elaborated:
 5861   case clang::Type::Paren:
 5869   case clang::Type::ObjCObjectPointer: {
 5886   case clang::Type::ObjCObject:
 5887   case clang::Type::ObjCInterface:
 5968   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 5970   case clang::Type::Record:
 6018   case clang::Type::ObjCObjectPointer: {
 6038   case clang::Type::ObjCObject:
 6039   case clang::Type::ObjCInterface:
 6055   case clang::Type::Typedef:
 6063   case clang::Type::Auto:
 6070   case clang::Type::Elaborated:
 6077   case clang::Type::Paren:
 6094   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 6096   case clang::Type::Record:
 6105   case clang::Type::ObjCObjectPointer:
 6109   case clang::Type::ObjCObject:
 6122   case clang::Type::ObjCInterface:
 6136   case clang::Type::Typedef:
 6143   case clang::Type::Auto:
 6149   case clang::Type::Elaborated:
 6155   case clang::Type::Paren:
 6169   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 6171   case clang::Type::Record:
 6180   case clang::Type::Typedef:
 6187   case clang::Type::Auto:
 6193   case clang::Type::Elaborated:
 6200   case clang::Type::Paren:
 6214   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 6216   case clang::Type::Record:
 6254   case clang::Type::ObjCObjectPointer:
 6257   case clang::Type::ObjCObject:
 6279   case clang::Type::ObjCInterface:
 6303   case clang::Type::Typedef:
 6310   case clang::Type::Auto:
 6316   case clang::Type::Elaborated:
 6323   case clang::Type::Paren:
 6337   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 6339   case clang::Type::Record:
 6371   case clang::Type::Typedef:
 6378   case clang::Type::Auto:
 6384   case clang::Type::Elaborated:
 6391   case clang::Type::Paren:
 6412   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 6414   case clang::Type::Builtin:
 6479   case clang::Type::Complex:
 6481   case clang::Type::Pointer:
 6483   case clang::Type::BlockPointer:
 6486   case clang::Type::LValueReference:
 6488   case clang::Type::RValueReference:
 6490   case clang::Type::MemberPointer:
 6492   case clang::Type::ConstantArray:
 6494   case clang::Type::IncompleteArray:
 6496   case clang::Type::VariableArray:
 6498   case clang::Type::DependentSizedArray:
 6500   case clang::Type::DependentSizedExtVector:
 6502   case clang::Type::Vector:
 6504   case clang::Type::ExtVector:
 6506   case clang::Type::FunctionProto:
 6508   case clang::Type::FunctionNoProto:
 6510   case clang::Type::UnresolvedUsing:
 6512   case clang::Type::Paren:
 6515   case clang::Type::Typedef:
 6519   case clang::Type::Auto:
 6522   case clang::Type::Elaborated:
 6525   case clang::Type::TypeOfExpr:
 6529   case clang::Type::TypeOf:
 6532   case clang::Type::Decltype:
 6535   case clang::Type::Record:
 6537   case clang::Type::Enum:
 6539   case clang::Type::TemplateTypeParm:
 6541   case clang::Type::SubstTemplateTypeParm:
 6543   case clang::Type::TemplateSpecialization:
 6545   case clang::Type::InjectedClassName:
 6547   case clang::Type::DependentName:
 6549   case clang::Type::DependentTemplateSpecialization:
 6551   case clang::Type::ObjCObject:
 6553   case clang::Type::ObjCInterface:
 6555   case clang::Type::ObjCObjectPointer:
 6579   const clang::Type::TypeClass parent_type_class =
 6590   case clang::Type::Builtin:
 6608   case clang::Type::Record:
 6725   case clang::Type::ObjCObject:
 6726   case clang::Type::ObjCInterface:
 6851   case clang::Type::ObjCObjectPointer:
 6886   case clang::Type::Vector:
 6887   case clang::Type::ExtVector:
 6910   case clang::Type::ConstantArray:
 6911   case clang::Type::IncompleteArray:
 6930   case clang::Type::Pointer: {
 6969   case clang::Type::LValueReference:
 6970   case clang::Type::RValueReference:
 7006   case clang::Type::Typedef: {
 7019   case clang::Type::Auto: {
 7031   case clang::Type::Elaborated: {
 7043   case clang::Type::Paren: {
 7154     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 7156     case clang::Type::Record:
 7248     case clang::Type::ObjCObject:
 7249     case clang::Type::ObjCInterface:
 7307     case clang::Type::ObjCObjectPointer: {
 7316     case clang::Type::ConstantArray: {
 7356     case clang::Type::LValueReference:
 7357     case clang::Type::RValueReference: {
 7369     case clang::Type::Pointer: {
 7378     case clang::Type::Typedef:
 7386     case clang::Type::Auto:
 7393     case clang::Type::Elaborated:
 7400     case clang::Type::Paren:
 7425     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 7428     case clang::Type::Record:
 7478     case clang::Type::ObjCObject:
 7479     case clang::Type::ObjCInterface:
 7519     case clang::Type::ObjCObjectPointer: {
 7528     case clang::Type::ConstantArray: {
 7568     case clang::Type::LValueReference:
 7569     case clang::Type::RValueReference: {
 7581     case clang::Type::Pointer: {
 7610     case clang::Type::Auto:
 7616     case clang::Type::Elaborated:
 7622     case clang::Type::Paren:
 7628     case clang::Type::Typedef:
 7648   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 7650   case clang::Type::Record:
 7664   case clang::Type::Typedef:
 7671   case clang::Type::Auto:
 7677   case clang::Type::Elaborated:
 7683   case clang::Type::Paren:
 7703   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 7705   case clang::Type::Record: {
 7716   case clang::Type::Typedef:
 7722   case clang::Type::Auto:
 7727   case clang::Type::Elaborated:
 7733   case clang::Type::Paren:
 8626   const clang::Type *method_type(method_qual_type.getTypePtr());
 8697   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 8699   case clang::Type::Record: {
 8708   case clang::Type::Enum: {
 8718   case clang::Type::ObjCObject:
 8719   case clang::Type::ObjCInterface: {
 8735   case clang::Type::Typedef:
 8742   case clang::Type::Auto:
 8748   case clang::Type::Elaborated:
 8754   case clang::Type::Paren:
 8879   const clang::Type *clang_type = enum_qual_type.getTypePtr();
 8923   const clang::Type *clang_type = enum_qual_type.getTypePtr();
 9016   case clang::Type::Record:
 9167   case clang::Type::Enum:
 9191   case clang::Type::ConstantArray: {
 9197     const clang::Type *canonical_type =
 9265   case clang::Type::Typedef: {
 9293   case clang::Type::Auto: {
 9319   case clang::Type::Elaborated: {
 9345   case clang::Type::Paren: {
 9475     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 9477     if (type_class == clang::Type::Elaborated) {
 9484     case clang::Type::Typedef: {
 9509     case clang::Type::Enum:
 9649     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 9651     case clang::Type::ObjCObject:
 9652     case clang::Type::ObjCInterface: {
 9668     case clang::Type::Typedef: {
 9682     case clang::Type::Auto:
 9689     case clang::Type::Elaborated:
 9696     case clang::Type::Paren:
 9703     case clang::Type::Record: {
 9746     const clang::Type::TypeClass type_class = qual_type->getTypeClass();
 9748     case clang::Type::Record: {
 9755     case clang::Type::Enum: {
 9763     case clang::Type::ObjCObject:
 9764     case clang::Type::ObjCInterface: {
 9778     case clang::Type::Typedef:
 9786     case clang::Type::Auto:
 9793     case clang::Type::Elaborated:
 9800     case clang::Type::Paren:
tools/lldb/source/Symbol/ClangASTImporter.cpp
  414   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
  416   case clang::Type::Record: {
  425   case clang::Type::Enum: {
  434   case clang::Type::ObjCObject:
  435   case clang::Type::ObjCInterface: {
  450   case clang::Type::Typedef:
  457   case clang::Type::Auto:
  463   case clang::Type::Elaborated:
  469   case clang::Type::Paren:
  490   const clang::Type::TypeClass type_class = qual_type->getTypeClass();
  492   case clang::Type::Record: {
  501   case clang::Type::Enum: {
  510   case clang::Type::ObjCObject:
  511   case clang::Type::ObjCInterface: {
  526   case clang::Type::Typedef:
  533   case clang::Type::Auto:
  539   case clang::Type::Elaborated:
  545   case clang::Type::Paren:
tools/lldb/unittests/Symbol/TestClangASTContext.cpp
  186   const clang::Type *type_ptr = qtype.getTypePtr();
usr/include/c++/7.4.0/type_traits
 1558     { typedef _Tp     type; };
 1983     { typedef _Up     type; };