Lines Matching refs:Context
98 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
100 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
102 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
104 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
107 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
110 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
116 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
131 return IsStructurallyEquivalent(Context, Name1.getCXXNameType(), in IsStructurallyEquivalent()
136 Context, Name1.getCXXDeductionGuideTemplate()->getDeclName(), in IsStructurallyEquivalent()
139 return IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
167 StructuralEquivalenceContext &Context; member in __anon60b649440111::StmtComparer
174 return IsStructurallyEquivalent(Context, E1->getLabel(), E2->getLabel()); in IsStmtEquivalent()
199 return IsStructurallyEquivalent(Context, Callee1, Callee2); in IsStmtEquivalent()
225 return IsStructurallyEquivalent(Context, const_cast<ValueDecl *>(Decl1), in IsStmtEquivalent()
231 if (!IsStructurallyEquivalent(Context, DE1->getDeclName(), in IsStmtEquivalent()
234 return IsStructurallyEquivalent(Context, DE1->getQualifier(), in IsStmtEquivalent()
239 return IsStructurallyEquivalent(Context, E1->getType(), E2->getType()); in IsStmtEquivalent()
261 if (!IsStructurallyEquivalent(Context, (*Child1)->getType(), in IsStmtEquivalent()
271 return IsStructurallyEquivalent(Context, CastE1->getType(), in IsStmtEquivalent()
280 return IsStructurallyEquivalent(Context, E1->getFoundDecl(), in IsStmtEquivalent()
317 if (!IsStructurallyEquivalent(Context, E1->getAssociatedDecl(), in IsStmtEquivalent()
329 return IsStructurallyEquivalent(Context, E1->getArgumentPack(), in IsStmtEquivalent()
344 if (!IsStructurallyEquivalent(Context, (*Child1)->getType(), in IsStmtEquivalent()
353 if (!IsStructurallyEquivalent(Context, E1->getMember(), E2->getMember())) { in IsStmtEquivalent()
356 return IsStructurallyEquivalent(Context, E1->getBaseType(), in IsStmtEquivalent()
364 return IsStructurallyEquivalent(Context, E1->getTypeOfArgument(), in IsStmtEquivalent()
378 if (!IsStructurallyEquivalent(Context, E1->getName(), E2->getName())) in IsStmtEquivalent()
385 !IsStructurallyEquivalent(Context, E1->getQualifier(), in IsStmtEquivalent()
395 if (!IsStructurallyEquivalent(Context, Args1[ArgI], Args2[ArgI])) in IsStmtEquivalent()
423 StmtComparer(StructuralEquivalenceContext &C) : Context(C) {} in StmtComparer()
452 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
457 IsStructurallyEquivalent(Context, E1->getSubExpr(), E2->getArg(0)); in IsStructurallyEquivalent()
460 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
465 IsStructurallyEquivalent(Context, E1->getArg(0), E2->getSubExpr()); in IsStructurallyEquivalent()
468 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
473 IsStructurallyEquivalent(Context, E1->getLHS(), E2->getArg(0)) && in IsStructurallyEquivalent()
474 IsStructurallyEquivalent(Context, E1->getRHS(), E2->getArg(1)); in IsStructurallyEquivalent()
477 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
482 IsStructurallyEquivalent(Context, E1->getArg(0), E2->getLHS()) && in IsStructurallyEquivalent()
483 IsStructurallyEquivalent(Context, E1->getArg(1), E2->getRHS()); in IsStructurallyEquivalent()
487 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
502 return IsStructurallyEquivalent(Context, E1Unary, E2CXXOperatorCall); in IsStructurallyEquivalent()
504 return IsStructurallyEquivalent(Context, E1Binary, E2CXXOperatorCall); in IsStructurallyEquivalent()
508 return IsStructurallyEquivalent(Context, E1CXXOperatorCall, E2Unary); in IsStructurallyEquivalent()
510 return IsStructurallyEquivalent(Context, E1CXXOperatorCall, E2Binary); in IsStructurallyEquivalent()
514 StmtComparer Comparer(Context); in IsStructurallyEquivalent()
526 if (!IsStructurallyEquivalent(Context, *Child1, *Child2)) in IsStructurallyEquivalent()
542 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
554 if (!IsStructurallyEquivalent(Context, Prefix1, Prefix2)) in IsStructurallyEquivalent()
562 return IsStructurallyEquivalent(Context, NNS1->getAsNamespace(), in IsStructurallyEquivalent()
565 return IsStructurallyEquivalent(Context, NNS1->getAsNamespaceAlias(), in IsStructurallyEquivalent()
569 return IsStructurallyEquivalent(Context, QualType(NNS1->getAsType(), 0), in IsStructurallyEquivalent()
574 return IsStructurallyEquivalent(Context, NNS1->getAsRecordDecl(), in IsStructurallyEquivalent()
580 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
586 if (!IsStructurallyEquivalent(Context, TemplateDeclN1, TemplateDeclN2)) in IsStructurallyEquivalent()
605 if (!IsStructurallyEquivalent(Context, *I1, *I2)) in IsStructurallyEquivalent()
619 if (!IsStructurallyEquivalent(Context, DN1->getQualifier(), in IsStructurallyEquivalent()
634 return IsStructurallyEquivalent(Context, P1->getArgumentPack(), in IsStructurallyEquivalent()
636 IsStructurallyEquivalent(Context, P1->getAssociatedDecl(), in IsStructurallyEquivalent()
653 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
658 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
669 return IsStructurallyEquivalent(Context, Arg1.getAsType(), Arg2.getAsType()); in IsStructurallyEquivalent()
672 if (!IsStructurallyEquivalent(Context, Arg1.getIntegralType(), in IsStructurallyEquivalent()
680 return IsStructurallyEquivalent(Context, Arg1.getAsDecl(), Arg2.getAsDecl()); in IsStructurallyEquivalent()
686 return IsStructurallyEquivalent(Context, Arg1.getAsTemplate(), in IsStructurallyEquivalent()
690 return IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
695 return IsStructurallyEquivalent(Context, Arg1.getAsExpr(), in IsStructurallyEquivalent()
702 return IsStructurallyEquivalent(Context, Arg1.pack_elements(), in IsStructurallyEquivalent()
710 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
716 if (!IsStructurallyEquivalent(Context, Args1[I], Args2[I])) in IsStructurallyEquivalent()
723 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
726 return IsStructurallyEquivalent(Context, Arg1.getArgument(), in IsStructurallyEquivalent()
732 static bool IsArrayStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsArrayStructurallyEquivalent() argument
735 if (!IsStructurallyEquivalent(Context, Array1->getElementType(), in IsArrayStructurallyEquivalent()
749 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
773 static bool IsEquivalentExceptionSpec(StructuralEquivalenceContext &Context, in IsEquivalentExceptionSpec() argument
789 if (!IsStructurallyEquivalent(Context, Proto1->getExceptionType(I), in IsEquivalentExceptionSpec()
794 if (!IsStructurallyEquivalent(Context, Proto1->getNoexceptExpr(), in IsEquivalentExceptionSpec()
803 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
811 if (!Context.StrictTypeSpelling) { in IsStructurallyEquivalent()
814 T1 = Context.FromCtx.getCanonicalType(T1); in IsStructurallyEquivalent()
815 T2 = Context.ToCtx.getCanonicalType(T2); in IsStructurallyEquivalent()
844 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
853 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
860 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
867 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
881 if (!IsStructurallyEquivalent(Context, Ref1->getPointeeTypeAsWritten(), in IsStructurallyEquivalent()
890 if (!IsStructurallyEquivalent(Context, MemPtr1->getPointeeType(), in IsStructurallyEquivalent()
893 if (!IsStructurallyEquivalent(Context, QualType(MemPtr1->getClass(), 0), in IsStructurallyEquivalent()
905 if (!IsArrayStructurallyEquivalent(Context, Array1, Array2)) in IsStructurallyEquivalent()
911 if (!IsArrayStructurallyEquivalent(Context, cast<ArrayType>(T1), in IsStructurallyEquivalent()
919 if (!IsStructurallyEquivalent(Context, Array1->getSizeExpr(), in IsStructurallyEquivalent()
923 if (!IsArrayStructurallyEquivalent(Context, Array1, Array2)) in IsStructurallyEquivalent()
932 if (!IsStructurallyEquivalent(Context, Array1->getSizeExpr(), in IsStructurallyEquivalent()
936 if (!IsArrayStructurallyEquivalent(Context, Array1, Array2)) in IsStructurallyEquivalent()
945 if (!IsStructurallyEquivalent(Context, DepAddressSpace1->getAddrSpaceExpr(), in IsStructurallyEquivalent()
948 if (!IsStructurallyEquivalent(Context, DepAddressSpace1->getPointeeType(), in IsStructurallyEquivalent()
958 if (!IsStructurallyEquivalent(Context, Vec1->getSizeExpr(), in IsStructurallyEquivalent()
961 if (!IsStructurallyEquivalent(Context, Vec1->getElementType(), in IsStructurallyEquivalent()
972 if (!IsStructurallyEquivalent(Context, Vec1->getSizeExpr(), in IsStructurallyEquivalent()
975 if (!IsStructurallyEquivalent(Context, Vec1->getElementType(), in IsStructurallyEquivalent()
985 if (!IsStructurallyEquivalent(Context, Vec1->getElementType(), in IsStructurallyEquivalent()
1000 if (!IsStructurallyEquivalent(Context, Mat1->getRowExpr(), in IsStructurallyEquivalent()
1002 !IsStructurallyEquivalent(Context, Mat1->getColumnExpr(), in IsStructurallyEquivalent()
1004 !IsStructurallyEquivalent(Context, Mat1->getElementType(), in IsStructurallyEquivalent()
1015 if (!IsStructurallyEquivalent(Context, Mat1->getElementType(), in IsStructurallyEquivalent()
1030 if (!IsStructurallyEquivalent(Context, Proto1->getParamType(I), in IsStructurallyEquivalent()
1042 cast<FunctionProtoType>(OrigT1.getDesugaredType(Context.FromCtx)); in IsStructurallyEquivalent()
1044 cast<FunctionProtoType>(OrigT2.getDesugaredType(Context.ToCtx)); in IsStructurallyEquivalent()
1045 if (!IsEquivalentExceptionSpec(Context, OrigProto1, OrigProto2)) in IsStructurallyEquivalent()
1055 if (!IsStructurallyEquivalent(Context, Function1->getReturnType(), in IsStructurallyEquivalent()
1058 if (!IsStructurallyEquivalent(Context, Function1->getExtInfo(), in IsStructurallyEquivalent()
1065 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1072 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1077 Context, cast<AttributedType>(T1)->getEquivalentType(), in IsStructurallyEquivalent()
1083 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1091 Context, cast<BTFTagAttributedType>(T1)->getWrappedType(), in IsStructurallyEquivalent()
1097 if (!IsStructurallyEquivalent(Context, cast<ParenType>(T1)->getInnerType(), in IsStructurallyEquivalent()
1104 Context, cast<MacroQualifiedType>(T1)->getUnderlyingType(), in IsStructurallyEquivalent()
1110 if (!IsStructurallyEquivalent(Context, cast<UsingType>(T1)->getFoundDecl(), in IsStructurallyEquivalent()
1113 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1120 if (!IsStructurallyEquivalent(Context, cast<TypedefType>(T1)->getDecl(), in IsStructurallyEquivalent()
1122 !IsStructurallyEquivalent(Context, cast<TypedefType>(T1)->desugar(), in IsStructurallyEquivalent()
1129 Context, cast<TypeOfExprType>(T1)->getUnderlyingExpr(), in IsStructurallyEquivalent()
1135 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1143 Context, cast<UnaryTransformType>(T1)->getUnderlyingType(), in IsStructurallyEquivalent()
1149 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1158 if (!IsStructurallyEquivalent(Context, Auto1->getDeducedType(), in IsStructurallyEquivalent()
1167 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1178 if (!IsStructurallyEquivalent(Context, DT1->getTemplateName(), in IsStructurallyEquivalent()
1181 if (!IsStructurallyEquivalent(Context, DT1->getDeducedType(), in IsStructurallyEquivalent()
1189 if (!IsStructurallyEquivalent(Context, cast<TagType>(T1)->getDecl(), in IsStructurallyEquivalent()
1197 if (!Context.IgnoreTemplateParmDepth && in IsStructurallyEquivalent()
1212 if (!IsStructurallyEquivalent(Context, Subst1->getReplacementType(), in IsStructurallyEquivalent()
1215 if (!IsStructurallyEquivalent(Context, Subst1->getAssociatedDecl(), in IsStructurallyEquivalent()
1228 if (!IsStructurallyEquivalent(Context, Subst1->getAssociatedDecl(), in IsStructurallyEquivalent()
1233 if (!IsStructurallyEquivalent(Context, Subst1->getArgumentPack(), in IsStructurallyEquivalent()
1242 if (!IsStructurallyEquivalent(Context, Spec1->getTemplateName(), in IsStructurallyEquivalent()
1245 if (!IsStructurallyEquivalent(Context, Spec1->template_arguments(), in IsStructurallyEquivalent()
1259 if (!IsStructurallyEquivalent(Context, Elab1->getQualifier(), in IsStructurallyEquivalent()
1262 if (!IsStructurallyEquivalent(Context, Elab1->getNamedType(), in IsStructurallyEquivalent()
1271 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1281 if (!IsStructurallyEquivalent(Context, Typename1->getQualifier(), in IsStructurallyEquivalent()
1294 if (!IsStructurallyEquivalent(Context, Spec1->getQualifier(), in IsStructurallyEquivalent()
1300 if (!IsStructurallyEquivalent(Context, Spec1->template_arguments(), in IsStructurallyEquivalent()
1307 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1314 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1317 if (!IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1326 if (!IsStructurallyEquivalent(Context, Iface1->getDecl(), in IsStructurallyEquivalent()
1335 if (!IsStructurallyEquivalent(Context, Obj1->getDecl(), Obj2->getDecl())) in IsStructurallyEquivalent()
1341 if (!IsStructurallyEquivalent(Context, Obj1->getProtocol(I), in IsStructurallyEquivalent()
1351 if (!IsStructurallyEquivalent(Context, Obj1->getBaseType(), in IsStructurallyEquivalent()
1357 if (!IsStructurallyEquivalent(Context, Obj1->getProtocol(I), in IsStructurallyEquivalent()
1367 if (!IsStructurallyEquivalent(Context, Ptr1->getPointeeType(), in IsStructurallyEquivalent()
1374 if (!IsStructurallyEquivalent(Context, cast<AtomicType>(T1)->getValueType(), in IsStructurallyEquivalent()
1380 if (!IsStructurallyEquivalent(Context, cast<PipeType>(T1)->getElementType(), in IsStructurallyEquivalent()
1398 !IsStructurallyEquivalent(Context, Int1->getNumBitsExpr(), in IsStructurallyEquivalent()
1408 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1415 if (!IsStructurallyEquivalent(Context, D1->getType(), D2->getType())) in IsStructurallyEquivalent()
1427 return IsStructurallyEquivalent(Context, D1->getInit(), D2->getInit()); in IsStructurallyEquivalent()
1430 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1442 return IsStructurallyEquivalent(Context, D1, D2); in IsStructurallyEquivalent()
1449 if (Context.Complain) { in IsStructurallyEquivalent()
1450 Context.Diag2( in IsStructurallyEquivalent()
1452 Context.getApplicableDiagnostic(diag::err_odr_tag_type_inconsistent)) in IsStructurallyEquivalent()
1454 Context.Diag2(Field2->getLocation(), diag::note_odr_field_name) in IsStructurallyEquivalent()
1456 Context.Diag1(Field1->getLocation(), diag::note_odr_field_name) in IsStructurallyEquivalent()
1462 if (!IsStructurallyEquivalent(Context, Field1->getType(), in IsStructurallyEquivalent()
1464 if (Context.Complain) { in IsStructurallyEquivalent()
1465 Context.Diag2( in IsStructurallyEquivalent()
1467 Context.getApplicableDiagnostic(diag::err_odr_tag_type_inconsistent)) in IsStructurallyEquivalent()
1469 Context.Diag2(Field2->getLocation(), diag::note_odr_field) in IsStructurallyEquivalent()
1471 Context.Diag1(Field1->getLocation(), diag::note_odr_field) in IsStructurallyEquivalent()
1478 return IsStructurallyEquivalent(Context, Field1->getBitWidth(), in IsStructurallyEquivalent()
1485 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1488 return IsStructurallyEquivalent(Context, Field1, Field2, in IsStructurallyEquivalent()
1489 Context.ToCtx.getTypeDeclType(Owner2)); in IsStructurallyEquivalent()
1493 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1526 if (!IsStructurallyEquivalent(Context, Conversion1->getConversionType(), in IsStructurallyEquivalent()
1539 if (!::IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
1548 IsStructurallyEquivalentLambdas(StructuralEquivalenceContext &Context, in IsStructurallyEquivalentLambdas() argument
1552 if (!IsStructurallyEquivalent(Context, D1->getLambdaCallOperator(), in IsStructurallyEquivalentLambdas()
1561 IsRecordContextStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsRecordContextStructurallyEquivalent() argument
1591 if (!IsStructurallyEquivalent(Context, D1Spec, D2Spec)) in IsRecordContextStructurallyEquivalent()
1614 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1621 if (Context.Complain) { in IsStructurallyEquivalent()
1622 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1624 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1625 Context.Diag1(D1->getLocation(), diag::note_odr_tag_kind_here) in IsStructurallyEquivalent()
1648 if (!IsRecordContextStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
1657 if (!IsStructurallyEquivalent(Context, Spec1->getSpecializedTemplate(), in IsStructurallyEquivalent()
1666 if (!IsStructurallyEquivalent(Context, Spec1->getTemplateArgs().get(I), in IsStructurallyEquivalent()
1688 if (Context.EqKind == StructuralEquivalenceKind::Minimal) in IsStructurallyEquivalent()
1707 if (!IsStructurallyEquivalentLambdas(Context, D1CXX, D2CXX)) in IsStructurallyEquivalent()
1712 if (Context.Complain) { in IsStructurallyEquivalent()
1713 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1714 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1716 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1717 Context.Diag2(D2->getLocation(), diag::note_odr_number_of_bases) in IsStructurallyEquivalent()
1719 Context.Diag1(D1->getLocation(), diag::note_odr_number_of_bases) in IsStructurallyEquivalent()
1730 if (!IsStructurallyEquivalent(Context, Base1->getType(), in IsStructurallyEquivalent()
1732 if (Context.Complain) { in IsStructurallyEquivalent()
1733 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1734 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1736 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1737 Context.Diag2(Base2->getBeginLoc(), diag::note_odr_base) in IsStructurallyEquivalent()
1739 Context.Diag1(Base1->getBeginLoc(), diag::note_odr_base) in IsStructurallyEquivalent()
1747 if (Context.Complain) { in IsStructurallyEquivalent()
1748 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1749 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1751 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1752 Context.Diag2(Base2->getBeginLoc(), diag::note_odr_virtual_base) in IsStructurallyEquivalent()
1754 Context.Diag1(Base1->getBeginLoc(), diag::note_odr_base) in IsStructurallyEquivalent()
1768 if (Context.Complain) { in IsStructurallyEquivalent()
1769 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1770 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1772 << Context.ToCtx.getTypeDeclType(D2CXX); in IsStructurallyEquivalent()
1773 Context.Diag1((*Friend1)->getFriendLoc(), diag::note_odr_friend); in IsStructurallyEquivalent()
1774 Context.Diag2(D2->getLocation(), diag::note_odr_missing_friend); in IsStructurallyEquivalent()
1779 if (!IsStructurallyEquivalent(Context, *Friend1, *Friend2)) { in IsStructurallyEquivalent()
1780 if (Context.Complain) { in IsStructurallyEquivalent()
1781 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1782 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1784 << Context.ToCtx.getTypeDeclType(D2CXX); in IsStructurallyEquivalent()
1785 Context.Diag1((*Friend1)->getFriendLoc(), diag::note_odr_friend); in IsStructurallyEquivalent()
1786 Context.Diag2((*Friend2)->getFriendLoc(), diag::note_odr_friend); in IsStructurallyEquivalent()
1793 if (Context.Complain) { in IsStructurallyEquivalent()
1794 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1795 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1797 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1798 Context.Diag2((*Friend2)->getFriendLoc(), diag::note_odr_friend); in IsStructurallyEquivalent()
1799 Context.Diag1(D1->getLocation(), diag::note_odr_missing_friend); in IsStructurallyEquivalent()
1804 if (Context.Complain) { in IsStructurallyEquivalent()
1805 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1806 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1808 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1810 Context.Diag1(Base1->getBeginLoc(), diag::note_odr_base) in IsStructurallyEquivalent()
1812 Context.Diag2(D2->getLocation(), diag::note_odr_missing_base); in IsStructurallyEquivalent()
1819 QualType D2Type = Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1826 if (Context.Complain) { in IsStructurallyEquivalent()
1827 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1828 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1830 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1831 Context.Diag1(Field1->getLocation(), diag::note_odr_field) in IsStructurallyEquivalent()
1833 Context.Diag2(D2->getLocation(), diag::note_odr_missing_field); in IsStructurallyEquivalent()
1838 if (!IsStructurallyEquivalent(Context, *Field1, *Field2, D2Type)) in IsStructurallyEquivalent()
1843 if (Context.Complain) { in IsStructurallyEquivalent()
1844 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1846 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1847 Context.Diag2(Field2->getLocation(), diag::note_odr_field) in IsStructurallyEquivalent()
1849 Context.Diag1(D1->getLocation(), diag::note_odr_missing_field); in IsStructurallyEquivalent()
1857 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1873 return IsStructurallyEquivalent(Context, D1->getInitExpr(), in IsStructurallyEquivalent()
1878 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1897 if (Context.Complain) { in IsStructurallyEquivalent()
1898 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1899 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1901 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1902 Context.Diag1(EC1->getLocation(), diag::note_odr_enumerator) in IsStructurallyEquivalent()
1904 Context.Diag2(D2->getLocation(), diag::note_odr_missing_enumerator); in IsStructurallyEquivalent()
1913 if (Context.Complain) { in IsStructurallyEquivalent()
1914 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1915 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1917 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1918 Context.Diag2(EC2->getLocation(), diag::note_odr_enumerator) in IsStructurallyEquivalent()
1920 Context.Diag1(EC1->getLocation(), diag::note_odr_enumerator) in IsStructurallyEquivalent()
1928 if (Context.Complain) { in IsStructurallyEquivalent()
1929 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1931 << Context.ToCtx.getTypeDeclType(D2); in IsStructurallyEquivalent()
1932 Context.Diag2(EC2->getLocation(), diag::note_odr_enumerator) in IsStructurallyEquivalent()
1934 Context.Diag1(D1->getLocation(), diag::note_odr_missing_enumerator); in IsStructurallyEquivalent()
1942 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1946 if (Context.Complain) { in IsStructurallyEquivalent()
1947 Context.Diag2(Params2->getTemplateLoc(), in IsStructurallyEquivalent()
1948 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1951 Context.Diag1(Params1->getTemplateLoc(), in IsStructurallyEquivalent()
1959 if (Context.Complain) { in IsStructurallyEquivalent()
1960 Context.Diag2(Params2->getParam(I)->getLocation(), in IsStructurallyEquivalent()
1961 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1963 Context.Diag1(Params1->getParam(I)->getLocation(), in IsStructurallyEquivalent()
1969 if (!IsStructurallyEquivalent(Context, Params1->getParam(I), in IsStructurallyEquivalent()
1977 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1981 if (Context.Complain) { in IsStructurallyEquivalent()
1982 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
1983 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
1986 Context.Diag1(D1->getLocation(), diag::note_odr_parameter_pack_non_pack) in IsStructurallyEquivalent()
1995 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
1999 if (Context.Complain) { in IsStructurallyEquivalent()
2000 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
2001 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
2004 Context.Diag1(D1->getLocation(), diag::note_odr_parameter_pack_non_pack) in IsStructurallyEquivalent()
2009 if (!Context.IgnoreTemplateParmDepth && D1->getDepth() != D2->getDepth()) in IsStructurallyEquivalent()
2014 if (!IsStructurallyEquivalent(Context, D1->getType(), D2->getType())) { in IsStructurallyEquivalent()
2015 if (Context.Complain) { in IsStructurallyEquivalent()
2016 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
2017 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
2020 Context.Diag1(D1->getLocation(), diag::note_odr_value_here) in IsStructurallyEquivalent()
2029 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2033 if (Context.Complain) { in IsStructurallyEquivalent()
2034 Context.Diag2(D2->getLocation(), in IsStructurallyEquivalent()
2035 Context.getApplicableDiagnostic( in IsStructurallyEquivalent()
2038 Context.Diag1(D1->getLocation(), diag::note_odr_parameter_pack_non_pack) in IsStructurallyEquivalent()
2045 return IsStructurallyEquivalent(Context, D1->getTemplateParameters(), in IsStructurallyEquivalent()
2060 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2064 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
2068 return IsStructurallyEquivalent(Context, D1->getTemplatedDecl(), in IsStructurallyEquivalent()
2072 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2076 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
2080 return IsStructurallyEquivalent(Context, D1->getTemplatedDecl()->getType(), in IsStructurallyEquivalent()
2084 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2088 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
2092 return IsStructurallyEquivalent(Context, D1->getTemplatedDecl(), in IsStructurallyEquivalent()
2096 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2100 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2)) in IsStructurallyEquivalent()
2104 return IsStructurallyEquivalent(Context, D1->getConstraintExpr(), in IsStructurallyEquivalent()
2108 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2115 return IsStructurallyEquivalent(Context, in IsStructurallyEquivalent()
2119 return IsStructurallyEquivalent(Context, D1->getFriendDecl(), in IsStructurallyEquivalent()
2124 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2129 return IsStructurallyEquivalent(Context, D1->getUnderlyingType(), in IsStructurallyEquivalent()
2133 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2146 if (!IsStructurallyEquivalent(Context, D1->getType(), D2->getType())) in IsStructurallyEquivalent()
2152 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2158 return IsStructurallyEquivalent(Context, cast<FieldDecl>(D1), in IsStructurallyEquivalent()
2162 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2165 Context.ToCtx.getObjCInterfaceType(D2->getContainingInterface()); in IsStructurallyEquivalent()
2166 return IsStructurallyEquivalent(Context, D1, D2, Owner2Type); in IsStructurallyEquivalent()
2169 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2195 if (!IsStructurallyEquivalent(Context, Method1->getReturnType(), in IsStructurallyEquivalent()
2208 if (!IsStructurallyEquivalent(Context, *ParamT1, *ParamT2)) in IsStructurallyEquivalent()
2215 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2247 Intf2 ? Context.ToCtx.getObjCInterfaceType(Intf2) : QualType(); in IsStructurallyEquivalent()
2255 if (!IsStructurallyEquivalent(Context, *Ivar1, *Ivar2, D2Type)) in IsStructurallyEquivalent()
2269 if (!IsStructurallyEquivalent(Context, *Method1, *Method2)) in IsStructurallyEquivalent()
2279 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context, in IsStructurallyEquivalent() argument
2289 if (Context.NonEquivalentDecls.count(P)) in IsStructurallyEquivalent()
2295 bool Inserted = Context.VisitedDecls.insert(P).second; in IsStructurallyEquivalent()
2299 Context.DeclsToCheck.push(P); in IsStructurallyEquivalent()
2324 ASTContext &Context = Anon->getASTContext(); in findUntaggedStructOrUnionIndex() local
2325 QualType AnonTy = Context.getRecordType(Anon); in findUntaggedStructOrUnionIndex()
2338 if (Context.hasSameType(F->getType(), AnonTy)) in findUntaggedStructOrUnionIndex()
2354 if (Context.hasSameType(FieldType, AnonTy)) in findUntaggedStructOrUnionIndex()