Lines Matching refs:T

262   void AddQualType(QualType T) {  in AddQualType()  argument
263 Hash.AddQualType(T); in AddQualType()
680 void AddQualType(QualType T) { in AddQualType() argument
681 Hash.AddQualType(T); in AddQualType()
684 void AddType(const Type *T) { in AddType() argument
685 Hash.AddBoolean(T); in AddType()
686 if (T) { in AddType()
687 Hash.AddType(T); in AddType()
711 static const Type *RemoveTypedef(const Type *T) { in RemoveTypedef() argument
712 const auto *TypedefT = dyn_cast<TypedefType>(T); in RemoveTypedef()
714 return T; in RemoveTypedef()
721 return T; in RemoveTypedef()
726 return T; in RemoveTypedef()
730 return T; in RemoveTypedef()
735 return T; in RemoveTypedef()
740 return T; in RemoveTypedef()
747 return T; in RemoveTypedef()
753 void Visit(const Type *T) { in Visit() argument
754 T = RemoveTypedef(T); in Visit()
755 ID.AddInteger(T->getTypeClass()); in Visit()
756 Inherited::Visit(T); in Visit()
759 void VisitType(const Type *T) {} in VisitType() argument
761 void VisitAdjustedType(const AdjustedType *T) { in VisitAdjustedType() argument
762 QualType Original = T->getOriginalType(); in VisitAdjustedType()
763 QualType Adjusted = T->getAdjustedType(); in VisitAdjustedType()
774 VisitType(T); in VisitAdjustedType()
786 VisitType(T); in VisitAdjustedType()
789 void VisitDecayedType(const DecayedType *T) { in VisitDecayedType() argument
792 VisitAdjustedType(T); in VisitDecayedType()
795 void VisitArrayType(const ArrayType *T) { in VisitArrayType() argument
796 AddQualType(T->getElementType()); in VisitArrayType()
797 ID.AddInteger(T->getSizeModifier()); in VisitArrayType()
798 VisitQualifiers(T->getIndexTypeQualifiers()); in VisitArrayType()
799 VisitType(T); in VisitArrayType()
801 void VisitConstantArrayType(const ConstantArrayType *T) { in VisitConstantArrayType() argument
802 T->getSize().Profile(ID); in VisitConstantArrayType()
803 VisitArrayType(T); in VisitConstantArrayType()
806 void VisitDependentSizedArrayType(const DependentSizedArrayType *T) { in VisitDependentSizedArrayType() argument
807 AddStmt(T->getSizeExpr()); in VisitDependentSizedArrayType()
808 VisitArrayType(T); in VisitDependentSizedArrayType()
811 void VisitIncompleteArrayType(const IncompleteArrayType *T) { in VisitIncompleteArrayType() argument
812 VisitArrayType(T); in VisitIncompleteArrayType()
815 void VisitVariableArrayType(const VariableArrayType *T) { in VisitVariableArrayType() argument
816 AddStmt(T->getSizeExpr()); in VisitVariableArrayType()
817 VisitArrayType(T); in VisitVariableArrayType()
820 void VisitAttributedType(const AttributedType *T) { in VisitAttributedType() argument
821 ID.AddInteger(T->getAttrKind()); in VisitAttributedType()
822 AddQualType(T->getModifiedType()); in VisitAttributedType()
823 AddQualType(T->getEquivalentType()); in VisitAttributedType()
825 VisitType(T); in VisitAttributedType()
828 void VisitBlockPointerType(const BlockPointerType *T) { in VisitBlockPointerType() argument
829 AddQualType(T->getPointeeType()); in VisitBlockPointerType()
830 VisitType(T); in VisitBlockPointerType()
833 void VisitBuiltinType(const BuiltinType *T) { in VisitBuiltinType() argument
834 ID.AddInteger(T->getKind()); in VisitBuiltinType()
835 VisitType(T); in VisitBuiltinType()
838 void VisitComplexType(const ComplexType *T) { in VisitComplexType() argument
839 AddQualType(T->getElementType()); in VisitComplexType()
840 VisitType(T); in VisitComplexType()
843 void VisitDecltypeType(const DecltypeType *T) { in VisitDecltypeType() argument
844 AddStmt(T->getUnderlyingExpr()); in VisitDecltypeType()
845 AddQualType(T->getUnderlyingType()); in VisitDecltypeType()
846 VisitType(T); in VisitDecltypeType()
849 void VisitDependentDecltypeType(const DependentDecltypeType *T) { in VisitDependentDecltypeType() argument
850 VisitDecltypeType(T); in VisitDependentDecltypeType()
853 void VisitDeducedType(const DeducedType *T) { in VisitDeducedType() argument
854 AddQualType(T->getDeducedType()); in VisitDeducedType()
855 VisitType(T); in VisitDeducedType()
858 void VisitAutoType(const AutoType *T) { in VisitAutoType() argument
859 ID.AddInteger((unsigned)T->getKeyword()); in VisitAutoType()
860 ID.AddInteger(T->isConstrained()); in VisitAutoType()
861 if (T->isConstrained()) { in VisitAutoType()
862 AddDecl(T->getTypeConstraintConcept()); in VisitAutoType()
863 ID.AddInteger(T->getNumArgs()); in VisitAutoType()
864 for (const auto &TA : T->getTypeConstraintArguments()) in VisitAutoType()
867 VisitDeducedType(T); in VisitAutoType()
871 const DeducedTemplateSpecializationType *T) { in VisitDeducedTemplateSpecializationType() argument
872 Hash.AddTemplateName(T->getTemplateName()); in VisitDeducedTemplateSpecializationType()
873 VisitDeducedType(T); in VisitDeducedTemplateSpecializationType()
876 void VisitDependentAddressSpaceType(const DependentAddressSpaceType *T) { in VisitDependentAddressSpaceType() argument
877 AddQualType(T->getPointeeType()); in VisitDependentAddressSpaceType()
878 AddStmt(T->getAddrSpaceExpr()); in VisitDependentAddressSpaceType()
879 VisitType(T); in VisitDependentAddressSpaceType()
882 void VisitDependentSizedExtVectorType(const DependentSizedExtVectorType *T) { in VisitDependentSizedExtVectorType() argument
883 AddQualType(T->getElementType()); in VisitDependentSizedExtVectorType()
884 AddStmt(T->getSizeExpr()); in VisitDependentSizedExtVectorType()
885 VisitType(T); in VisitDependentSizedExtVectorType()
888 void VisitFunctionType(const FunctionType *T) { in VisitFunctionType() argument
889 AddQualType(T->getReturnType()); in VisitFunctionType()
890 T->getExtInfo().Profile(ID); in VisitFunctionType()
891 Hash.AddBoolean(T->isConst()); in VisitFunctionType()
892 Hash.AddBoolean(T->isVolatile()); in VisitFunctionType()
893 Hash.AddBoolean(T->isRestrict()); in VisitFunctionType()
894 VisitType(T); in VisitFunctionType()
897 void VisitFunctionNoProtoType(const FunctionNoProtoType *T) { in VisitFunctionNoProtoType() argument
898 VisitFunctionType(T); in VisitFunctionNoProtoType()
901 void VisitFunctionProtoType(const FunctionProtoType *T) { in VisitFunctionProtoType() argument
902 ID.AddInteger(T->getNumParams()); in VisitFunctionProtoType()
903 for (auto ParamType : T->getParamTypes()) in VisitFunctionProtoType()
906 VisitFunctionType(T); in VisitFunctionProtoType()
909 void VisitInjectedClassNameType(const InjectedClassNameType *T) { in VisitInjectedClassNameType() argument
910 AddDecl(T->getDecl()); in VisitInjectedClassNameType()
911 VisitType(T); in VisitInjectedClassNameType()
914 void VisitMemberPointerType(const MemberPointerType *T) { in VisitMemberPointerType() argument
915 AddQualType(T->getPointeeType()); in VisitMemberPointerType()
916 AddType(T->getClass()); in VisitMemberPointerType()
917 VisitType(T); in VisitMemberPointerType()
920 void VisitObjCObjectPointerType(const ObjCObjectPointerType *T) { in VisitObjCObjectPointerType() argument
921 AddQualType(T->getPointeeType()); in VisitObjCObjectPointerType()
922 VisitType(T); in VisitObjCObjectPointerType()
925 void VisitObjCObjectType(const ObjCObjectType *T) { in VisitObjCObjectType() argument
926 AddDecl(T->getInterface()); in VisitObjCObjectType()
928 auto TypeArgs = T->getTypeArgsAsWritten(); in VisitObjCObjectType()
934 auto Protocols = T->getProtocols(); in VisitObjCObjectType()
940 Hash.AddBoolean(T->isKindOfType()); in VisitObjCObjectType()
942 VisitType(T); in VisitObjCObjectType()
945 void VisitObjCInterfaceType(const ObjCInterfaceType *T) { in VisitObjCInterfaceType() argument
947 VisitObjCObjectType(T); in VisitObjCInterfaceType()
950 void VisitObjCTypeParamType(const ObjCTypeParamType *T) { in VisitObjCTypeParamType() argument
951 AddDecl(T->getDecl()); in VisitObjCTypeParamType()
952 auto Protocols = T->getProtocols(); in VisitObjCTypeParamType()
958 VisitType(T); in VisitObjCTypeParamType()
961 void VisitPackExpansionType(const PackExpansionType *T) { in VisitPackExpansionType() argument
962 AddQualType(T->getPattern()); in VisitPackExpansionType()
963 VisitType(T); in VisitPackExpansionType()
966 void VisitParenType(const ParenType *T) { in VisitParenType() argument
967 AddQualType(T->getInnerType()); in VisitParenType()
968 VisitType(T); in VisitParenType()
971 void VisitPipeType(const PipeType *T) { in VisitPipeType() argument
972 AddQualType(T->getElementType()); in VisitPipeType()
973 Hash.AddBoolean(T->isReadOnly()); in VisitPipeType()
974 VisitType(T); in VisitPipeType()
977 void VisitPointerType(const PointerType *T) { in VisitPointerType() argument
978 AddQualType(T->getPointeeType()); in VisitPointerType()
979 VisitType(T); in VisitPointerType()
982 void VisitReferenceType(const ReferenceType *T) { in VisitReferenceType() argument
983 AddQualType(T->getPointeeTypeAsWritten()); in VisitReferenceType()
984 VisitType(T); in VisitReferenceType()
987 void VisitLValueReferenceType(const LValueReferenceType *T) { in VisitLValueReferenceType() argument
988 VisitReferenceType(T); in VisitLValueReferenceType()
991 void VisitRValueReferenceType(const RValueReferenceType *T) { in VisitRValueReferenceType() argument
992 VisitReferenceType(T); in VisitRValueReferenceType()
996 VisitSubstTemplateTypeParmPackType(const SubstTemplateTypeParmPackType *T) { in VisitSubstTemplateTypeParmPackType() argument
997 AddType(T->getReplacedParameter()); in VisitSubstTemplateTypeParmPackType()
998 Hash.AddTemplateArgument(T->getArgumentPack()); in VisitSubstTemplateTypeParmPackType()
999 VisitType(T); in VisitSubstTemplateTypeParmPackType()
1002 void VisitSubstTemplateTypeParmType(const SubstTemplateTypeParmType *T) { in VisitSubstTemplateTypeParmType() argument
1003 AddType(T->getReplacedParameter()); in VisitSubstTemplateTypeParmType()
1004 AddQualType(T->getReplacementType()); in VisitSubstTemplateTypeParmType()
1005 VisitType(T); in VisitSubstTemplateTypeParmType()
1008 void VisitTagType(const TagType *T) { in VisitTagType() argument
1009 AddDecl(T->getDecl()); in VisitTagType()
1010 VisitType(T); in VisitTagType()
1013 void VisitRecordType(const RecordType *T) { VisitTagType(T); } in VisitRecordType() argument
1014 void VisitEnumType(const EnumType *T) { VisitTagType(T); } in VisitEnumType() argument
1016 void VisitTemplateSpecializationType(const TemplateSpecializationType *T) { in VisitTemplateSpecializationType() argument
1017 ID.AddInteger(T->getNumArgs()); in VisitTemplateSpecializationType()
1018 for (const auto &TA : T->template_arguments()) { in VisitTemplateSpecializationType()
1021 Hash.AddTemplateName(T->getTemplateName()); in VisitTemplateSpecializationType()
1022 VisitType(T); in VisitTemplateSpecializationType()
1025 void VisitTemplateTypeParmType(const TemplateTypeParmType *T) { in VisitTemplateTypeParmType() argument
1026 ID.AddInteger(T->getDepth()); in VisitTemplateTypeParmType()
1027 ID.AddInteger(T->getIndex()); in VisitTemplateTypeParmType()
1028 Hash.AddBoolean(T->isParameterPack()); in VisitTemplateTypeParmType()
1029 AddDecl(T->getDecl()); in VisitTemplateTypeParmType()
1032 void VisitTypedefType(const TypedefType *T) { in VisitTypedefType() argument
1033 AddDecl(T->getDecl()); in VisitTypedefType()
1034 QualType UnderlyingType = T->getDecl()->getUnderlyingType(); in VisitTypedefType()
1051 VisitType(T); in VisitTypedefType()
1054 void VisitTypeOfExprType(const TypeOfExprType *T) { in VisitTypeOfExprType() argument
1055 AddStmt(T->getUnderlyingExpr()); in VisitTypeOfExprType()
1056 Hash.AddBoolean(T->isSugared()); in VisitTypeOfExprType()
1057 if (T->isSugared()) in VisitTypeOfExprType()
1058 AddQualType(T->desugar()); in VisitTypeOfExprType()
1060 VisitType(T); in VisitTypeOfExprType()
1062 void VisitTypeOfType(const TypeOfType *T) { in VisitTypeOfType() argument
1063 AddQualType(T->getUnderlyingType()); in VisitTypeOfType()
1064 VisitType(T); in VisitTypeOfType()
1067 void VisitTypeWithKeyword(const TypeWithKeyword *T) { in VisitTypeWithKeyword() argument
1068 ID.AddInteger(T->getKeyword()); in VisitTypeWithKeyword()
1069 VisitType(T); in VisitTypeWithKeyword()
1072 void VisitDependentNameType(const DependentNameType *T) { in VisitDependentNameType() argument
1073 AddNestedNameSpecifier(T->getQualifier()); in VisitDependentNameType()
1074 AddIdentifierInfo(T->getIdentifier()); in VisitDependentNameType()
1075 VisitTypeWithKeyword(T); in VisitDependentNameType()
1079 const DependentTemplateSpecializationType *T) { in VisitDependentTemplateSpecializationType() argument
1080 AddIdentifierInfo(T->getIdentifier()); in VisitDependentTemplateSpecializationType()
1081 AddNestedNameSpecifier(T->getQualifier()); in VisitDependentTemplateSpecializationType()
1082 ID.AddInteger(T->getNumArgs()); in VisitDependentTemplateSpecializationType()
1083 for (const auto &TA : T->template_arguments()) { in VisitDependentTemplateSpecializationType()
1086 VisitTypeWithKeyword(T); in VisitDependentTemplateSpecializationType()
1089 void VisitElaboratedType(const ElaboratedType *T) { in VisitElaboratedType() argument
1090 AddNestedNameSpecifier(T->getQualifier()); in VisitElaboratedType()
1091 AddQualType(T->getNamedType()); in VisitElaboratedType()
1092 VisitTypeWithKeyword(T); in VisitElaboratedType()
1095 void VisitUnaryTransformType(const UnaryTransformType *T) { in VisitUnaryTransformType() argument
1096 AddQualType(T->getUnderlyingType()); in VisitUnaryTransformType()
1097 AddQualType(T->getBaseType()); in VisitUnaryTransformType()
1098 VisitType(T); in VisitUnaryTransformType()
1101 void VisitUnresolvedUsingType(const UnresolvedUsingType *T) { in VisitUnresolvedUsingType() argument
1102 AddDecl(T->getDecl()); in VisitUnresolvedUsingType()
1103 VisitType(T); in VisitUnresolvedUsingType()
1106 void VisitVectorType(const VectorType *T) { in VisitVectorType() argument
1107 AddQualType(T->getElementType()); in VisitVectorType()
1108 ID.AddInteger(T->getNumElements()); in VisitVectorType()
1109 ID.AddInteger(T->getVectorKind()); in VisitVectorType()
1110 VisitType(T); in VisitVectorType()
1113 void VisitExtVectorType(const ExtVectorType * T) { in VisitExtVectorType() argument
1114 VisitVectorType(T); in VisitExtVectorType()
1119 void ODRHash::AddType(const Type *T) { in AddType() argument
1120 assert(T && "Expecting non-null pointer."); in AddType()
1121 ODRTypeVisitor(ID, *this).Visit(T); in AddType()
1124 void ODRHash::AddQualType(QualType T) { in AddQualType() argument
1125 AddBoolean(T.isNull()); in AddQualType()
1126 if (T.isNull()) in AddQualType()
1128 SplitQualType split = T.split(); in AddQualType()