Lines Matching refs:T

276   void AddQualType(QualType T) {  in AddQualType()  argument
277 Hash.AddQualType(T); in AddQualType()
843 void AddQualType(QualType T) { in AddQualType() argument
844 Hash.AddQualType(T); in AddQualType()
847 void AddType(const Type *T) { in AddType() argument
848 Hash.AddBoolean(T); in AddType()
849 if (T) { in AddType()
850 Hash.AddType(T); in AddType()
874 static const Type *RemoveTypedef(const Type *T) { in RemoveTypedef() argument
875 const auto *TypedefT = dyn_cast<TypedefType>(T); in RemoveTypedef()
877 return T; in RemoveTypedef()
884 return T; in RemoveTypedef()
889 return T; in RemoveTypedef()
893 return T; in RemoveTypedef()
898 return T; in RemoveTypedef()
903 return T; in RemoveTypedef()
910 return T; in RemoveTypedef()
916 void Visit(const Type *T) { in Visit() argument
917 T = RemoveTypedef(T); in Visit()
918 ID.AddInteger(T->getTypeClass()); in Visit()
919 Inherited::Visit(T); in Visit()
922 void VisitType(const Type *T) {} in VisitType() argument
924 void VisitAdjustedType(const AdjustedType *T) { in VisitAdjustedType() argument
925 AddQualType(T->getOriginalType()); in VisitAdjustedType()
927 VisitType(T); in VisitAdjustedType()
930 void VisitDecayedType(const DecayedType *T) { in VisitDecayedType() argument
933 VisitAdjustedType(T); in VisitDecayedType()
936 void VisitArrayType(const ArrayType *T) { in VisitArrayType() argument
937 AddQualType(T->getElementType()); in VisitArrayType()
938 ID.AddInteger(llvm::to_underlying(T->getSizeModifier())); in VisitArrayType()
939 VisitQualifiers(T->getIndexTypeQualifiers()); in VisitArrayType()
940 VisitType(T); in VisitArrayType()
942 void VisitConstantArrayType(const ConstantArrayType *T) { in VisitConstantArrayType() argument
943 T->getSize().Profile(ID); in VisitConstantArrayType()
944 VisitArrayType(T); in VisitConstantArrayType()
947 void VisitDependentSizedArrayType(const DependentSizedArrayType *T) { in VisitDependentSizedArrayType() argument
948 AddStmt(T->getSizeExpr()); in VisitDependentSizedArrayType()
949 VisitArrayType(T); in VisitDependentSizedArrayType()
952 void VisitIncompleteArrayType(const IncompleteArrayType *T) { in VisitIncompleteArrayType() argument
953 VisitArrayType(T); in VisitIncompleteArrayType()
956 void VisitVariableArrayType(const VariableArrayType *T) { in VisitVariableArrayType() argument
957 AddStmt(T->getSizeExpr()); in VisitVariableArrayType()
958 VisitArrayType(T); in VisitVariableArrayType()
961 void VisitAttributedType(const AttributedType *T) { in VisitAttributedType() argument
962 ID.AddInteger(T->getAttrKind()); in VisitAttributedType()
963 AddQualType(T->getModifiedType()); in VisitAttributedType()
965 VisitType(T); in VisitAttributedType()
968 void VisitBlockPointerType(const BlockPointerType *T) { in VisitBlockPointerType() argument
969 AddQualType(T->getPointeeType()); in VisitBlockPointerType()
970 VisitType(T); in VisitBlockPointerType()
973 void VisitBuiltinType(const BuiltinType *T) { in VisitBuiltinType() argument
974 ID.AddInteger(T->getKind()); in VisitBuiltinType()
975 VisitType(T); in VisitBuiltinType()
978 void VisitComplexType(const ComplexType *T) { in VisitComplexType() argument
979 AddQualType(T->getElementType()); in VisitComplexType()
980 VisitType(T); in VisitComplexType()
983 void VisitDecltypeType(const DecltypeType *T) { in VisitDecltypeType() argument
984 AddStmt(T->getUnderlyingExpr()); in VisitDecltypeType()
985 VisitType(T); in VisitDecltypeType()
988 void VisitDependentDecltypeType(const DependentDecltypeType *T) { in VisitDependentDecltypeType() argument
989 VisitDecltypeType(T); in VisitDependentDecltypeType()
992 void VisitDeducedType(const DeducedType *T) { in VisitDeducedType() argument
993 AddQualType(T->getDeducedType()); in VisitDeducedType()
994 VisitType(T); in VisitDeducedType()
997 void VisitAutoType(const AutoType *T) { in VisitAutoType() argument
998 ID.AddInteger((unsigned)T->getKeyword()); in VisitAutoType()
999 ID.AddInteger(T->isConstrained()); in VisitAutoType()
1000 if (T->isConstrained()) { in VisitAutoType()
1001 AddDecl(T->getTypeConstraintConcept()); in VisitAutoType()
1002 ID.AddInteger(T->getTypeConstraintArguments().size()); in VisitAutoType()
1003 for (const auto &TA : T->getTypeConstraintArguments()) in VisitAutoType()
1006 VisitDeducedType(T); in VisitAutoType()
1010 const DeducedTemplateSpecializationType *T) { in VisitDeducedTemplateSpecializationType() argument
1011 Hash.AddTemplateName(T->getTemplateName()); in VisitDeducedTemplateSpecializationType()
1012 VisitDeducedType(T); in VisitDeducedTemplateSpecializationType()
1015 void VisitDependentAddressSpaceType(const DependentAddressSpaceType *T) { in VisitDependentAddressSpaceType() argument
1016 AddQualType(T->getPointeeType()); in VisitDependentAddressSpaceType()
1017 AddStmt(T->getAddrSpaceExpr()); in VisitDependentAddressSpaceType()
1018 VisitType(T); in VisitDependentAddressSpaceType()
1021 void VisitDependentSizedExtVectorType(const DependentSizedExtVectorType *T) { in VisitDependentSizedExtVectorType() argument
1022 AddQualType(T->getElementType()); in VisitDependentSizedExtVectorType()
1023 AddStmt(T->getSizeExpr()); in VisitDependentSizedExtVectorType()
1024 VisitType(T); in VisitDependentSizedExtVectorType()
1027 void VisitFunctionType(const FunctionType *T) { in VisitFunctionType() argument
1028 AddQualType(T->getReturnType()); in VisitFunctionType()
1029 T->getExtInfo().Profile(ID); in VisitFunctionType()
1030 Hash.AddBoolean(T->isConst()); in VisitFunctionType()
1031 Hash.AddBoolean(T->isVolatile()); in VisitFunctionType()
1032 Hash.AddBoolean(T->isRestrict()); in VisitFunctionType()
1033 VisitType(T); in VisitFunctionType()
1036 void VisitFunctionNoProtoType(const FunctionNoProtoType *T) { in VisitFunctionNoProtoType() argument
1037 VisitFunctionType(T); in VisitFunctionNoProtoType()
1040 void VisitFunctionProtoType(const FunctionProtoType *T) { in VisitFunctionProtoType() argument
1041 ID.AddInteger(T->getNumParams()); in VisitFunctionProtoType()
1042 for (auto ParamType : T->getParamTypes()) in VisitFunctionProtoType()
1045 VisitFunctionType(T); in VisitFunctionProtoType()
1048 void VisitInjectedClassNameType(const InjectedClassNameType *T) { in VisitInjectedClassNameType() argument
1049 AddDecl(T->getDecl()); in VisitInjectedClassNameType()
1050 VisitType(T); in VisitInjectedClassNameType()
1053 void VisitMemberPointerType(const MemberPointerType *T) { in VisitMemberPointerType() argument
1054 AddQualType(T->getPointeeType()); in VisitMemberPointerType()
1055 AddType(T->getClass()); in VisitMemberPointerType()
1056 VisitType(T); in VisitMemberPointerType()
1059 void VisitObjCObjectPointerType(const ObjCObjectPointerType *T) { in VisitObjCObjectPointerType() argument
1060 AddQualType(T->getPointeeType()); in VisitObjCObjectPointerType()
1061 VisitType(T); in VisitObjCObjectPointerType()
1064 void VisitObjCObjectType(const ObjCObjectType *T) { in VisitObjCObjectType() argument
1065 AddDecl(T->getInterface()); in VisitObjCObjectType()
1067 auto TypeArgs = T->getTypeArgsAsWritten(); in VisitObjCObjectType()
1073 auto Protocols = T->getProtocols(); in VisitObjCObjectType()
1079 Hash.AddBoolean(T->isKindOfType()); in VisitObjCObjectType()
1081 VisitType(T); in VisitObjCObjectType()
1084 void VisitObjCInterfaceType(const ObjCInterfaceType *T) { in VisitObjCInterfaceType() argument
1086 VisitObjCObjectType(T); in VisitObjCInterfaceType()
1089 void VisitObjCTypeParamType(const ObjCTypeParamType *T) { in VisitObjCTypeParamType() argument
1090 AddDecl(T->getDecl()); in VisitObjCTypeParamType()
1091 auto Protocols = T->getProtocols(); in VisitObjCTypeParamType()
1097 VisitType(T); in VisitObjCTypeParamType()
1100 void VisitPackExpansionType(const PackExpansionType *T) { in VisitPackExpansionType() argument
1101 AddQualType(T->getPattern()); in VisitPackExpansionType()
1102 VisitType(T); in VisitPackExpansionType()
1105 void VisitParenType(const ParenType *T) { in VisitParenType() argument
1106 AddQualType(T->getInnerType()); in VisitParenType()
1107 VisitType(T); in VisitParenType()
1110 void VisitPipeType(const PipeType *T) { in VisitPipeType() argument
1111 AddQualType(T->getElementType()); in VisitPipeType()
1112 Hash.AddBoolean(T->isReadOnly()); in VisitPipeType()
1113 VisitType(T); in VisitPipeType()
1116 void VisitPointerType(const PointerType *T) { in VisitPointerType() argument
1117 AddQualType(T->getPointeeType()); in VisitPointerType()
1118 VisitType(T); in VisitPointerType()
1121 void VisitReferenceType(const ReferenceType *T) { in VisitReferenceType() argument
1122 AddQualType(T->getPointeeTypeAsWritten()); in VisitReferenceType()
1123 VisitType(T); in VisitReferenceType()
1126 void VisitLValueReferenceType(const LValueReferenceType *T) { in VisitLValueReferenceType() argument
1127 VisitReferenceType(T); in VisitLValueReferenceType()
1130 void VisitRValueReferenceType(const RValueReferenceType *T) { in VisitRValueReferenceType() argument
1131 VisitReferenceType(T); in VisitRValueReferenceType()
1135 VisitSubstTemplateTypeParmPackType(const SubstTemplateTypeParmPackType *T) { in VisitSubstTemplateTypeParmPackType() argument
1136 AddDecl(T->getAssociatedDecl()); in VisitSubstTemplateTypeParmPackType()
1137 Hash.AddTemplateArgument(T->getArgumentPack()); in VisitSubstTemplateTypeParmPackType()
1138 VisitType(T); in VisitSubstTemplateTypeParmPackType()
1141 void VisitSubstTemplateTypeParmType(const SubstTemplateTypeParmType *T) { in VisitSubstTemplateTypeParmType() argument
1142 AddDecl(T->getAssociatedDecl()); in VisitSubstTemplateTypeParmType()
1143 AddQualType(T->getReplacementType()); in VisitSubstTemplateTypeParmType()
1144 VisitType(T); in VisitSubstTemplateTypeParmType()
1147 void VisitTagType(const TagType *T) { in VisitTagType() argument
1148 AddDecl(T->getDecl()); in VisitTagType()
1149 VisitType(T); in VisitTagType()
1152 void VisitRecordType(const RecordType *T) { VisitTagType(T); } in VisitRecordType() argument
1153 void VisitEnumType(const EnumType *T) { VisitTagType(T); } in VisitEnumType() argument
1155 void VisitTemplateSpecializationType(const TemplateSpecializationType *T) { in VisitTemplateSpecializationType() argument
1156 ID.AddInteger(T->template_arguments().size()); in VisitTemplateSpecializationType()
1157 for (const auto &TA : T->template_arguments()) { in VisitTemplateSpecializationType()
1160 Hash.AddTemplateName(T->getTemplateName()); in VisitTemplateSpecializationType()
1161 VisitType(T); in VisitTemplateSpecializationType()
1164 void VisitTemplateTypeParmType(const TemplateTypeParmType *T) { in VisitTemplateTypeParmType() argument
1165 ID.AddInteger(T->getDepth()); in VisitTemplateTypeParmType()
1166 ID.AddInteger(T->getIndex()); in VisitTemplateTypeParmType()
1167 Hash.AddBoolean(T->isParameterPack()); in VisitTemplateTypeParmType()
1168 AddDecl(T->getDecl()); in VisitTemplateTypeParmType()
1171 void VisitTypedefType(const TypedefType *T) { in VisitTypedefType() argument
1172 AddDecl(T->getDecl()); in VisitTypedefType()
1173 VisitType(T); in VisitTypedefType()
1176 void VisitTypeOfExprType(const TypeOfExprType *T) { in VisitTypeOfExprType() argument
1177 AddStmt(T->getUnderlyingExpr()); in VisitTypeOfExprType()
1178 Hash.AddBoolean(T->isSugared()); in VisitTypeOfExprType()
1180 VisitType(T); in VisitTypeOfExprType()
1182 void VisitTypeOfType(const TypeOfType *T) { in VisitTypeOfType() argument
1183 AddQualType(T->getUnmodifiedType()); in VisitTypeOfType()
1184 VisitType(T); in VisitTypeOfType()
1187 void VisitTypeWithKeyword(const TypeWithKeyword *T) { in VisitTypeWithKeyword() argument
1188 ID.AddInteger(llvm::to_underlying(T->getKeyword())); in VisitTypeWithKeyword()
1189 VisitType(T); in VisitTypeWithKeyword()
1192 void VisitDependentNameType(const DependentNameType *T) { in VisitDependentNameType() argument
1193 AddNestedNameSpecifier(T->getQualifier()); in VisitDependentNameType()
1194 AddIdentifierInfo(T->getIdentifier()); in VisitDependentNameType()
1195 VisitTypeWithKeyword(T); in VisitDependentNameType()
1199 const DependentTemplateSpecializationType *T) { in VisitDependentTemplateSpecializationType() argument
1200 AddIdentifierInfo(T->getIdentifier()); in VisitDependentTemplateSpecializationType()
1201 AddNestedNameSpecifier(T->getQualifier()); in VisitDependentTemplateSpecializationType()
1202 ID.AddInteger(T->template_arguments().size()); in VisitDependentTemplateSpecializationType()
1203 for (const auto &TA : T->template_arguments()) { in VisitDependentTemplateSpecializationType()
1206 VisitTypeWithKeyword(T); in VisitDependentTemplateSpecializationType()
1209 void VisitElaboratedType(const ElaboratedType *T) { in VisitElaboratedType() argument
1210 AddNestedNameSpecifier(T->getQualifier()); in VisitElaboratedType()
1211 AddQualType(T->getNamedType()); in VisitElaboratedType()
1212 VisitTypeWithKeyword(T); in VisitElaboratedType()
1215 void VisitUnaryTransformType(const UnaryTransformType *T) { in VisitUnaryTransformType() argument
1216 AddQualType(T->getUnderlyingType()); in VisitUnaryTransformType()
1217 AddQualType(T->getBaseType()); in VisitUnaryTransformType()
1218 VisitType(T); in VisitUnaryTransformType()
1221 void VisitUnresolvedUsingType(const UnresolvedUsingType *T) { in VisitUnresolvedUsingType() argument
1222 AddDecl(T->getDecl()); in VisitUnresolvedUsingType()
1223 VisitType(T); in VisitUnresolvedUsingType()
1226 void VisitVectorType(const VectorType *T) { in VisitVectorType() argument
1227 AddQualType(T->getElementType()); in VisitVectorType()
1228 ID.AddInteger(T->getNumElements()); in VisitVectorType()
1229 ID.AddInteger(llvm::to_underlying(T->getVectorKind())); in VisitVectorType()
1230 VisitType(T); in VisitVectorType()
1233 void VisitExtVectorType(const ExtVectorType * T) { in VisitExtVectorType() argument
1234 VisitVectorType(T); in VisitExtVectorType()
1239 void ODRHash::AddType(const Type *T) { in AddType() argument
1240 assert(T && "Expecting non-null pointer."); in AddType()
1241 ODRTypeVisitor(ID, *this).Visit(T); in AddType()
1244 void ODRHash::AddQualType(QualType T) { in AddQualType() argument
1245 AddBoolean(T.isNull()); in AddQualType()
1246 if (T.isNull()) in AddQualType()
1248 SplitQualType split = T.split(); in AddQualType()