• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/clang/lib/AST/

Lines Matching refs:D1

42 //                                      Decl *D1, Decl *D2);
51 // IsStructurallyEquivalent(StructuralEquivalenceContext &Context, Decl *D1,
94 Decl *D1, Decl *D2);
1013 RecordDecl *D1 = Field1->getType()->castAs<RecordType>()->getDecl();
1015 return IsStructurallyEquivalent(Context, D1, D2);
1151 CXXRecordDecl *D1, CXXRecordDecl *D2) {
1152 assert(D1->isLambda() && D2->isLambda() &&
1154 if (!IsStructurallyEquivalent(Context, D1->getLambdaCallOperator(),
1163 RecordDecl *D1, RecordDecl *D2) {
1164 if (D1->isUnion() != D2->isUnion()) {
1169 Context.Diag1(D1->getLocation(), diag::note_odr_tag_kind_here)
1170 << D1->getDeclName() << (unsigned)D1->getTagKind();
1175 if (!D1->getDeclName() && !D2->getDeclName()) {
1179 StructuralEquivalenceContext::findUntaggedStructOrUnionIndex(D1)) {
1191 const auto *Spec1 = dyn_cast<ClassTemplateSpecializationDecl>(D1);
1216 D1 = D1->getDefinition();
1218 if (!D1 || !D2)
1227 if (D1->hasExternalLexicalStorage() || D2->hasExternalLexicalStorage())
1232 if (D1->isBeingDefined() || D2->isBeingDefined())
1235 if (auto *D1CXX = dyn_cast<CXXRecordDecl>(D1)) {
1257 Context.Diag1(D1->getLocation(), diag::note_odr_number_of_bases)
1337 Context.Diag1(D1->getLocation(), diag::note_odr_missing_friend);
1359 for (RecordDecl::field_iterator Field1 = D1->field_begin(),
1360 Field1End = D1->field_end();
1386 Context.Diag1(D1->getLocation(), diag::note_odr_missing_field);
1396 EnumDecl *D1, EnumDecl *D2) {
1400 D1 = D1->getDefinition();
1402 if (!D1 || !D2)
1407 for (EnumDecl::enumerator_iterator EC1 = D1->enumerator_begin(),
1408 EC1End = D1->enumerator_end();
1448 Context.Diag1(D1->getLocation(), diag::note_odr_missing_enumerator);
1492 TemplateTypeParmDecl *D1,
1494 if (D1->isParameterPack() != D2->isParameterPack()) {
1500 Context.Diag1(D1->getLocation(), diag::note_odr_parameter_pack_non_pack)
1501 << D1->isParameterPack();
1510 NonTypeTemplateParmDecl *D1,
1512 if (D1->isParameterPack() != D2->isParameterPack()) {
1518 Context.Diag1(D1->getLocation(), diag::note_odr_parameter_pack_non_pack)
1519 << D1->isParameterPack();
1525 if (!IsStructurallyEquivalent(Context, D1->getType(), D2->getType())) {
1530 << D2->getType() << D1->getType();
1531 Context.Diag1(D1->getLocation(), diag::note_odr_value_here)
1532 << D1->getType();
1541 TemplateTemplateParmDecl *D1,
1543 if (D1->isParameterPack() != D2->isParameterPack()) {
1549 Context.Diag1(D1->getLocation(), diag::note_odr_parameter_pack_non_pack)
1550 << D1->isParameterPack();
1556 return IsStructurallyEquivalent(Context, D1->getTemplateParameters(),
1561 StructuralEquivalenceContext &Ctx, TemplateDecl *D1, TemplateDecl *D2) {
1562 if (!IsStructurallyEquivalent(D1->getIdentifier(), D2->getIdentifier()))
1564 if (!D1->getIdentifier()) // Special name
1565 if (D1->getNameAsString() != D2->getNameAsString())
1567 return IsStructurallyEquivalent(Ctx, D1->getTemplateParameters(),
1572 ClassTemplateDecl *D1,
1575 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2))
1579 return IsStructurallyEquivalent(Context, D1->getTemplatedDecl(),
1584 FunctionTemplateDecl *D1,
1587 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2))
1591 return IsStructurallyEquivalent(Context, D1->getTemplatedDecl()->getType(),
1596 ConceptDecl *D1,
1599 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2))
1603 return IsStructurallyEquivalent(Context, D1->getConstraintExpr(),
1608 FriendDecl *D1, FriendDecl *D2) {
1609 if ((D1->getFriendType() && D2->getFriendDecl()) ||
1610 (D1->getFriendDecl() && D2->getFriendType())) {
1613 if (D1->getFriendType() && D2->getFriendType())
1615 D1->getFriendType()->getType(),
1617 if (D1->getFriendDecl() && D2->getFriendDecl())
1618 return IsStructurallyEquivalent(Context, D1->getFriendDecl(),
1624 FunctionDecl *D1, FunctionDecl *D2) {
1626 if (!IsStructurallyEquivalent(Context, D1->getType(), D2->getType()))
1634 Decl *D1, Decl *D2) {
1637 D1 = D1->getCanonicalDecl();
1639 std::pair<Decl *, Decl *> P{D1, D2};
1647 // If yes D1 and D2 will be checked later (from DeclsToCheck),
1765 bool StructuralEquivalenceContext::IsEquivalent(Decl *D1, Decl *D2) {
1778 if (!::IsStructurallyEquivalent(*this, D1, D2))
1793 bool StructuralEquivalenceContext::CheckCommonEquivalence(Decl *D1, Decl *D2) {
1795 TemplateDecl *Template1 = D1->getDescribedTemplate();
1808 Decl *D1, Decl *D2) {
1811 if (auto *Record1 = dyn_cast<RecordDecl>(D1)) {
1827 } else if (auto *Enum1 = dyn_cast<EnumDecl>(D1)) {
1843 } else if (const auto *Typedef1 = dyn_cast<TypedefNameDecl>(D1)) {
1854 } else if (auto *ClassTemplate1 = dyn_cast<ClassTemplateDecl>(D1)) {
1863 } else if (auto *FunctionTemplate1 = dyn_cast<FunctionTemplateDecl>(D1)) {
1872 } else if (auto *ConceptDecl1 = dyn_cast<ConceptDecl>(D1)) {
1880 } else if (auto *TTP1 = dyn_cast<TemplateTypeParmDecl>(D1)) {
1888 } else if (auto *NTTP1 = dyn_cast<NonTypeTemplateParmDecl>(D1)) {
1896 } else if (auto *TTP1 = dyn_cast<TemplateTemplateParmDecl>(D1)) {
1904 } else if (auto *MD1 = dyn_cast<CXXMethodDecl>(D1)) {
1912 } else if (FunctionDecl *FD1 = dyn_cast<FunctionDecl>(D1)) {
1929 } else if (FriendDecl *FrD1 = dyn_cast<FriendDecl>(D1)) {
1948 Decl *D1 = P.first;
1952 CheckCommonEquivalence(D1, D2) && CheckKindSpecificEquivalence(D1, D2);