Lines Matching refs:D2

101                                      Decl *D1, Decl *D2);
1242 RecordDecl *D2 = Field2->getType()->castAs<RecordType>()->getDecl(); in IsStructurallyEquivalent() local
1243 return IsStructurallyEquivalent(Context, D1, D2); in IsStructurallyEquivalent()
1340 CXXRecordDecl *D1, CXXRecordDecl *D2) { in IsStructurallyEquivalentLambdas() argument
1341 assert(D1->isLambda() && D2->isLambda() && in IsStructurallyEquivalentLambdas()
1344 D2->getLambdaCallOperator())) in IsStructurallyEquivalentLambdas()
1352 RecordDecl *D1, RecordDecl *D2) { in IsStructurallyEquivalent() argument
1358 IdentifierInfo *Name2 = D2->getIdentifier(); in IsStructurallyEquivalent()
1359 if (!Name2 && D2->getTypedefNameForAnonDecl()) in IsStructurallyEquivalent()
1360 Name2 = D2->getTypedefNameForAnonDecl()->getIdentifier(); in IsStructurallyEquivalent()
1364 if (D1->isUnion() != D2->isUnion()) { in IsStructurallyEquivalent()
1366 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1368 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1375 if (!D1->getDeclName() && !D2->getDeclName()) { in IsStructurallyEquivalent()
1382 D2)) { in IsStructurallyEquivalent()
1392 const auto *Spec2 = dyn_cast<ClassTemplateSpecializationDecl>(D2); in IsStructurallyEquivalent()
1417 D2 = D2->getDefinition(); in IsStructurallyEquivalent()
1418 if (!D1 || !D2) in IsStructurallyEquivalent()
1427 if (D1->hasExternalLexicalStorage() || D2->hasExternalLexicalStorage()) in IsStructurallyEquivalent()
1432 if (D1->isBeingDefined() || D2->isBeingDefined()) in IsStructurallyEquivalent()
1436 if (auto *D2CXX = dyn_cast<CXXRecordDecl>(D2)) { in IsStructurallyEquivalent()
1451 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1454 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1455 Context.Diag2(D2->getLocation(), diag::note_odr_number_of_bases) in IsStructurallyEquivalent()
1471 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1474 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1486 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1489 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1507 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1512 Context.Diag2(D2->getLocation(), diag::note_odr_missing_friend); in IsStructurallyEquivalent()
1519 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1532 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1535 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1543 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1546 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1550 Context.Diag2(D2->getLocation(), diag::note_odr_missing_base); in IsStructurallyEquivalent()
1557 RecordDecl::field_iterator Field2 = D2->field_begin(), in IsStructurallyEquivalent()
1558 Field2End = D2->field_end(); in IsStructurallyEquivalent()
1564 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1567 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1570 Context.Diag2(D2->getLocation(), diag::note_odr_missing_field); in IsStructurallyEquivalent()
1581 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1583 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1596 EnumDecl *D1, EnumDecl *D2) { in IsStructurallyEquivalent() argument
1602 IdentifierInfo *Name2 = D2->getIdentifier(); in IsStructurallyEquivalent()
1603 if (!Name2 && D2->getTypedefNameForAnonDecl()) in IsStructurallyEquivalent()
1604 Name2 = D2->getTypedefNameForAnonDecl()->getIdentifier(); in IsStructurallyEquivalent()
1611 D2 = D2->getDefinition(); in IsStructurallyEquivalent()
1612 if (!D1 || !D2) in IsStructurallyEquivalent()
1615 EnumDecl::enumerator_iterator EC2 = D2->enumerator_begin(), in IsStructurallyEquivalent()
1616 EC2End = D2->enumerator_end(); in IsStructurallyEquivalent()
1622 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1625 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1628 Context.Diag2(D2->getLocation(), diag::note_odr_missing_enumerator); in IsStructurallyEquivalent()
1638 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1641 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1653 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1655 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1703 TemplateTypeParmDecl *D2) { in IsStructurallyEquivalent() argument
1704 if (D1->isParameterPack() != D2->isParameterPack()) { in IsStructurallyEquivalent()
1706 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1709 << D2->isParameterPack(); in IsStructurallyEquivalent()
1721 NonTypeTemplateParmDecl *D2) { in IsStructurallyEquivalent() argument
1722 if (D1->isParameterPack() != D2->isParameterPack()) { in IsStructurallyEquivalent()
1724 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1727 << D2->isParameterPack(); in IsStructurallyEquivalent()
1735 if (!IsStructurallyEquivalent(Context, D1->getType(), D2->getType())) { in IsStructurallyEquivalent()
1737 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1740 << D2->getType() << D1->getType(); in IsStructurallyEquivalent()
1752 TemplateTemplateParmDecl *D2) { in IsStructurallyEquivalent() argument
1753 if (D1->isParameterPack() != D2->isParameterPack()) { in IsStructurallyEquivalent()
1755 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1758 << D2->isParameterPack(); in IsStructurallyEquivalent()
1767 D2->getTemplateParameters()); in IsStructurallyEquivalent()
1771 StructuralEquivalenceContext &Ctx, TemplateDecl *D1, TemplateDecl *D2) { in IsTemplateDeclCommonStructurallyEquivalent() argument
1772 if (!IsStructurallyEquivalent(D1->getIdentifier(), D2->getIdentifier())) in IsTemplateDeclCommonStructurallyEquivalent()
1775 if (D1->getNameAsString() != D2->getNameAsString()) in IsTemplateDeclCommonStructurallyEquivalent()
1778 D2->getTemplateParameters()); in IsTemplateDeclCommonStructurallyEquivalent()
1783 ClassTemplateDecl *D2) { in IsStructurallyEquivalent() argument
1785 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
1790 D2->getTemplatedDecl()); in IsStructurallyEquivalent()
1795 FunctionTemplateDecl *D2) { in IsStructurallyEquivalent() argument
1797 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
1802 D2->getTemplatedDecl()->getType()); in IsStructurallyEquivalent()
1807 ConceptDecl *D2) { in IsStructurallyEquivalent() argument
1809 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
1814 D2->getConstraintExpr()); in IsStructurallyEquivalent()
1818 FriendDecl *D1, FriendDecl *D2) { in IsStructurallyEquivalent() argument
1819 if ((D1->getFriendType() && D2->getFriendDecl()) || in IsStructurallyEquivalent()
1820 (D1->getFriendDecl() && D2->getFriendType())) { in IsStructurallyEquivalent()
1823 if (D1->getFriendType() && D2->getFriendType()) in IsStructurallyEquivalent()
1826 D2->getFriendType()->getType()); in IsStructurallyEquivalent()
1827 if (D1->getFriendDecl() && D2->getFriendDecl()) in IsStructurallyEquivalent()
1829 D2->getFriendDecl()); in IsStructurallyEquivalent()
1834 TypedefNameDecl *D1, TypedefNameDecl *D2) { in IsStructurallyEquivalent() argument
1835 if (!IsStructurallyEquivalent(D1->getIdentifier(), D2->getIdentifier())) in IsStructurallyEquivalent()
1839 D2->getUnderlyingType()); in IsStructurallyEquivalent()
1843 FunctionDecl *D1, FunctionDecl *D2) { in IsStructurallyEquivalent() argument
1844 if (!IsStructurallyEquivalent(D1->getIdentifier(), D2->getIdentifier())) in IsStructurallyEquivalent()
1848 if (!D2->isOverloadedOperator()) in IsStructurallyEquivalent()
1850 if (D1->getOverloadedOperator() != D2->getOverloadedOperator()) in IsStructurallyEquivalent()
1855 if (!IsStructurallyEquivalent(Context, D1->getType(), D2->getType())) in IsStructurallyEquivalent()
1863 Decl *D1, Decl *D2) { in IsStructurallyEquivalent() argument
1867 D2 = D2->getCanonicalDecl(); in IsStructurallyEquivalent()
1868 std::pair<Decl *, Decl *> P{D1, D2}; in IsStructurallyEquivalent()
1994 bool StructuralEquivalenceContext::IsEquivalent(Decl *D1, Decl *D2) { in IsEquivalent() argument
2007 if (!::IsStructurallyEquivalent(*this, D1, D2)) in IsEquivalent()
2031 bool StructuralEquivalenceContext::CheckCommonEquivalence(Decl *D1, Decl *D2) { in CheckCommonEquivalence() argument
2034 TemplateDecl *Template2 = D2->getDescribedTemplate(); in CheckCommonEquivalence()
2046 Decl *D1, Decl *D2) { in CheckKindSpecificEquivalence() argument
2049 if (D1->getKind() != D2->getKind()) in CheckKindSpecificEquivalence()
2059 static_cast<DERIVED##Decl *>(D2)); in CheckKindSpecificEquivalence()
2072 Decl *D2 = P.second; in Finish() local
2075 CheckCommonEquivalence(D1, D2) && CheckKindSpecificEquivalence(D1, D2); in Finish()