Home | History | Annotate | Download | only in AST

Lines Matching refs:Context

41 // static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
51 // IsStructurallyEquivalent(StructuralEquivalenceContext &Context, Decl *D1,
97 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
99 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
101 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
104 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
110 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
125 return IsStructurallyEquivalent(Context, Name1.getCXXNameType(),
130 Context, Name1.getCXXDeductionGuideTemplate()->getDeclName(),
133 return IsStructurallyEquivalent(Context,
161 StructuralEquivalenceContext &Context;
168 return IsStructurallyEquivalent(Context, E1->getLabel(), E2->getLabel());
193 return IsStructurallyEquivalent(Context, Callee1, Callee2);
216 if (!IsStructurallyEquivalent(Context, DE1->getDeclName(),
219 return IsStructurallyEquivalent(Context, DE1->getQualifier(),
224 return IsStructurallyEquivalent(Context, E1->getType(), E2->getType());
246 if (!IsStructurallyEquivalent(Context, (*Child1)->getType(),
256 return IsStructurallyEquivalent(Context, CastE1->getType(),
265 return IsStructurallyEquivalent(Context, E1->getFoundDecl(),
291 return IsStructurallyEquivalent(Context, E1->getParameter(),
297 return IsStructurallyEquivalent(Context, E1->getArgumentPack(),
312 if (!IsStructurallyEquivalent(Context, (*Child1)->getType(),
323 return IsStructurallyEquivalent(Context, E1->getTypeOfArgument(),
354 StmtComparer(StructuralEquivalenceContext &C) : Context(C) {}
384 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
390 StmtComparer Comparer(Context);
402 if (!IsStructurallyEquivalent(Context, *Child1, *Child2))
418 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
430 if (!IsStructurallyEquivalent(Context, Prefix1, Prefix2))
438 return IsStructurallyEquivalent(Context, NNS1->getAsNamespace(),
441 return IsStructurallyEquivalent(Context, NNS1->getAsNamespaceAlias(),
445 return IsStructurallyEquivalent(Context, QualType(NNS1->getAsType(), 0),
450 return IsStructurallyEquivalent(Context, NNS1->getAsRecordDecl(),
456 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
462 if (!IsStructurallyEquivalent(Context, TemplateDeclN1, TemplateDeclN2))
481 if (!IsStructurallyEquivalent(Context, *I1, *I2))
495 if (!IsStructurallyEquivalent(Context, DN1->getQualifier(),
510 return IsStructurallyEquivalent(Context, P1->getArgumentPack(),
512 IsStructurallyEquivalent(Context, P1->getParameterPack(),
528 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
539 return IsStructurallyEquivalent(Context, Arg1.getAsType(), Arg2.getAsType());
542 if (!IsStructurallyEquivalent(Context, Arg1.getIntegralType(),
550 return IsStructurallyEquivalent(Context, Arg1.getAsDecl(), Arg2.getAsDecl());
556 return IsStructurallyEquivalent(Context, Arg1.getAsTemplate(),
560 return IsStructurallyEquivalent(Context,
565 return IsStructurallyEquivalent(Context, Arg1.getAsExpr(),
573 if (!IsStructurallyEquivalent(Context, Arg1.pack_begin()[I],
585 static bool IsArrayStructurallyEquivalent(StructuralEquivalenceContext &Context,
588 if (!IsStructurallyEquivalent(Context, Array1->getElementType(),
602 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
626 static bool IsEquivalentExceptionSpec(StructuralEquivalenceContext &Context,
642 if (!IsStructurallyEquivalent(Context, Proto1->getExceptionType(I),
647 if (!IsStructurallyEquivalent(Context, Proto1->getNoexceptExpr(),
656 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
664 if (!Context.StrictTypeSpelling) {
667 T1 = Context.FromCtx.getCanonicalType(T1);
668 T2 = Context.ToCtx.getCanonicalType(T2);
697 if (!IsStructurallyEquivalent(Context,
705 if (!IsStructurallyEquivalent(Context,
712 if (!IsStructurallyEquivalent(Context,
719 if (!IsStructurallyEquivalent(Context,
733 if (!IsStructurallyEquivalent(Context, Ref1->getPointeeTypeAsWritten(),
742 if (!IsStructurallyEquivalent(Context, MemPtr1->getPointeeType(),
745 if (!IsStructurallyEquivalent(Context, QualType(MemPtr1->getClass(), 0),
757 if (!IsArrayStructurallyEquivalent(Context, Array1, Array2))
763 if (!IsArrayStructurallyEquivalent(Context, cast<ArrayType>(T1),
771 if (!IsStructurallyEquivalent(Context, Array1->getSizeExpr(),
775 if (!IsArrayStructurallyEquivalent(Context, Array1, Array2))
784 if (!IsStructurallyEquivalent(Context, Array1->getSizeExpr(),
788 if (!IsArrayStructurallyEquivalent(Context, Array1, Array2))
797 if (!IsStructurallyEquivalent(Context, DepAddressSpace1->getAddrSpaceExpr(),
800 if (!IsStructurallyEquivalent(Context, DepAddressSpace1->getPointeeType(),
810 if (!IsStructurallyEquivalent(Context, Vec1->getSizeExpr(),
813 if (!IsStructurallyEquivalent(Context, Vec1->getElementType(),
824 if (!IsStructurallyEquivalent(Context, Vec1->getSizeExpr(),
827 if (!IsStructurallyEquivalent(Context, Vec1->getElementType(),
837 if (!IsStructurallyEquivalent(Context, Vec1->getElementType(),
852 if (!IsStructurallyEquivalent(Context, Mat1->getRowExpr(),
854 !IsStructurallyEquivalent(Context
856 !IsStructurallyEquivalent(Context, Mat1->getElementType(),
867 if (!IsStructurallyEquivalent(Context, Mat1->getElementType(),
882 if (!IsStructurallyEquivalent(Context, Proto1->getParamType(I),
894 cast<FunctionProtoType>(OrigT1.getDesugaredType(Context.FromCtx));
896 cast<FunctionProtoType>(OrigT2.getDesugaredType(Context.ToCtx));
897 if (!IsEquivalentExceptionSpec(Context, OrigProto1, OrigProto2))
907 if (!IsStructurallyEquivalent(Context, Function1->getReturnType(),
910 if (!IsStructurallyEquivalent(Context, Function1->getExtInfo(),
917 if (!IsStructurallyEquivalent(Context,
924 if (!IsStructurallyEquivalent(Context,
929 Context, cast<AttributedType>(T1)->getEquivalentType(),
935 if (!IsStructurallyEquivalent(Context, cast<ParenType>(T1)->getInnerType(),
942 Context, cast<MacroQualifiedType>(T1)->getUnderlyingType(),
948 if (!IsStructurallyEquivalent(Context, cast<TypedefType>(T1)->getDecl(),
955 Context, cast<TypeOfExprType>(T1)->getUnderlyingExpr(),
961 if (!IsStructurallyEquivalent(Context,
969 Context, cast<UnaryTransformType>(T1)->getUnderlyingType(),
975 if (!IsStructurallyEquivalent(Context,
984 if (!IsStructurallyEquivalent(Context, Auto1->getDeducedType(),
1000 if (!IsStructurallyEquivalent(Context, Auto1Args[I], Auto2Args[I]))
1010 if (!IsStructurallyEquivalent(Context, DT1->getTemplateName(),
1013 if (!IsStructurallyEquivalent(Context, DT1->getDeducedType(),
1021 if (!IsStructurallyEquivalent(Context, cast<TagType>(T1)->getDecl(),
1043 if (!IsStructurallyEquivalent(Context,
1047 if (!IsStructurallyEquivalent(Context, Subst1->getReplacementType(),
1056 if (!IsStructurallyEquivalent(Context,
1060 if (!IsStructurallyEquivalent(Context, Subst1->getArgumentPack(),
1069 if (!IsStructurallyEquivalent(Context, Spec1->getTemplateName(),
1075 if (!IsStructurallyEquivalent(Context, Spec1->getArg(I),
1088 if (!IsStructurallyEquivalent(Context, Elab1->getQualifier(),
1091 if (!IsStructurallyEquivalent(Context, Elab1->getNamedType(),
1100 if (!IsStructurallyEquivalent(Context,
1110 if (!IsStructurallyEquivalent(Context, Typename1->getQualifier(),
1123 if (!IsStructurallyEquivalent(Context, Spec1->getQualifier(),
1132 if (!IsStructurallyEquivalent(Context, Spec1->getArg(I),
1140 if (!IsStructurallyEquivalent(Context,
1149 if (!IsStructurallyEquivalent(Context, Iface1->getDecl(),
1158 if (!IsStructurallyEquivalent(Context, Obj1->getDecl(), Obj2->getDecl()))
1164 if (!IsStructurallyEquivalent(Context, Obj1->getProtocol(I),
1174 if (!IsStructurallyEquivalent(Context, Obj1->getBaseType(),
1180 if (!IsStructurallyEquivalent(Context, Obj1->getProtocol(I),
1190 if (!IsStructurallyEquivalent(Context, Ptr1->getPointeeType(),
1197 if (!IsStructurallyEquivalent(Context, cast<AtomicType>(T1)->getValueType(),
1203 if (!IsStructurallyEquivalent(Context, cast<PipeType>(T1)->getElementType(),
1221 !IsStructurallyEquivalent(Context, Int1->getNumBitsExpr(),
1231 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1242 return IsStructurallyEquivalent(Context, D1, D2);
1249 if (Context.Complain) {
1250 Context.Diag2(
1252 Context.getApplicableDiagnostic(diag::err_odr_tag_type_inconsistent))
1253 << Context.ToCtx.getTypeDeclType(Owner2);
1254 Context.Diag2(Field2->getLocation(), diag::note_odr_field_name)
1256 Context.Diag1(Field1->getLocation(), diag::note_odr_field_name)
1262 if (!IsStructurallyEquivalent(Context, Field1->getType(),
1264 if (Context.Complain) {
1265 Context.Diag2(
1267 Context.getApplicableDiagnostic(diag::err_odr_tag_type_inconsistent))
1268 << Context.ToCtx.getTypeDeclType(Owner2);
1269 Context.Diag2(Field2->getLocation(), diag::note_odr_field)
1271 Context.Diag1(Field1->getLocation(), diag::note_odr_field)
1278 return IsStructurallyEquivalent(Context, Field1->getBitWidth(),
1285 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1316 if (!IsStructurallyEquivalent(Context, Conversion1->getConversionType(),
1329 if (!::IsStructurallyEquivalent(Context,
1338 IsStructurallyEquivalentLambdas(StructuralEquivalenceContext &Context,
1342 if (!IsStructurallyEquivalent(Context, D1->getLambdaCallOperator(),
1350 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1364 if (Context.Complain) {
1365 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic(
1367 << Context.ToCtx.getTypeDeclType(D2);
1368 Context.Diag1(D1->getLocation(), diag::note_odr_tag_kind_here)
1375 // If both anonymous structs/unions are in a record context, make sure
1376 // they occur in the same location in the context records.
1394 if (!IsStructurallyEquivalent(Context, Spec1->getSpecializedTemplate(),
1403 if (!IsStructurallyEquivalent(Context, Spec1->getTemplateArgs().get(I),
1425 if (Context.EqKind == StructuralEquivalenceKind::Minimal)
1444 if (!IsStructurallyEquivalentLambdas(Context, D1CXX, D2CXX))
1449 if (Context.Complain) {
1450 Context.Diag2(D2->getLocation(),
1451 Context.getApplicableDiagnostic(
1453 << Context.ToCtx.getTypeDeclType(D2);
1454 Context.Diag2(D2->getLocation(), diag::note_odr_number_of_bases)
1456 Context.Diag1(D1->getLocation(), diag::note_odr_number_of_bases)
1467 if (!IsStructurallyEquivalent(Context, Base1->getType(),
1469 if (Context.Complain) {
1470 Context.Diag2(D2->getLocation(),
1471 Context.getApplicableDiagnostic(
1473 << Context.ToCtx.getTypeDeclType(D2);
1474 Context.Diag2(Base2->getBeginLoc(), diag::note_odr_base)
1476 Context.Diag1(Base1->getBeginLoc(), diag::note_odr_base)
1484 if (Context.Complain) {
1485 Context.Diag2(D2->getLocation(),
1486 Context.getApplicableDiagnostic(
1488 << Context.ToCtx.getTypeDeclType(D2);
1489 Context.Diag2(Base2->getBeginLoc(), diag::note_odr_virtual_base)
1491 Context.Diag1(Base1->getBeginLoc(), diag::note_odr_base)
1505 if (Context.Complain) {
1506 Context.Diag2(D2->getLocation(),
1507 Context.getApplicableDiagnostic(
1509 << Context.ToCtx.getTypeDeclType(D2CXX);
1510 Context.Diag1((*Friend1)->getFriendLoc(), diag::note_odr_friend);
1511 Context.Diag2(D2->getLocation(), diag::note_odr_missing_friend);
1516 if (!IsStructurallyEquivalent(Context, *Friend1, *Friend2)) {
1517 if (Context.Complain) {
1518 Context.Diag2(D2->getLocation(),
1519 Context.getApplicableDiagnostic(
1521 << Context.ToCtx.getTypeDeclType(D2CXX);
1522 Context.Diag1((*Friend1)->getFriendLoc(), diag::note_odr_friend);
1523 Context.Diag2((*Friend2)->getFriendLoc(), diag::note_odr_friend);
1530 if (Context.Complain) {
1531 Context.Diag2(D2->getLocation(),
1532 Context.getApplicableDiagnostic(
1534 << Context.ToCtx.getTypeDeclType(D2);
1535 Context.Diag2((*Friend2)->getFriendLoc(), diag::note_odr_friend);
1536 Context.Diag1(D1->getLocation(), diag::note_odr_missing_friend);
1541 if (Context.Complain) {
1542 Context.Diag2(D2->getLocation(),
1543 Context.getApplicableDiagnostic(
1545 << Context.ToCtx.getTypeDeclType(D2);
1547 Context.Diag1(Base1->getBeginLoc(), diag::note_odr_base)
1549 Context.Diag2(D2->getLocation(), diag::note_odr_missing_base);
1562 if (Context.Complain) {
1563 Context.Diag2(D2->getLocation(),
1564 Context.getApplicableDiagnostic(
1566 << Context.ToCtx.getTypeDeclType(D2);
1567 Context.Diag1(Field1->getLocation(), diag::note_odr_field)
1569 Context.Diag2(D2->getLocation(), diag::note_odr_missing_field);
1574 if (!IsStructurallyEquivalent(Context, *Field1, *Field2))
1579 if (Context.Complain) {
1580 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic(
1582 << Context.ToCtx.getTypeDeclType(D2);
1583 Context.Diag2(Field2->getLocation(), diag::note_odr_field)
1585 Context.Diag1(D1->getLocation(), diag::note_odr_missing_field);
1594 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1620 if (Context.Complain) {
1621 Context.Diag2(D2->getLocation(),
1622 Context.getApplicableDiagnostic(
1624 << Context.ToCtx.getTypeDeclType(D2);
1625 Context.Diag1(EC1->getLocation(), diag::note_odr_enumerator)
1627 Context.Diag2(D2->getLocation(), diag::note_odr_missing_enumerator);
1636 if (Context.Complain) {
1637 Context.Diag2(D2->getLocation(),
1638 Context.getApplicableDiagnostic(
1640 << Context.ToCtx.getTypeDeclType(D2);
1641 Context.Diag2(EC2->getLocation(), diag::note_odr_enumerator)
1643 Context.Diag1(EC1->getLocation(), diag::note_odr_enumerator)
1651 if (Context.Complain) {
1652 Context.Diag2(D2->getLocation(), Context.getApplicableDiagnostic(
1654 << Context.ToCtx.getTypeDeclType(D2);
1655 Context.Diag2(EC2->getLocation(), diag::note_odr_enumerator)
1657 Context.Diag1(D1->getLocation(), diag::note_odr_missing_enumerator);
1665 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1669 if (Context.Complain) {
1670 Context.Diag2(Params2->getTemplateLoc(),
1671 Context.getApplicableDiagnostic(
1674 Context.Diag1(Params1->getTemplateLoc(),
1682 if (Context.Complain) {
1683 Context.Diag2(Params2->getParam(I)->getLocation(),
1684 Context.getApplicableDiagnostic(
1686 Context.Diag1(Params1->getParam(I)->getLocation(),
1692 Context, Params1->getParam(I),
1700 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1704 if (Context.Complain) {
1705 Context.Diag2(D2->getLocation(),
1706 Context.getApplicableDiagnostic(
1709 Context.Diag1(D1->getLocation(), diag::note_odr_parameter_pack_non_pack)
1718 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1722 if (Context.Complain) {
1723 Context.Diag2(D2->getLocation(),
1724 Context.getApplicableDiagnostic(
1727 Context.Diag1(D1->getLocation(), diag::note_odr_parameter_pack_non_pack)
1734 if (!IsStructurallyEquivalent(Context, D1->getType(), D2->getType())) {
1735 if (Context.Complain) {
1736 Context.Diag2(D2->getLocation(),
1737 Context.getApplicableDiagnostic(
1740 Context.Diag1(D1->getLocation(), diag::note_odr_value_here)
1749 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1753 if (Context.Complain) {
1754 Context.Diag2(D2->getLocation(),
1755 Context.getApplicableDiagnostic(
1758 Context.Diag1(D1->getLocation(), diag::note_odr_parameter_pack_non_pack)
1765 return IsStructurallyEquivalent(Context, D1->getTemplateParameters(),
1780 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1784 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2))
1788 return IsStructurallyEquivalent(Context, D1->getTemplatedDecl(),
1792 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1796 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2))
1800 return IsStructurallyEquivalent(Context, D1->getTemplatedDecl()->getType(),
1804 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1808 if (!IsTemplateDeclCommonStructurallyEquivalent(Context, D1, D2))
1812 return IsStructurallyEquivalent(Context, D1->getConstraintExpr(),
1816 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1823 return IsStructurallyEquivalent(Context,
1827 return IsStructurallyEquivalent(Context, D1->getFriendDecl(),
1832 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1837 return IsStructurallyEquivalent(Context, D1->getUnderlyingType(),
1841 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1854 if (!IsStructurallyEquivalent(Context, D1->getType(), D2->getType()))
1861 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
1871 if (Context.NonEquivalentDecls.count(P))
1877 bool Inserted = Context.VisitedDecls.insert(P).second;
1881 Context.DeclsToCheck.push(P);
1906 ASTContext &Context = Anon->getASTContext();
1907 QualType AnonTy = Context.getRecordType(Anon);
1920 if (Context.hasSameType(F->getType(), AnonTy))
1936 if (Context.hasSameType(FieldType, AnonTy))