Lines Matching +full:dc +full:- +full:id

1 //===-- ODRHash.cpp - Hashing to diagnose ODR failures ----------*- C++ -*-===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
13 //===----------------------------------------------------------------------===//
25 assert(S && "Expecting non-null pointer."); in AddStmt()
26 S->ProcessODRHash(ID, *this); in AddStmt()
30 assert(II && "Expecting non-null pointer."); in AddIdentifierInfo()
31 ID.AddString(II->getName()); in AddIdentifierInfo()
49 ID.AddInteger(Result.first->second); in AddDeclarationNameImpl()
61 ID.AddInteger(Kind); in AddDeclarationNameImpl()
74 ID.AddInteger(NumArgs); in AddDeclarationNameImpl()
76 // slots. And if there are no arguments, compare the first-and-only slot. in AddDeclarationNameImpl()
92 ID.AddInteger(Name.getCXXOverloadedOperator()); in AddDeclarationNameImpl()
113 assert(NNS && "Expecting non-null pointer."); in AddNestedNameSpecifier()
114 const auto *Prefix = NNS->getPrefix(); in AddNestedNameSpecifier()
119 auto Kind = NNS->getKind(); in AddNestedNameSpecifier()
120 ID.AddInteger(Kind); in AddNestedNameSpecifier()
123 AddIdentifierInfo(NNS->getAsIdentifier()); in AddNestedNameSpecifier()
126 AddDecl(NNS->getAsNamespace()); in AddNestedNameSpecifier()
129 AddDecl(NNS->getAsNamespaceAlias()); in AddNestedNameSpecifier()
133 AddType(NNS->getAsType()); in AddNestedNameSpecifier()
143 ID.AddInteger(Kind); in AddTemplateName()
151 if (NestedNameSpecifier *NNS = QTN->getQualifier()) in AddTemplateName()
153 AddBoolean(QTN->hasTemplateKeyword()); in AddTemplateName()
154 AddTemplateName(QTN->getUnderlyingTemplate()); in AddTemplateName()
170 ID.AddInteger(Kind); in AddTemplateArgument()
182 ID.AddPointer(nullptr); in AddTemplateArgument()
187 TA.getAsIntegral().Profile(ID); in AddTemplateArgument()
202 ID.AddInteger(TA.pack_size()); in AddTemplateArgument()
211 assert(TPL && "Expecting non-null pointer."); in AddTemplateParameterList()
213 ID.AddInteger(TPL->size()); in AddTemplateParameterList()
214 for (auto *ND : TPL->asArray()) { in AddTemplateParameterList()
222 ID.clear(); in clear()
228 // ID.AddBoolean in CalculateHash()
240 ID.AddInteger(value); in CalculateHash()
249 ID.AddInteger(value); in CalculateHash()
254 return ID.computeStableHash(); in CalculateHash()
262 llvm::FoldingSetNodeID &ID; member in __anonb4317f1a0111::ODRDeclVisitor
266 ODRDeclVisitor(llvm::FoldingSetNodeID &ID, ODRHash &Hash) in ODRDeclVisitor() argument
267 : ID(ID), Hash(Hash) {} in ODRDeclVisitor()
299 ID.AddInteger(D->getKind()); in Visit()
304 Hash.AddDeclarationName(D->getDeclName()); in VisitNamedDecl()
309 if (auto *DD = dyn_cast<DeclaratorDecl>(D); DD && DD->getTypeSourceInfo()) in VisitValueDecl()
310 AddQualType(DD->getTypeSourceInfo()->getType()); in VisitValueDecl()
316 Hash.AddBoolean(D->isStaticLocal()); in VisitVarDecl()
317 Hash.AddBoolean(D->isConstexpr()); in VisitVarDecl()
318 const bool HasInit = D->hasInit(); in VisitVarDecl()
321 AddStmt(D->getInit()); in VisitVarDecl()
332 ID.AddInteger(D->getAccess()); in VisitAccessSpecDecl()
337 AddStmt(D->getAssertExpr()); in VisitStaticAssertDecl()
338 AddStmt(D->getMessage()); in VisitStaticAssertDecl()
344 const bool IsBitfield = D->isBitField(); in VisitFieldDecl()
348 AddStmt(D->getBitWidth()); in VisitFieldDecl()
351 Hash.AddBoolean(D->isMutable()); in VisitFieldDecl()
352 AddStmt(D->getInClassInitializer()); in VisitFieldDecl()
358 ID.AddInteger(D->getCanonicalAccessControl()); in VisitObjCIvarDecl()
363 ID.AddInteger(D->getPropertyAttributes()); in VisitObjCPropertyDecl()
364 ID.AddInteger(D->getPropertyImplementation()); in VisitObjCPropertyDecl()
365 AddQualType(D->getTypeSourceInfo()->getType()); in VisitObjCPropertyDecl()
373 ID.AddInteger(D->getODRHash()); in VisitFunctionDecl()
385 ID.AddInteger(Method->getDeclKind()); in VisitObjCMethodDecl()
386 Hash.AddBoolean(Method->isInstanceMethod()); // false if class method in VisitObjCMethodDecl()
387 Hash.AddBoolean(Method->isVariadic()); in VisitObjCMethodDecl()
388 Hash.AddBoolean(Method->isSynthesizedAccessorStub()); in VisitObjCMethodDecl()
389 Hash.AddBoolean(Method->isDefined()); in VisitObjCMethodDecl()
390 Hash.AddBoolean(Method->isDirectMethod()); in VisitObjCMethodDecl()
391 Hash.AddBoolean(Method->isThisDeclarationADesignatedInitializer()); in VisitObjCMethodDecl()
392 Hash.AddBoolean(Method->hasSkippedBody()); in VisitObjCMethodDecl()
394 ID.AddInteger(llvm::to_underlying(Method->getImplementationControl())); in VisitObjCMethodDecl()
395 ID.AddInteger(Method->getMethodFamily()); in VisitObjCMethodDecl()
396 ImplicitParamDecl *Cmd = Method->getCmdDecl(); in VisitObjCMethodDecl()
399 ID.AddInteger(llvm::to_underlying(Cmd->getParameterKind())); in VisitObjCMethodDecl()
401 ImplicitParamDecl *Self = Method->getSelfDecl(); in VisitObjCMethodDecl()
404 ID.AddInteger(llvm::to_underlying(Self->getParameterKind())); in VisitObjCMethodDecl()
408 if (Method->getReturnTypeSourceInfo()) in VisitObjCMethodDecl()
409 AddQualType(Method->getReturnTypeSourceInfo()->getType()); in VisitObjCMethodDecl()
411 ID.AddInteger(Method->param_size()); in VisitObjCMethodDecl()
412 for (auto Param : Method->parameters()) in VisitObjCMethodDecl()
415 if (Method->hasBody()) { in VisitObjCMethodDecl()
416 const bool IsDefinition = Method->isThisDeclarationADefinition(); in VisitObjCMethodDecl()
419 Stmt *Body = Method->getBody(); in VisitObjCMethodDecl()
424 // Filter out sub-Decls which will not be processed in order to get an in VisitObjCMethodDecl()
427 for (Decl *SubDecl : Method->decls()) in VisitObjCMethodDecl()
431 ID.AddInteger(Decls.size()); in VisitObjCMethodDecl()
443 AddQualType(D->getUnderlyingType()); in VisitTypedefNameDecl()
457 TypeSourceInfo *TSI = D->getFriendType(); in VisitFriendDecl()
460 AddQualType(TSI->getType()); in VisitFriendDecl()
462 AddDecl(D->getFriendDecl()); in VisitFriendDecl()
469 D->hasDefaultArgument() && !D->defaultArgumentWasInherited(); in VisitTemplateTypeParmDecl()
472 AddTemplateArgument(D->getDefaultArgument().getArgument()); in VisitTemplateTypeParmDecl()
474 Hash.AddBoolean(D->isParameterPack()); in VisitTemplateTypeParmDecl()
476 const TypeConstraint *TC = D->getTypeConstraint(); in VisitTemplateTypeParmDecl()
479 AddStmt(TC->getImmediatelyDeclaredConstraint()); in VisitTemplateTypeParmDecl()
487 D->hasDefaultArgument() && !D->defaultArgumentWasInherited(); in VisitNonTypeTemplateParmDecl()
490 AddTemplateArgument(D->getDefaultArgument().getArgument()); in VisitNonTypeTemplateParmDecl()
492 Hash.AddBoolean(D->isParameterPack()); in VisitNonTypeTemplateParmDecl()
500 D->hasDefaultArgument() && !D->defaultArgumentWasInherited(); in VisitTemplateTemplateParmDecl()
503 AddTemplateArgument(D->getDefaultArgument().getArgument()); in VisitTemplateTemplateParmDecl()
505 Hash.AddBoolean(D->isParameterPack()); in VisitTemplateTemplateParmDecl()
511 Hash.AddTemplateParameterList(D->getTemplateParameters()); in VisitTemplateDecl()
517 Hash.AddBoolean(D->isMemberSpecialization()); in VisitRedeclarableTemplateDecl()
522 AddDecl(D->getTemplatedDecl()); in VisitFunctionTemplateDecl()
523 ID.AddInteger(D->getTemplatedDecl()->getODRHash()); in VisitFunctionTemplateDecl()
528 AddStmt(D->getInitExpr()); in VisitEnumConstantDecl()
537 if (D->isImplicit()) return false; in isSubDeclToBeProcessed()
538 if (D->getDeclContext() != Parent) return false; in isSubDeclToBeProcessed()
540 switch (D->getKind()) { in isSubDeclToBeProcessed()
563 assert(D && "Expecting non-null pointer."); in AddSubDecl()
565 ODRDeclVisitor(ID, *this).Visit(D); in AddSubDecl()
569 assert(Record && Record->hasDefinition() && in AddCXXRecordDecl()
570 "Expected non-null record to be a definition."); in AddCXXRecordDecl()
572 const DeclContext *DC = Record; in AddCXXRecordDecl() local
573 while (DC) { in AddCXXRecordDecl()
574 if (isa<ClassTemplateSpecializationDecl>(DC)) { in AddCXXRecordDecl()
577 DC = DC->getParent(); in AddCXXRecordDecl()
582 // Filter out sub-Decls which will not be processed in order to get an in AddCXXRecordDecl()
585 for (Decl *SubDecl : Record->decls()) { in AddCXXRecordDecl()
590 Function->getODRHash(); in AddCXXRecordDecl()
595 ID.AddInteger(Decls.size()); in AddCXXRecordDecl()
600 const ClassTemplateDecl *TD = Record->getDescribedClassTemplate(); in AddCXXRecordDecl()
603 AddTemplateParameterList(TD->getTemplateParameters()); in AddCXXRecordDecl()
606 ID.AddInteger(Record->getNumBases()); in AddCXXRecordDecl()
607 auto Bases = Record->bases(); in AddCXXRecordDecl()
609 AddQualType(Base.getTypeSourceInfo()->getType()); in AddCXXRecordDecl()
610 ID.AddInteger(Base.isVirtual()); in AddCXXRecordDecl()
611 ID.AddInteger(Base.getAccessSpecifierAsWritten()); in AddCXXRecordDecl()
620 // Filter out sub-Decls which will not be processed in order to get an in AddRecordDecl()
623 for (Decl *SubDecl : Record->decls()) { in AddRecordDecl()
628 ID.AddInteger(Decls.size()); in AddRecordDecl()
636 auto *SuperClass = IF->getSuperClass(); in AddObjCInterfaceDecl()
639 ID.AddInteger(SuperClass->getODRHash()); in AddObjCInterfaceDecl()
642 ID.AddInteger(IF->getReferencedProtocols().size()); in AddObjCInterfaceDecl()
643 for (const ObjCProtocolDecl *RefP : IF->protocols()) { in AddObjCInterfaceDecl()
645 AddDeclarationName(RefP->getDeclName()); in AddObjCInterfaceDecl()
648 // Filter out sub-Decls which will not be processed in order to get an in AddObjCInterfaceDecl()
651 for (Decl *SubDecl : IF->decls()) in AddObjCInterfaceDecl()
655 ID.AddInteger(Decls.size()); in AddObjCInterfaceDecl()
662 assert(Function && "Expecting non-null pointer."); in AddFunctionDecl()
665 const DeclContext *DC = Function; in AddFunctionDecl() local
666 while (DC) { in AddFunctionDecl()
667 if (isa<ClassTemplateSpecializationDecl>(DC)) return; in AddFunctionDecl()
668 if (auto *F = dyn_cast<FunctionDecl>(DC)) { in AddFunctionDecl()
669 if (F->isFunctionTemplateSpecialization()) { in AddFunctionDecl()
670 if (!isa<CXXMethodDecl>(DC)) return; in AddFunctionDecl()
671 if (DC->getLexicalParent()->isFileContext()) return; in AddFunctionDecl()
674 if (F->getDependentSpecializationInfo()) in AddFunctionDecl()
680 DC = DC->getParent(); in AddFunctionDecl()
683 ID.AddInteger(Function->getDeclKind()); in AddFunctionDecl()
685 const auto *SpecializationArgs = Function->getTemplateSpecializationArgs(); in AddFunctionDecl()
688 ID.AddInteger(SpecializationArgs->size()); in AddFunctionDecl()
689 for (const TemplateArgument &TA : SpecializationArgs->asArray()) { in AddFunctionDecl()
695 AddBoolean(Method->isConst()); in AddFunctionDecl()
696 AddBoolean(Method->isVolatile()); in AddFunctionDecl()
699 ID.AddInteger(Function->getStorageClass()); in AddFunctionDecl()
700 AddBoolean(Function->isInlineSpecified()); in AddFunctionDecl()
701 AddBoolean(Function->isVirtualAsWritten()); in AddFunctionDecl()
702 AddBoolean(Function->isPureVirtual()); in AddFunctionDecl()
703 AddBoolean(Function->isDeletedAsWritten()); in AddFunctionDecl()
704 AddBoolean(Function->isExplicitlyDefaulted()); in AddFunctionDecl()
706 StringLiteral *DeletedMessage = Function->getDeletedMessage(); in AddFunctionDecl()
710 ID.AddString(DeletedMessage->getBytes()); in AddFunctionDecl()
714 AddQualType(Function->getReturnType()); in AddFunctionDecl()
716 ID.AddInteger(Function->param_size()); in AddFunctionDecl()
717 for (auto *Param : Function->parameters()) in AddFunctionDecl()
725 const bool HasBody = Function->isThisDeclarationADefinition() && in AddFunctionDecl()
726 !Function->isDefaulted() && !Function->isDeleted() && in AddFunctionDecl()
727 !Function->isLateTemplateParsed(); in AddFunctionDecl()
733 auto *Body = Function->getBody(); in AddFunctionDecl()
738 // Filter out sub-Decls which will not be processed in order to get an in AddFunctionDecl()
741 for (Decl *SubDecl : Function->decls()) { in AddFunctionDecl()
747 ID.AddInteger(Decls.size()); in AddFunctionDecl()
755 AddDeclarationName(Enum->getDeclName()); in AddEnumDecl()
757 AddBoolean(Enum->isScoped()); in AddEnumDecl()
758 if (Enum->isScoped()) in AddEnumDecl()
759 AddBoolean(Enum->isScopedUsingClassTag()); in AddEnumDecl()
761 if (Enum->getIntegerTypeSourceInfo()) in AddEnumDecl()
762 AddQualType(Enum->getIntegerType().getCanonicalType()); in AddEnumDecl()
764 // Filter out sub-Decls which will not be processed in order to get an in AddEnumDecl()
767 for (Decl *SubDecl : Enum->decls()) { in AddEnumDecl()
774 ID.AddInteger(Decls.size()); in AddEnumDecl()
785 ID.AddInteger(P->getReferencedProtocols().size()); in AddObjCProtocolDecl()
786 for (const ObjCProtocolDecl *RefP : P->protocols()) { in AddObjCProtocolDecl()
788 AddDeclarationName(RefP->getDeclName()); in AddObjCProtocolDecl()
791 // Filter out sub-Decls which will not be processed in order to get an in AddObjCProtocolDecl()
794 for (Decl *SubDecl : P->decls()) { in AddObjCProtocolDecl()
800 ID.AddInteger(Decls.size()); in AddObjCProtocolDecl()
807 assert(D && "Expecting non-null pointer."); in AddDecl()
808 D = D->getCanonicalDecl(); in AddDecl()
813 ID.AddInteger(D->getKind()); in AddDecl()
817 AddDeclarationName(ND->getDeclName()); in AddDecl()
823 const TemplateArgumentList &List = Specialization->getTemplateArgs(); in AddDecl()
824 ID.AddInteger(List.size()); in AddDecl()
835 llvm::FoldingSetNodeID &ID; member in __anonb4317f1a0211::ODRTypeVisitor
839 ODRTypeVisitor(llvm::FoldingSetNodeID &ID, ODRHash &Hash) in ODRTypeVisitor() argument
840 : ID(ID), Hash(Hash) {} in ODRTypeVisitor()
882 ID.AddInteger(Quals.getAsOpaqueValue()); in VisitQualifiers()
893 const TypedefNameDecl *D = TypedefT->getDecl(); in RemoveTypedef()
894 QualType UnderlyingType = D->getUnderlyingType(); in RemoveTypedef()
905 if (ElaboratedT->getQualifier() != nullptr) { in RemoveTypedef()
909 QualType NamedType = ElaboratedT->getNamedType(); in RemoveTypedef()
919 const IdentifierInfo *TypedefII = TypedefT->getDecl()->getIdentifier(); in RemoveTypedef()
920 const IdentifierInfo *RecordII = RecordT->getDecl()->getIdentifier(); in RemoveTypedef()
922 TypedefII->getName() != RecordII->getName()) { in RemoveTypedef()
931 ID.AddInteger(T->getTypeClass()); in Visit()
938 AddQualType(T->getOriginalType()); in VisitAdjustedType()
950 AddQualType(T->getElementType()); in VisitArrayType()
951 ID.AddInteger(llvm::to_underlying(T->getSizeModifier())); in VisitArrayType()
952 VisitQualifiers(T->getIndexTypeQualifiers()); in VisitArrayType()
956 T->getSize().Profile(ID); in VisitConstantArrayType()
965 AddStmt(T->getSizeExpr()); in VisitDependentSizedArrayType()
974 AddStmt(T->getSizeExpr()); in VisitVariableArrayType()
979 ID.AddInteger(T->getAttrKind()); in VisitAttributedType()
980 AddQualType(T->getModifiedType()); in VisitAttributedType()
986 AddQualType(T->getPointeeType()); in VisitBlockPointerType()
991 ID.AddInteger(T->getKind()); in VisitBuiltinType()
996 AddQualType(T->getElementType()); in VisitComplexType()
1001 AddStmt(T->getUnderlyingExpr()); in VisitDecltypeType()
1010 AddQualType(T->getDeducedType()); in VisitDeducedType()
1015 ID.AddInteger((unsigned)T->getKeyword()); in VisitAutoType()
1016 ID.AddInteger(T->isConstrained()); in VisitAutoType()
1017 if (T->isConstrained()) { in VisitAutoType()
1018 AddDecl(T->getTypeConstraintConcept()); in VisitAutoType()
1019 ID.AddInteger(T->getTypeConstraintArguments().size()); in VisitAutoType()
1020 for (const auto &TA : T->getTypeConstraintArguments()) in VisitAutoType()
1028 Hash.AddTemplateName(T->getTemplateName()); in VisitDeducedTemplateSpecializationType()
1033 AddQualType(T->getPointeeType()); in VisitDependentAddressSpaceType()
1034 AddStmt(T->getAddrSpaceExpr()); in VisitDependentAddressSpaceType()
1039 AddQualType(T->getElementType()); in VisitDependentSizedExtVectorType()
1040 AddStmt(T->getSizeExpr()); in VisitDependentSizedExtVectorType()
1045 AddQualType(T->getReturnType()); in VisitFunctionType()
1046 T->getExtInfo().Profile(ID); in VisitFunctionType()
1047 Hash.AddBoolean(T->isConst()); in VisitFunctionType()
1048 Hash.AddBoolean(T->isVolatile()); in VisitFunctionType()
1049 Hash.AddBoolean(T->isRestrict()); in VisitFunctionType()
1058 ID.AddInteger(T->getNumParams()); in VisitFunctionProtoType()
1059 for (auto ParamType : T->getParamTypes()) in VisitFunctionProtoType()
1066 AddDecl(T->getDecl()); in VisitInjectedClassNameType()
1071 AddQualType(T->getPointeeType()); in VisitMemberPointerType()
1072 AddType(T->getClass()); in VisitMemberPointerType()
1077 AddQualType(T->getPointeeType()); in VisitObjCObjectPointerType()
1082 AddDecl(T->getInterface()); in VisitObjCObjectType()
1084 auto TypeArgs = T->getTypeArgsAsWritten(); in VisitObjCObjectType()
1085 ID.AddInteger(TypeArgs.size()); in VisitObjCObjectType()
1090 auto Protocols = T->getProtocols(); in VisitObjCObjectType()
1091 ID.AddInteger(Protocols.size()); in VisitObjCObjectType()
1096 Hash.AddBoolean(T->isKindOfType()); in VisitObjCObjectType()
1107 AddDecl(T->getDecl()); in VisitObjCTypeParamType()
1108 auto Protocols = T->getProtocols(); in VisitObjCTypeParamType()
1109 ID.AddInteger(Protocols.size()); in VisitObjCTypeParamType()
1118 AddQualType(T->getPattern()); in VisitPackExpansionType()
1123 AddQualType(T->getInnerType()); in VisitParenType()
1128 AddQualType(T->getElementType()); in VisitPipeType()
1129 Hash.AddBoolean(T->isReadOnly()); in VisitPipeType()
1134 AddQualType(T->getPointeeType()); in VisitPointerType()
1139 AddQualType(T->getPointeeTypeAsWritten()); in VisitReferenceType()
1153 AddDecl(T->getAssociatedDecl()); in VisitSubstTemplateTypeParmPackType()
1154 Hash.AddTemplateArgument(T->getArgumentPack()); in VisitSubstTemplateTypeParmPackType()
1159 AddDecl(T->getAssociatedDecl()); in VisitSubstTemplateTypeParmType()
1160 AddQualType(T->getReplacementType()); in VisitSubstTemplateTypeParmType()
1165 AddDecl(T->getDecl()); in VisitTagType()
1173 ID.AddInteger(T->template_arguments().size()); in VisitTemplateSpecializationType()
1174 for (const auto &TA : T->template_arguments()) { in VisitTemplateSpecializationType()
1177 Hash.AddTemplateName(T->getTemplateName()); in VisitTemplateSpecializationType()
1182 ID.AddInteger(T->getDepth()); in VisitTemplateTypeParmType()
1183 ID.AddInteger(T->getIndex()); in VisitTemplateTypeParmType()
1184 Hash.AddBoolean(T->isParameterPack()); in VisitTemplateTypeParmType()
1185 AddDecl(T->getDecl()); in VisitTemplateTypeParmType()
1189 AddDecl(T->getDecl()); in VisitTypedefType()
1194 AddStmt(T->getUnderlyingExpr()); in VisitTypeOfExprType()
1195 Hash.AddBoolean(T->isSugared()); in VisitTypeOfExprType()
1200 AddQualType(T->getUnmodifiedType()); in VisitTypeOfType()
1205 ID.AddInteger(llvm::to_underlying(T->getKeyword())); in VisitTypeWithKeyword()
1210 AddNestedNameSpecifier(T->getQualifier()); in VisitDependentNameType()
1211 AddIdentifierInfo(T->getIdentifier()); in VisitDependentNameType()
1217 AddIdentifierInfo(T->getIdentifier()); in VisitDependentTemplateSpecializationType()
1218 AddNestedNameSpecifier(T->getQualifier()); in VisitDependentTemplateSpecializationType()
1219 ID.AddInteger(T->template_arguments().size()); in VisitDependentTemplateSpecializationType()
1220 for (const auto &TA : T->template_arguments()) { in VisitDependentTemplateSpecializationType()
1227 AddNestedNameSpecifier(T->getQualifier()); in VisitElaboratedType()
1228 AddQualType(T->getNamedType()); in VisitElaboratedType()
1233 AddQualType(T->getUnderlyingType()); in VisitUnaryTransformType()
1234 AddQualType(T->getBaseType()); in VisitUnaryTransformType()
1239 AddDecl(T->getDecl()); in VisitUnresolvedUsingType()
1244 AddQualType(T->getElementType()); in VisitVectorType()
1245 ID.AddInteger(T->getNumElements()); in VisitVectorType()
1246 ID.AddInteger(llvm::to_underlying(T->getVectorKind())); in VisitVectorType()
1257 assert(T && "Expecting non-null pointer."); in AddType()
1258 ODRTypeVisitor(ID, *this).Visit(T); in AddType()
1266 ID.AddInteger(split.Quals.getAsOpaqueValue()); in AddQualType()
1275 ID.AddInteger(Value.getKind()); in AddStructuralValue()
1285 ID.AddInteger(Value.getLValueOffset().getQuantity()); in AddStructuralValue()
1291 ID.AddInteger(Value.getLValueOffset().getQuantity()); in AddStructuralValue()
1297 if (const auto *AT = TypeSoFar->getAsArrayTypeUnsafe()) { in AddStructuralValue()
1299 OnePastTheEnd |= CAT->getSize() == E.getAsArrayIndex(); in AddStructuralValue()
1300 TypeSoFar = AT->getElementType(); in AddStructuralValue()
1304 if (FD->getParent()->isUnion()) in AddStructuralValue()
1305 ID.AddInteger(FD->getFieldIndex()); in AddStructuralValue()
1306 TypeSoFar = FD->getType(); in AddStructuralValue()
1309 D->getASTContext().getRecordType(cast<CXXRecordDecl>(D)); in AddStructuralValue()
1321 ID.AddInteger(Val); in AddStructuralValue()
1328 ID.AddInteger( in AddStructuralValue()
1329 D->getASTContext().getMemberPointerPathAdjustment(Value).getQuantity()); in AddStructuralValue()
1333 Value.Profile(ID); in AddStructuralValue()