Lines Matching refs:Context
97 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
99 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
101 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
103 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
106 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
109 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
115 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
130 return IsStructurallyEquivalent(Context, Name1.getCXXNameType(), in IsStructurallyEquivalent()
135 Context, Name1.getCXXDeductionGuideTemplate()->getDeclName(), in IsStructurallyEquivalent()
138 return IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
166 StructuralEquivalenceContext &Context; member in __anon8d670bba0111::StmtComparer
173 return IsStructurallyEquivalent(Context, E1->getLabel(), E2->getLabel()); in IsStmtEquivalent()
198 return IsStructurallyEquivalent(Context, Callee1, Callee2); in IsStmtEquivalent()
224 return IsStructurallyEquivalent(Context, const_cast<ValueDecl *>(Decl1), in IsStmtEquivalent()
230 if (!IsStructurallyEquivalent(Context, DE1->getDeclName(), in IsStmtEquivalent()
233 return IsStructurallyEquivalent(Context, DE1->getQualifier(), in IsStmtEquivalent()
238 return IsStructurallyEquivalent(Context, E1->getType(), E2->getType()); in IsStmtEquivalent()
260 if (!IsStructurallyEquivalent(Context, (*Child1)->getType(), in IsStmtEquivalent()
270 return IsStructurallyEquivalent(Context, CastE1->getType(), in IsStmtEquivalent()
279 return IsStructurallyEquivalent(Context, E1->getFoundDecl(), in IsStmtEquivalent()
316 if (!IsStructurallyEquivalent(Context, E1->getAssociatedDecl(), in IsStmtEquivalent()
328 return IsStructurallyEquivalent(Context, E1->getArgumentPack(), in IsStmtEquivalent()
343 if (!IsStructurallyEquivalent(Context, (*Child1)->getType(), in IsStmtEquivalent()
354 return IsStructurallyEquivalent(Context, E1->getTypeOfArgument(), in IsStmtEquivalent()
368 if (!IsStructurallyEquivalent(Context, E1->getName(), E2->getName())) in IsStmtEquivalent()
375 !IsStructurallyEquivalent(Context, E1->getQualifier(), in IsStmtEquivalent()
385 if (!IsStructurallyEquivalent(Context, Args1[ArgI], Args2[ArgI])) in IsStmtEquivalent()
413 StmtComparer(StructuralEquivalenceContext &C) : Context(C) {} in StmtComparer()
442 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
447 IsStructurallyEquivalent(Context, E1->getSubExpr(), E2->getArg(0)); in IsStructurallyEquivalent()
450 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
455 IsStructurallyEquivalent(Context, E1->getArg(0), E2->getSubExpr()); in IsStructurallyEquivalent()
458 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
463 IsStructurallyEquivalent(Context, E1->getLHS(), E2->getArg(0)) && in IsStructurallyEquivalent()
464 IsStructurallyEquivalent(Context, E1->getRHS(), E2->getArg(1)); in IsStructurallyEquivalent()
467 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
472 IsStructurallyEquivalent(Context, E1->getArg(0), E2->getLHS()) && in IsStructurallyEquivalent()
473 IsStructurallyEquivalent(Context, E1->getArg(1), E2->getRHS()); in IsStructurallyEquivalent()
477 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
492 return IsStructurallyEquivalent(Context, E1Unary, E2CXXOperatorCall); in IsStructurallyEquivalent()
494 return IsStructurallyEquivalent(Context, E1Binary, E2CXXOperatorCall); in IsStructurallyEquivalent()
498 return IsStructurallyEquivalent(Context, E1CXXOperatorCall, E2Unary); in IsStructurallyEquivalent()
500 return IsStructurallyEquivalent(Context, E1CXXOperatorCall, E2Binary); in IsStructurallyEquivalent()
504 StmtComparer Comparer(Context); in IsStructurallyEquivalent()
516 if (!IsStructurallyEquivalent(Context, *Child1, *Child2)) in IsStructurallyEquivalent()
532 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
544 if (!IsStructurallyEquivalent(Context, Prefix1, Prefix2)) in IsStructurallyEquivalent()
552 return IsStructurallyEquivalent(Context, NNS1->getAsNamespace(), in IsStructurallyEquivalent()
555 return IsStructurallyEquivalent(Context, NNS1->getAsNamespaceAlias(), in IsStructurallyEquivalent()
559 return IsStructurallyEquivalent(Context, QualType(NNS1->getAsType(), 0), in IsStructurallyEquivalent()
564 return IsStructurallyEquivalent(Context, NNS1->getAsRecordDecl(), in IsStructurallyEquivalent()
570 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
576 if (!IsStructurallyEquivalent(Context, TemplateDeclN1, TemplateDeclN2)) in IsStructurallyEquivalent()
595 if (!IsStructurallyEquivalent(Context, *I1, *I2)) in IsStructurallyEquivalent()
609 if (!IsStructurallyEquivalent(Context, DN1->getQualifier(), in IsStructurallyEquivalent()
624 return IsStructurallyEquivalent(Context, P1->getArgumentPack(), in IsStructurallyEquivalent()
626 IsStructurallyEquivalent(Context, P1->getAssociatedDecl(), in IsStructurallyEquivalent()
643 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
648 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
659 return IsStructurallyEquivalent(Context, Arg1.getAsType(), Arg2.getAsType()); in IsStructurallyEquivalent()
662 if (!IsStructurallyEquivalent(Context, Arg1.getIntegralType(), in IsStructurallyEquivalent()
670 return IsStructurallyEquivalent(Context, Arg1.getAsDecl(), Arg2.getAsDecl()); in IsStructurallyEquivalent()
676 return IsStructurallyEquivalent(Context, Arg1.getAsTemplate(), in IsStructurallyEquivalent()
680 return IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
685 return IsStructurallyEquivalent(Context, Arg1.getAsExpr(), in IsStructurallyEquivalent()
692 return IsStructurallyEquivalent(Context, Arg1.pack_elements(), in IsStructurallyEquivalent()
700 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
706 if (!IsStructurallyEquivalent(Context, Args1[I], Args2[I])) in IsStructurallyEquivalent()
713 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
716 return IsStructurallyEquivalent(Context, Arg1.getArgument(), in IsStructurallyEquivalent()
722 static bool IsArrayStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsArrayStructurallyEquivalent() argument
725 if (!IsStructurallyEquivalent(Context, Array1->getElementType(), in IsArrayStructurallyEquivalent()
739 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
763 static bool IsEquivalentExceptionSpec(StructuralEquivalenceContext &Context, in IsEquivalentExceptionSpec() argument
779 if (!IsStructurallyEquivalent(Context, Proto1->getExceptionType(I), in IsEquivalentExceptionSpec()
784 if (!IsStructurallyEquivalent(Context, Proto1->getNoexceptExpr(), in IsEquivalentExceptionSpec()
793 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
801 if (!Context.StrictTypeSpelling) { in IsStructurallyEquivalent()
804 T1 = Context.FromCtx.getCanonicalType(T1); in IsStructurallyEquivalent()
805 T2 = Context.ToCtx.getCanonicalType(T2); in IsStructurallyEquivalent()
834 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
842 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
849 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
856 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
870 if (!IsStructurallyEquivalent(Context, Ref1->getPointeeTypeAsWritten(), in IsStructurallyEquivalent()
879 if (!IsStructurallyEquivalent(Context, MemPtr1->getPointeeType(), in IsStructurallyEquivalent()
882 if (!IsStructurallyEquivalent(Context, QualType(MemPtr1->getClass(), 0), in IsStructurallyEquivalent()
894 if (!IsArrayStructurallyEquivalent(Context, Array1, Array2)) in IsStructurallyEquivalent()
900 if (!IsArrayStructurallyEquivalent(Context, cast<ArrayType>(T1), in IsStructurallyEquivalent()
908 if (!IsStructurallyEquivalent(Context, Array1->getSizeExpr(), in IsStructurallyEquivalent()
912 if (!IsArrayStructurallyEquivalent(Context, Array1, Array2)) in IsStructurallyEquivalent()
921 if (!IsStructurallyEquivalent(Context, Array1->getSizeExpr(), in IsStructurallyEquivalent()
925 if (!IsArrayStructurallyEquivalent(Context, Array1, Array2)) in IsStructurallyEquivalent()
934 if (!IsStructurallyEquivalent(Context, DepAddressSpace1->getAddrSpaceExpr(), in IsStructurallyEquivalent()
937 if (!IsStructurallyEquivalent(Context, DepAddressSpace1->getPointeeType(), in IsStructurallyEquivalent()
947 if (!IsStructurallyEquivalent(Context, Vec1->getSizeExpr(), in IsStructurallyEquivalent()
950 if (!IsStructurallyEquivalent(Context, Vec1->getElementType(), in IsStructurallyEquivalent()
961 if (!IsStructurallyEquivalent(Context, Vec1->getSizeExpr(), in IsStructurallyEquivalent()
964 if (!IsStructurallyEquivalent(Context, Vec1->getElementType(), in IsStructurallyEquivalent()
974 if (!IsStructurallyEquivalent(Context, Vec1->getElementType(), in IsStructurallyEquivalent()
989 if (!IsStructurallyEquivalent(Context, Mat1->getRowExpr(), in IsStructurallyEquivalent()
991 !IsStructurallyEquivalent(Context, Mat1->getColumnExpr(), in IsStructurallyEquivalent()
993 !IsStructurallyEquivalent(Context, Mat1->getElementType(), in IsStructurallyEquivalent()
1004 if (!IsStructurallyEquivalent(Context, Mat1->getElementType(), in IsStructurallyEquivalent()
1019 if (!IsStructurallyEquivalent(Context, Proto1->getParamType(I), in IsStructurallyEquivalent()
1031 cast<FunctionProtoType>(OrigT1.getDesugaredType(Context.FromCtx)); in IsStructurallyEquivalent()
1033 cast<FunctionProtoType>(OrigT2.getDesugaredType(Context.ToCtx)); in IsStructurallyEquivalent()
1034 if (!IsEquivalentExceptionSpec(Context, OrigProto1, OrigProto2)) in IsStructurallyEquivalent()
1044 if (!IsStructurallyEquivalent(Context, Function1->getReturnType(), in IsStructurallyEquivalent()
1047 if (!IsStructurallyEquivalent(Context, Function1->getExtInfo(), in IsStructurallyEquivalent()
1054 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1061 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1066 Context, cast<AttributedType>(T1)->getEquivalentType(), in IsStructurallyEquivalent()
1073 Context, cast<BTFTagAttributedType>(T1)->getWrappedType(), in IsStructurallyEquivalent()
1079 if (!IsStructurallyEquivalent(Context, cast<ParenType>(T1)->getInnerType(), in IsStructurallyEquivalent()
1086 Context, cast<MacroQualifiedType>(T1)->getUnderlyingType(), in IsStructurallyEquivalent()
1092 if (!IsStructurallyEquivalent(Context, cast<UsingType>(T1)->getFoundDecl(), in IsStructurallyEquivalent()
1095 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1102 if (!IsStructurallyEquivalent(Context, cast<TypedefType>(T1)->getDecl(), in IsStructurallyEquivalent()
1104 !IsStructurallyEquivalent(Context, cast<TypedefType>(T1)->desugar(), in IsStructurallyEquivalent()
1111 Context, cast<TypeOfExprType>(T1)->getUnderlyingExpr(), in IsStructurallyEquivalent()
1117 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1125 Context, cast<UnaryTransformType>(T1)->getUnderlyingType(), in IsStructurallyEquivalent()
1131 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1140 if (!IsStructurallyEquivalent(Context, Auto1->getDeducedType(), in IsStructurallyEquivalent()
1149 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1160 if (!IsStructurallyEquivalent(Context, DT1->getTemplateName(), in IsStructurallyEquivalent()
1163 if (!IsStructurallyEquivalent(Context, DT1->getDeducedType(), in IsStructurallyEquivalent()
1171 if (!IsStructurallyEquivalent(Context, cast<TagType>(T1)->getDecl(), in IsStructurallyEquivalent()
1179 if (!Context.IgnoreTemplateParmDepth && in IsStructurallyEquivalent()
1194 if (!IsStructurallyEquivalent(Context, Subst1->getReplacementType(), in IsStructurallyEquivalent()
1197 if (!IsStructurallyEquivalent(Context, Subst1->getAssociatedDecl(), in IsStructurallyEquivalent()
1210 if (!IsStructurallyEquivalent(Context, Subst1->getAssociatedDecl(), in IsStructurallyEquivalent()
1215 if (!IsStructurallyEquivalent(Context, Subst1->getArgumentPack(), in IsStructurallyEquivalent()
1224 if (!IsStructurallyEquivalent(Context, Spec1->getTemplateName(), in IsStructurallyEquivalent()
1227 if (!IsStructurallyEquivalent(Context, Spec1->template_arguments(), in IsStructurallyEquivalent()
1241 if (!IsStructurallyEquivalent(Context, Elab1->getQualifier(), in IsStructurallyEquivalent()
1244 if (!IsStructurallyEquivalent(Context, Elab1->getNamedType(), in IsStructurallyEquivalent()
1253 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1263 if (!IsStructurallyEquivalent(Context, Typename1->getQualifier(), in IsStructurallyEquivalent()
1276 if (!IsStructurallyEquivalent(Context, Spec1->getQualifier(), in IsStructurallyEquivalent()
1282 if (!IsStructurallyEquivalent(Context, Spec1->template_arguments(), in IsStructurallyEquivalent()
1289 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1298 if (!IsStructurallyEquivalent(Context, Iface1->getDecl(), in IsStructurallyEquivalent()
1307 if (!IsStructurallyEquivalent(Context, Obj1->getDecl(), Obj2->getDecl())) in IsStructurallyEquivalent()
1313 if (!IsStructurallyEquivalent(Context, Obj1->getProtocol(I), in IsStructurallyEquivalent()
1323 if (!IsStructurallyEquivalent(Context, Obj1->getBaseType(), in IsStructurallyEquivalent()
1329 if (!IsStructurallyEquivalent(Context, Obj1->getProtocol(I), in IsStructurallyEquivalent()
1339 if (!IsStructurallyEquivalent(Context, Ptr1->getPointeeType(), in IsStructurallyEquivalent()
1346 if (!IsStructurallyEquivalent(Context, cast<AtomicType>(T1)->getValueType(), in IsStructurallyEquivalent()
1352 if (!IsStructurallyEquivalent(Context, cast<PipeType>(T1)->getElementType(), in IsStructurallyEquivalent()
1370 !IsStructurallyEquivalent(Context, Int1->getNumBitsExpr(), in IsStructurallyEquivalent()
1380 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1390 if (!IsStructurallyEquivalent(Context, D1->getType(), D2->getType())) in IsStructurallyEquivalent()
1393 return IsStructurallyEquivalent(Context, D1->getInit(), D2->getInit()); in IsStructurallyEquivalent()
1396 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1408 return IsStructurallyEquivalent(Context, D1, D2); in IsStructurallyEquivalent()
1415 if (Context.Complain) { in IsStructurallyEquivalent()
1416 Context.Diag2( in IsStructurallyEquivalent()
1418 Context.getApplicableDiagnostic(diag::err_odr_tag_type_inconsistent)) in IsStructurallyEquivalent()
1420 Context.Diag2(Field2->getLocation(), diag::note_odr_field_name) in IsStructurallyEquivalent()
1422 Context.Diag1(Field1->getLocation(), diag::note_odr_field_name) in IsStructurallyEquivalent()
1428 if (!IsStructurallyEquivalent(Context, Field1->getType(), in IsStructurallyEquivalent()
1430 if (Context.Complain) { in IsStructurallyEquivalent()
1431 Context.Diag2( in IsStructurallyEquivalent()
1433 Context.getApplicableDiagnostic(diag::err_odr_tag_type_inconsistent)) in IsStructurallyEquivalent()
1435 Context.Diag2(Field2->getLocation(), diag::note_odr_field) in IsStructurallyEquivalent()
1437 Context.Diag1(Field1->getLocation(), diag::note_odr_field) in IsStructurallyEquivalent()
1444 return IsStructurallyEquivalent(Context, Field1->getBitWidth(), in IsStructurallyEquivalent()
1451 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1454 return IsStructurallyEquivalent(Context, Field1, Field2, in IsStructurallyEquivalent()
1455 Context.ToCtx.getTypeDeclType(Owner2)); in IsStructurallyEquivalent()
1459 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1492 if (!IsStructurallyEquivalent(Context, Conversion1->getConversionType(), in IsStructurallyEquivalent()
1505 if (!::IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1514 IsStructurallyEquivalentLambdas(StructuralEquivalenceContext &Context, in IsStructurallyEquivalentLambdas() argument
1518 if (!IsStructurallyEquivalent(Context, D1->getLambdaCallOperator(), in IsStructurallyEquivalentLambdas()
1527 IsRecordContextStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsRecordContextStructurallyEquivalent() argument
1557 if (!IsStructurallyEquivalent(Context, D1Spec, D2Spec)) in IsRecordContextStructurallyEquivalent()
1580 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1587 if (Context.Complain) { in IsStructurallyEquivalent()
1588 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1590 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1591 Context.Diag1(D1->getLocation(), diag::note_odr_tag_kind_here) in IsStructurallyEquivalent()
1614 if (!IsRecordContextStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
1623 if (!IsStructurallyEquivalent(Context, Spec1->getSpecializedTemplate(), in IsStructurallyEquivalent()
1632 if (!IsStructurallyEquivalent(Context, Spec1->getTemplateArgs().get(I), in IsStructurallyEquivalent()
1654 if (Context.EqKind == StructuralEquivalenceKind::Minimal) in IsStructurallyEquivalent()
1673 if (!IsStructurallyEquivalentLambdas(Context, D1CXX, D2CXX)) in IsStructurallyEquivalent()
1678 if (Context.Complain) { in IsStructurallyEquivalent()
1679 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1680 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1682 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1683 Context.Diag2(D2->getLocation(), diag::note_odr_number_of_bases) in IsStructurallyEquivalent()
1685 Context.Diag1(D1->getLocation(), diag::note_odr_number_of_bases) in IsStructurallyEquivalent()
1696 if (!IsStructurallyEquivalent(Context, Base1->getType(), in IsStructurallyEquivalent()
1698 if (Context.Complain) { in IsStructurallyEquivalent()
1699 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1700 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1702 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1703 Context.Diag2(Base2->getBeginLoc(), diag::note_odr_base) in IsStructurallyEquivalent()
1705 Context.Diag1(Base1->getBeginLoc(), diag::note_odr_base) in IsStructurallyEquivalent()
1713 if (Context.Complain) { in IsStructurallyEquivalent()
1714 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1715 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1717 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1718 Context.Diag2(Base2->getBeginLoc(), diag::note_odr_virtual_base) in IsStructurallyEquivalent()
1720 Context.Diag1(Base1->getBeginLoc(), diag::note_odr_base) in IsStructurallyEquivalent()
1734 if (Context.Complain) { in IsStructurallyEquivalent()
1735 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1736 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1738 << Context.ToCtx.getTypeDeclType(D2CXX); in IsStructurallyEquivalent()
1739 Context.Diag1((*Friend1)->getFriendLoc(), diag::note_odr_friend); in IsStructurallyEquivalent()
1740 Context.Diag2(D2->getLocation(), diag::note_odr_missing_friend); in IsStructurallyEquivalent()
1745 if (!IsStructurallyEquivalent(Context, *Friend1, *Friend2)) { in IsStructurallyEquivalent()
1746 if (Context.Complain) { in IsStructurallyEquivalent()
1747 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1748 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1750 << Context.ToCtx.getTypeDeclType(D2CXX); in IsStructurallyEquivalent()
1751 Context.Diag1((*Friend1)->getFriendLoc(), diag::note_odr_friend); in IsStructurallyEquivalent()
1752 Context.Diag2((*Friend2)->getFriendLoc(), diag::note_odr_friend); in IsStructurallyEquivalent()
1759 if (Context.Complain) { in IsStructurallyEquivalent()
1760 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1761 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1763 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1764 Context.Diag2((*Friend2)->getFriendLoc(), diag::note_odr_friend); in IsStructurallyEquivalent()
1765 Context.Diag1(D1->getLocation(), diag::note_odr_missing_friend); in IsStructurallyEquivalent()
1770 if (Context.Complain) { in IsStructurallyEquivalent()
1771 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1772 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1774 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1776 Context.Diag1(Base1->getBeginLoc(), diag::note_odr_base) in IsStructurallyEquivalent()
1778 Context.Diag2(D2->getLocation(), diag::note_odr_missing_base); in IsStructurallyEquivalent()
1785 QualType D2Type = Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1792 if (Context.Complain) { in IsStructurallyEquivalent()
1793 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1794 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1796 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1797 Context.Diag1(Field1->getLocation(), diag::note_odr_field) in IsStructurallyEquivalent()
1799 Context.Diag2(D2->getLocation(), diag::note_odr_missing_field); in IsStructurallyEquivalent()
1804 if (!IsStructurallyEquivalent(Context, *Field1, *Field2, D2Type)) in IsStructurallyEquivalent()
1809 if (Context.Complain) { in IsStructurallyEquivalent()
1810 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1812 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1813 Context.Diag2(Field2->getLocation(), diag::note_odr_field) in IsStructurallyEquivalent()
1815 Context.Diag1(D1->getLocation(), diag::note_odr_missing_field); in IsStructurallyEquivalent()
1823 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1839 return IsStructurallyEquivalent(Context, D1->getInitExpr(), in IsStructurallyEquivalent()
1844 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1863 if (Context.Complain) { in IsStructurallyEquivalent()
1864 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1865 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1867 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1868 Context.Diag1(EC1->getLocation(), diag::note_odr_enumerator) in IsStructurallyEquivalent()
1870 Context.Diag2(D2->getLocation(), diag::note_odr_missing_enumerator); in IsStructurallyEquivalent()
1879 if (Context.Complain) { in IsStructurallyEquivalent()
1880 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1881 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1883 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1884 Context.Diag2(EC2->getLocation(), diag::note_odr_enumerator) in IsStructurallyEquivalent()
1886 Context.Diag1(EC1->getLocation(), diag::note_odr_enumerator) in IsStructurallyEquivalent()
1894 if (Context.Complain) { in IsStructurallyEquivalent()
1895 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1897 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1898 Context.Diag2(EC2->getLocation(), diag::note_odr_enumerator) in IsStructurallyEquivalent()
1900 Context.Diag1(D1->getLocation(), diag::note_odr_missing_enumerator); in IsStructurallyEquivalent()
1908 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1912 if (Context.Complain) { in IsStructurallyEquivalent()
1913 Context.Diag2(Params2->getTemplateLoc(), in IsStructurallyEquivalent()
1914 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1917 Context.Diag1(Params1->getTemplateLoc(), in IsStructurallyEquivalent()
1925 if (Context.Complain) { in IsStructurallyEquivalent()
1926 Context.Diag2(Params2->getParam(I)->getLocation(), in IsStructurallyEquivalent()
1927 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1929 Context.Diag1(Params1->getParam(I)->getLocation(), in IsStructurallyEquivalent()
1935 if (!IsStructurallyEquivalent(Context, Params1->getParam(I), in IsStructurallyEquivalent()
1943 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1947 if (Context.Complain) { in IsStructurallyEquivalent()
1948 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1949 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1952 Context.Diag1(D1->getLocation(), diag::note_odr_parameter_pack_non_pack) in IsStructurallyEquivalent()
1961 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1965 if (Context.Complain) { in IsStructurallyEquivalent()
1966 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1967 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1970 Context.Diag1(D1->getLocation(), diag::note_odr_parameter_pack_non_pack) in IsStructurallyEquivalent()
1977 if (!IsStructurallyEquivalent(Context, D1->getType(), D2->getType())) { in IsStructurallyEquivalent()
1978 if (Context.Complain) { in IsStructurallyEquivalent()
1979 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1980 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1983 Context.Diag1(D1->getLocation(), diag::note_odr_value_here) in IsStructurallyEquivalent()
1992 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1996 if (Context.Complain) { in IsStructurallyEquivalent()
1997 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1998 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
2001 Context.Diag1(D1->getLocation(), diag::note_odr_parameter_pack_non_pack) in IsStructurallyEquivalent()
2008 return IsStructurallyEquivalent(Context, D1->getTemplateParameters(), in IsStructurallyEquivalent()
2023 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2027 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
2031 return IsStructurallyEquivalent(Context, D1->getTemplatedDecl(), in IsStructurallyEquivalent()
2035 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2039 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
2043 return IsStructurallyEquivalent(Context, D1->getTemplatedDecl()->getType(), in IsStructurallyEquivalent()
2047 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2051 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
2055 return IsStructurallyEquivalent(Context, D1->getTemplatedDecl(), in IsStructurallyEquivalent()
2059 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2063 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
2067 return IsStructurallyEquivalent(Context, D1->getConstraintExpr(), in IsStructurallyEquivalent()
2071 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2078 return IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
2082 return IsStructurallyEquivalent(Context, D1->getFriendDecl(), in IsStructurallyEquivalent()
2087 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2092 return IsStructurallyEquivalent(Context, D1->getUnderlyingType(), in IsStructurallyEquivalent()
2096 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2109 if (!IsStructurallyEquivalent(Context, D1->getType(), D2->getType())) in IsStructurallyEquivalent()
2115 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2121 return IsStructurallyEquivalent(Context, cast<FieldDecl>(D1), in IsStructurallyEquivalent()
2125 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2128 Context.ToCtx.getObjCInterfaceType(D2->getContainingInterface()); in IsStructurallyEquivalent()
2129 return IsStructurallyEquivalent(Context, D1, D2, Owner2Type); in IsStructurallyEquivalent()
2132 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2158 if (!IsStructurallyEquivalent(Context, Method1->getReturnType(), in IsStructurallyEquivalent()
2171 if (!IsStructurallyEquivalent(Context, *ParamT1, *ParamT2)) in IsStructurallyEquivalent()
2178 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2210 Intf2 ? Context.ToCtx.getObjCInterfaceType(Intf2) : QualType(); in IsStructurallyEquivalent()
2218 if (!IsStructurallyEquivalent(Context, *Ivar1, *Ivar2, D2Type)) in IsStructurallyEquivalent()
2232 if (!IsStructurallyEquivalent(Context, *Method1, *Method2)) in IsStructurallyEquivalent()
2242 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2252 if (Context.NonEquivalentDecls.count(P)) in IsStructurallyEquivalent()
2258 bool Inserted = Context.VisitedDecls.insert(P).second; in IsStructurallyEquivalent()
2262 Context.DeclsToCheck.push(P); in IsStructurallyEquivalent()
2287 ASTContext &Context = Anon->getASTContext(); in findUntaggedStructOrUnionIndex() local
2288 QualType AnonTy = Context.getRecordType(Anon); in findUntaggedStructOrUnionIndex()
2301 if (Context.hasSameType(F->getType(), AnonTy)) in findUntaggedStructOrUnionIndex()
2317 if (Context.hasSameType(FieldType, AnonTy)) in findUntaggedStructOrUnionIndex()