Lines Matching refs:D2
101 Decl *D1, Decl *D2);
1257 RecordDecl *D2 = Field2->getType()->castAs<RecordType>()->getDecl(); in IsStructurallyEquivalent() local
1258 return IsStructurallyEquivalent(Context, D1, D2); in IsStructurallyEquivalent()
1363 CXXRecordDecl *D1, CXXRecordDecl *D2) { in IsStructurallyEquivalentLambdas() argument
1364 assert(D1->isLambda() && D2->isLambda() && in IsStructurallyEquivalentLambdas()
1367 D2->getLambdaCallOperator())) in IsStructurallyEquivalentLambdas()
1375 RecordDecl *D2) { in IsRecordContextStructurallyEquivalent() argument
1381 DeclContext *DC2 = D2->getDeclContext()->getNonTransparentContext(); in IsRecordContextStructurallyEquivalent()
1411 RecordDecl *D1, RecordDecl *D2) { in IsStructurallyEquivalent() argument
1417 IdentifierInfo *Name2 = D2->getIdentifier(); in IsStructurallyEquivalent()
1418 if (!Name2 && D2->getTypedefNameForAnonDecl()) in IsStructurallyEquivalent()
1419 Name2 = D2->getTypedefNameForAnonDecl()->getIdentifier(); in IsStructurallyEquivalent()
1423 if (D1->isUnion() != D2->isUnion()) { in IsStructurallyEquivalent()
1425 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1427 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1434 if (!D1->getDeclName() && !D2->getDeclName()) { in IsStructurallyEquivalent()
1441 D2)) { in IsStructurallyEquivalent()
1451 if (!IsRecordContextStructurallyEquivalent(D1, D2)) in IsStructurallyEquivalent()
1457 const auto *Spec2 = dyn_cast<ClassTemplateSpecializationDecl>(D2); in IsStructurallyEquivalent()
1482 D2 = D2->getDefinition(); in IsStructurallyEquivalent()
1483 if (!D1 || !D2) in IsStructurallyEquivalent()
1492 if (D1->hasExternalLexicalStorage() || D2->hasExternalLexicalStorage()) in IsStructurallyEquivalent()
1497 if (D1->isBeingDefined() || D2->isBeingDefined()) in IsStructurallyEquivalent()
1501 if (auto *D2CXX = dyn_cast<CXXRecordDecl>(D2)) { in IsStructurallyEquivalent()
1516 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1519 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1520 Context.Diag2(D2->getLocation(), diag::note_odr_number_of_bases) in IsStructurallyEquivalent()
1536 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1539 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1551 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1554 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1572 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1577 Context.Diag2(D2->getLocation(), diag::note_odr_missing_friend); in IsStructurallyEquivalent()
1584 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1597 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1600 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1608 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1611 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1615 Context.Diag2(D2->getLocation(), diag::note_odr_missing_base); in IsStructurallyEquivalent()
1622 QualType D2Type = Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1623 RecordDecl::field_iterator Field2 = D2->field_begin(), in IsStructurallyEquivalent()
1624 Field2End = D2->field_end(); in IsStructurallyEquivalent()
1630 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1633 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1636 Context.Diag2(D2->getLocation(), diag::note_odr_missing_field); in IsStructurallyEquivalent()
1647 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1649 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1662 EnumConstantDecl *D2) { in IsStructurallyEquivalent() argument
1664 const llvm::APSInt &ToVal = D2->getInitVal(); in IsStructurallyEquivalent()
1672 if (!IsStructurallyEquivalent(D1->getIdentifier(), D2->getIdentifier())) in IsStructurallyEquivalent()
1677 D2->getInitExpr()); in IsStructurallyEquivalent()
1682 EnumDecl *D1, EnumDecl *D2) { in IsStructurallyEquivalent() argument
1688 IdentifierInfo *Name2 = D2->getIdentifier(); in IsStructurallyEquivalent()
1689 if (!Name2 && D2->getTypedefNameForAnonDecl()) in IsStructurallyEquivalent()
1690 Name2 = D2->getTypedefNameForAnonDecl()->getIdentifier(); in IsStructurallyEquivalent()
1697 D2 = D2->getDefinition(); in IsStructurallyEquivalent()
1698 if (!D1 || !D2) in IsStructurallyEquivalent()
1701 EnumDecl::enumerator_iterator EC2 = D2->enumerator_begin(), in IsStructurallyEquivalent()
1702 EC2End = D2->enumerator_end(); in IsStructurallyEquivalent()
1708 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1711 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1714 Context.Diag2(D2->getLocation(), diag::note_odr_missing_enumerator); in IsStructurallyEquivalent()
1724 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1727 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1739 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1741 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1789 TemplateTypeParmDecl *D2) { in IsStructurallyEquivalent() argument
1790 if (D1->isParameterPack() != D2->isParameterPack()) { in IsStructurallyEquivalent()
1792 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1795 << D2->isParameterPack(); in IsStructurallyEquivalent()
1807 NonTypeTemplateParmDecl *D2) { in IsStructurallyEquivalent() argument
1808 if (D1->isParameterPack() != D2->isParameterPack()) { in IsStructurallyEquivalent()
1810 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1813 << D2->isParameterPack(); in IsStructurallyEquivalent()
1821 if (!IsStructurallyEquivalent(Context, D1->getType(), D2->getType())) { in IsStructurallyEquivalent()
1823 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1826 << D2->getType() << D1->getType(); in IsStructurallyEquivalent()
1838 TemplateTemplateParmDecl *D2) { in IsStructurallyEquivalent() argument
1839 if (D1->isParameterPack() != D2->isParameterPack()) { in IsStructurallyEquivalent()
1841 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1844 << D2->isParameterPack(); in IsStructurallyEquivalent()
1853 D2->getTemplateParameters()); in IsStructurallyEquivalent()
1857 StructuralEquivalenceContext &Ctx, TemplateDecl *D1, TemplateDecl *D2) { in IsTemplateDeclCommonStructurallyEquivalent() argument
1858 if (!IsStructurallyEquivalent(D1->getIdentifier(), D2->getIdentifier())) in IsTemplateDeclCommonStructurallyEquivalent()
1861 if (D1->getNameAsString() != D2->getNameAsString()) in IsTemplateDeclCommonStructurallyEquivalent()
1864 D2->getTemplateParameters()); in IsTemplateDeclCommonStructurallyEquivalent()
1869 ClassTemplateDecl *D2) { in IsStructurallyEquivalent() argument
1871 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
1876 D2->getTemplatedDecl()); in IsStructurallyEquivalent()
1881 FunctionTemplateDecl *D2) { in IsStructurallyEquivalent() argument
1883 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
1888 D2->getTemplatedDecl()->getType()); in IsStructurallyEquivalent()
1893 ConceptDecl *D2) { in IsStructurallyEquivalent() argument
1895 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
1900 D2->getConstraintExpr()); in IsStructurallyEquivalent()
1904 FriendDecl *D1, FriendDecl *D2) { in IsStructurallyEquivalent() argument
1905 if ((D1->getFriendType() && D2->getFriendDecl()) || in IsStructurallyEquivalent()
1906 (D1->getFriendDecl() && D2->getFriendType())) { in IsStructurallyEquivalent()
1909 if (D1->getFriendType() && D2->getFriendType()) in IsStructurallyEquivalent()
1912 D2->getFriendType()->getType()); in IsStructurallyEquivalent()
1913 if (D1->getFriendDecl() && D2->getFriendDecl()) in IsStructurallyEquivalent()
1915 D2->getFriendDecl()); in IsStructurallyEquivalent()
1920 TypedefNameDecl *D1, TypedefNameDecl *D2) { in IsStructurallyEquivalent() argument
1921 if (!IsStructurallyEquivalent(D1->getIdentifier(), D2->getIdentifier())) in IsStructurallyEquivalent()
1925 D2->getUnderlyingType()); in IsStructurallyEquivalent()
1929 FunctionDecl *D1, FunctionDecl *D2) { in IsStructurallyEquivalent() argument
1930 if (!IsStructurallyEquivalent(D1->getIdentifier(), D2->getIdentifier())) in IsStructurallyEquivalent()
1934 if (!D2->isOverloadedOperator()) in IsStructurallyEquivalent()
1936 if (D1->getOverloadedOperator() != D2->getOverloadedOperator()) in IsStructurallyEquivalent()
1941 if (!IsStructurallyEquivalent(Context, D1->getType(), D2->getType())) in IsStructurallyEquivalent()
1948 ObjCIvarDecl *D1, ObjCIvarDecl *D2, in IsStructurallyEquivalent() argument
1950 if (D1->getAccessControl() != D2->getAccessControl()) in IsStructurallyEquivalent()
1954 cast<FieldDecl>(D2), Owner2Type); in IsStructurallyEquivalent()
1958 ObjCIvarDecl *D1, ObjCIvarDecl *D2) { in IsStructurallyEquivalent() argument
1960 Context.ToCtx.getObjCInterfaceType(D2->getContainingInterface()); in IsStructurallyEquivalent()
1961 return IsStructurallyEquivalent(Context, D1, D2, Owner2Type); in IsStructurallyEquivalent()
2012 ObjCCategoryDecl *D2) { in IsStructurallyEquivalent() argument
2013 if (!IsStructurallyEquivalent(D1->getIdentifier(), D2->getIdentifier())) in IsStructurallyEquivalent()
2017 D2->getClassInterface()->getIdentifier())) in IsStructurallyEquivalent()
2021 ObjCCategoryDecl::protocol_iterator Protocol2 = D2->protocol_begin(), in IsStructurallyEquivalent()
2022 Protocol2End = D2->protocol_end(); in IsStructurallyEquivalent()
2036 QualType D2Type = Context.ToCtx.getObjCInterfaceType(D2->getClassInterface()); in IsStructurallyEquivalent()
2037 ObjCCategoryDecl::ivar_iterator Ivar2 = D2->ivar_begin(), in IsStructurallyEquivalent()
2038 Ivar2End = D2->ivar_end(); in IsStructurallyEquivalent()
2051 ObjCCategoryDecl::method_iterator Method2 = D2->meth_begin(), in IsStructurallyEquivalent()
2052 Method2End = D2->meth_end(); in IsStructurallyEquivalent()
2069 Decl *D1, Decl *D2) { in IsStructurallyEquivalent() argument
2073 D2 = D2->getCanonicalDecl(); in IsStructurallyEquivalent()
2074 std::pair<Decl *, Decl *> P{D1, D2}; in IsStructurallyEquivalent()
2200 bool StructuralEquivalenceContext::IsEquivalent(Decl *D1, Decl *D2) { in IsEquivalent() argument
2213 if (!::IsStructurallyEquivalent(*this, D1, D2)) in IsEquivalent()
2237 bool StructuralEquivalenceContext::CheckCommonEquivalence(Decl *D1, Decl *D2) { in CheckCommonEquivalence() argument
2240 TemplateDecl *Template2 = D2->getDescribedTemplate(); in CheckCommonEquivalence()
2252 Decl *D1, Decl *D2) { in CheckKindSpecificEquivalence() argument
2255 if (D1->getKind() != D2->getKind()) in CheckKindSpecificEquivalence()
2265 static_cast<DERIVED##Decl *>(D2)); in CheckKindSpecificEquivalence()
2278 Decl *D2 = P.second; in Finish() local
2281 CheckCommonEquivalence(D1, D2) && CheckKindSpecificEquivalence(D1, D2); in Finish()