Lines Matching refs:ICS

1434   ImplicitConversionSequence ICS;  in TryUserDefinedConversion()  local
1439 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryUserDefinedConversion()
1440 return ICS; in TryUserDefinedConversion()
1446 switch (IsUserDefinedConversion(S, From, ToType, ICS.UserDefined, in TryUserDefinedConversion()
1451 ICS.setUserDefined(); in TryUserDefinedConversion()
1460 = dyn_cast<CXXConstructorDecl>(ICS.UserDefined.ConversionFunction)) { in TryUserDefinedConversion()
1470 DeclAccessPair Found = ICS.UserDefined.FoundConversionFunction; in TryUserDefinedConversion()
1471 ICS.setStandard(); in TryUserDefinedConversion()
1472 ICS.Standard.setAsIdentityConversion(); in TryUserDefinedConversion()
1473 ICS.Standard.setFromType(From->getType()); in TryUserDefinedConversion()
1474 ICS.Standard.setAllToTypes(ToType); in TryUserDefinedConversion()
1475 ICS.Standard.CopyConstructor = Constructor; in TryUserDefinedConversion()
1476 ICS.Standard.FoundCopyConstructor = Found; in TryUserDefinedConversion()
1478 ICS.Standard.Second = ICK_Derived_To_Base; in TryUserDefinedConversion()
1484 ICS.setAmbiguous(); in TryUserDefinedConversion()
1485 ICS.Ambiguous.setFromType(From->getType()); in TryUserDefinedConversion()
1486 ICS.Ambiguous.setToType(ToType); in TryUserDefinedConversion()
1490 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in TryUserDefinedConversion()
1495 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryUserDefinedConversion()
1499 return ICS; in TryUserDefinedConversion()
1537 ImplicitConversionSequence ICS; in TryImplicitConversion() local
1539 ICS.Standard, CStyle, AllowObjCWritebackConversion)){ in TryImplicitConversion()
1540 ICS.setStandard(); in TryImplicitConversion()
1541 return ICS; in TryImplicitConversion()
1545 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryImplicitConversion()
1546 return ICS; in TryImplicitConversion()
1560 ICS.setStandard(); in TryImplicitConversion()
1561 ICS.Standard.setAsIdentityConversion(); in TryImplicitConversion()
1562 ICS.Standard.setFromType(FromType); in TryImplicitConversion()
1563 ICS.Standard.setAllToTypes(ToType); in TryImplicitConversion()
1569 ICS.Standard.CopyConstructor = nullptr; in TryImplicitConversion()
1573 ICS.Standard.Second = ICK_Derived_To_Base; in TryImplicitConversion()
1575 return ICS; in TryImplicitConversion()
1615 ImplicitConversionSequence ICS = ::TryImplicitConversion( in PerformImplicitConversion() local
1622 return PerformImplicitConversion(From, ToType, ICS, Action); in PerformImplicitConversion()
3745 ImplicitConversionSequence ICS; in DiagnoseMultipleUserDefinedConversion() local
3749 IsUserDefinedConversion(*this, From, ToType, ICS.UserDefined, in DiagnoseMultipleUserDefinedConversion()
3854 const ImplicitConversionSequence &ICS) { in hasDeprecatedStringLiteralToCharPtrConversion() argument
3855 return (ICS.isStandard() && ICS.Standard.DeprecatedStringLiteralToCharPtr) || in hasDeprecatedStringLiteralToCharPtrConversion()
3856 (ICS.isUserDefined() && in hasDeprecatedStringLiteralToCharPtrConversion()
3857 ICS.UserDefined.Before.DeprecatedStringLiteralToCharPtr); in hasDeprecatedStringLiteralToCharPtrConversion()
4716 FindConversionForRefInit(Sema &S, ImplicitConversionSequence &ICS, in FindConversionForRefInit() argument
4800 ICS.setUserDefined(); in FindConversionForRefInit()
4801 ICS.UserDefined.Before = Best->Conversions[0].Standard; in FindConversionForRefInit()
4802 ICS.UserDefined.After = Best->FinalConversion; in FindConversionForRefInit()
4803 ICS.UserDefined.HadMultipleCandidates = HadMultipleCandidates; in FindConversionForRefInit()
4804 ICS.UserDefined.ConversionFunction = Best->Function; in FindConversionForRefInit()
4805 ICS.UserDefined.FoundConversionFunction = Best->FoundDecl; in FindConversionForRefInit()
4806 ICS.UserDefined.EllipsisConversion = false; in FindConversionForRefInit()
4807 assert(ICS.UserDefined.After.ReferenceBinding && in FindConversionForRefInit()
4808 ICS.UserDefined.After.DirectBinding && in FindConversionForRefInit()
4813 ICS.setAmbiguous(); in FindConversionForRefInit()
4817 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in FindConversionForRefInit()
4840 ImplicitConversionSequence ICS; in TryReferenceInit() local
4841 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
4865 ICS.setStandard(); in TryReferenceInit()
4866 ICS.Standard.First = ICK_Identity; in TryReferenceInit()
4869 ICS.Standard.Second = (RefConv & Sema::ReferenceConversions::DerivedToBase) in TryReferenceInit()
4877 ICS.Standard.Third = (RefConv & in TryReferenceInit()
4881 ICS.Standard.setFromType(T2); in TryReferenceInit()
4882 ICS.Standard.setToType(0, T2); in TryReferenceInit()
4883 ICS.Standard.setToType(1, T1); in TryReferenceInit()
4884 ICS.Standard.setToType(2, T1); in TryReferenceInit()
4885 ICS.Standard.ReferenceBinding = true; in TryReferenceInit()
4886 ICS.Standard.DirectBinding = BindsDirectly; in TryReferenceInit()
4887 ICS.Standard.IsLvalueReference = !isRValRef; in TryReferenceInit()
4888 ICS.Standard.BindsToFunctionLvalue = T2->isFunctionType(); in TryReferenceInit()
4889 ICS.Standard.BindsToRvalue = InitCategory.isRValue(); in TryReferenceInit()
4890 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
4891 ICS.Standard.ObjCLifetimeConversionBinding = in TryReferenceInit()
4893 ICS.Standard.CopyConstructor = nullptr; in TryReferenceInit()
4894 ICS.Standard.DeprecatedStringLiteralToCharPtr = false; in TryReferenceInit()
4921 return ICS; in TryReferenceInit()
4934 if (FindConversionForRefInit(S, ICS, DeclType, DeclLoc, in TryReferenceInit()
4937 return ICS; in TryReferenceInit()
4946 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, Init, DeclType); in TryReferenceInit()
4947 return ICS; in TryReferenceInit()
4966 return ICS; in TryReferenceInit()
4981 FindConversionForRefInit(S, ICS, DeclType, DeclLoc, in TryReferenceInit()
4988 if (ICS.isUserDefined() && isRValRef && in TryReferenceInit()
4989 ICS.UserDefined.After.First == ICK_Lvalue_To_Rvalue) in TryReferenceInit()
4990 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
4992 return ICS; in TryReferenceInit()
4997 return ICS; in TryReferenceInit()
5024 return ICS; in TryReferenceInit()
5034 return ICS; in TryReferenceInit()
5040 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, Init, DeclType); in TryReferenceInit()
5041 return ICS; in TryReferenceInit()
5054 ICS = TryImplicitConversion(S, Init, T1, SuppressUserConversions, in TryReferenceInit()
5062 if (ICS.isStandard()) { in TryReferenceInit()
5063 ICS.Standard.ReferenceBinding = true; in TryReferenceInit()
5064 ICS.Standard.IsLvalueReference = !isRValRef; in TryReferenceInit()
5065 ICS.Standard.BindsToFunctionLvalue = false; in TryReferenceInit()
5066 ICS.Standard.BindsToRvalue = true; in TryReferenceInit()
5067 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
5068 ICS.Standard.ObjCLifetimeConversionBinding = false; in TryReferenceInit()
5069 } else if (ICS.isUserDefined()) { in TryReferenceInit()
5071 ICS.UserDefined.ConversionFunction->getReturnType() in TryReferenceInit()
5081 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
5082 return ICS; in TryReferenceInit()
5085 ICS.UserDefined.After.ReferenceBinding = true; in TryReferenceInit()
5086 ICS.UserDefined.After.IsLvalueReference = !isRValRef; in TryReferenceInit()
5087 ICS.UserDefined.After.BindsToFunctionLvalue = false; in TryReferenceInit()
5088 ICS.UserDefined.After.BindsToRvalue = !LValRefType; in TryReferenceInit()
5089 ICS.UserDefined.After.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
5090 ICS.UserDefined.After.ObjCLifetimeConversionBinding = false; in TryReferenceInit()
5093 return ICS; in TryReferenceInit()
5231 ImplicitConversionSequence ICS = TryCopyInitialization( in TryListConversion() local
5238 if (CompareImplicitConversionSequences(S, From->getBeginLoc(), ICS, in TryListConversion()
5241 Result = ICS; in TryListConversion()
5437 ImplicitConversionSequence ICS = in TryCopyInitialization() local
5440 return !ICS.isBad(); in TryCopyInitialization()
5464 ImplicitConversionSequence ICS; in TryObjectArgumentInitialization() local
5500 ICS.setBad(BadConversionSequence::bad_qualifiers, in TryObjectArgumentInitialization()
5502 return ICS; in TryObjectArgumentInitialization()
5509 ICS.setBad(BadConversionSequence::bad_qualifiers, in TryObjectArgumentInitialization()
5511 return ICS; in TryObjectArgumentInitialization()
5524 ICS.setBad(BadConversionSequence::unrelated_class, in TryObjectArgumentInitialization()
5526 return ICS; in TryObjectArgumentInitialization()
5538 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, FromType, in TryObjectArgumentInitialization()
5540 return ICS; in TryObjectArgumentInitialization()
5547 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, FromType, in TryObjectArgumentInitialization()
5549 return ICS; in TryObjectArgumentInitialization()
5555 ICS.setStandard(); in TryObjectArgumentInitialization()
5556 ICS.Standard.setAsIdentityConversion(); in TryObjectArgumentInitialization()
5557 ICS.Standard.Second = SecondKind; in TryObjectArgumentInitialization()
5558 ICS.Standard.setFromType(FromType); in TryObjectArgumentInitialization()
5559 ICS.Standard.setAllToTypes(ImplicitParamType); in TryObjectArgumentInitialization()
5560 ICS.Standard.ReferenceBinding = true; in TryObjectArgumentInitialization()
5561 ICS.Standard.DirectBinding = true; in TryObjectArgumentInitialization()
5562 ICS.Standard.IsLvalueReference = Method->getRefQualifier() != RQ_RValue; in TryObjectArgumentInitialization()
5563 ICS.Standard.BindsToFunctionLvalue = false; in TryObjectArgumentInitialization()
5564 ICS.Standard.BindsToRvalue = FromClassification.isRValue(); in TryObjectArgumentInitialization()
5565 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier in TryObjectArgumentInitialization()
5567 return ICS; in TryObjectArgumentInitialization()
5602 ImplicitConversionSequence ICS = TryObjectArgumentInitialization( in PerformObjectArgumentInitialization() local
5605 if (ICS.isBad()) { in PerformObjectArgumentInitialization()
5606 switch (ICS.Bad.Kind) { in PerformObjectArgumentInitialization()
5648 if (ICS.Standard.Second == ICK_Derived_To_Base) { in PerformObjectArgumentInitialization()
5700 ImplicitConversionSequence ICS = TryContextuallyConvertToBool(*this, From); in PerformContextuallyConvertToBool() local
5701 if (!ICS.isBad()) in PerformContextuallyConvertToBool()
5702 return PerformImplicitConversion(From, Context.BoolTy, ICS, AA_Converting); in PerformContextuallyConvertToBool()
5796 ImplicitConversionSequence ICS = in CheckConvertedConstantExpression() local
5805 switch (ICS.getKind()) { in CheckConvertedConstantExpression()
5807 SCS = &ICS.Standard; in CheckConvertedConstantExpression()
5811 SCS = &ICS.UserDefined.Before; in CheckConvertedConstantExpression()
5813 SCS = &ICS.UserDefined.After; in CheckConvertedConstantExpression()
5853 Result = S.PerformImplicitConversion(From, T, ICS, Sema::AA_Converting); in CheckConvertedConstantExpression()
5994 ImplicitConversionSequence ICS in TryContextuallyConvertToObjCPointer() local
6005 switch (ICS.getKind()) { in TryContextuallyConvertToObjCPointer()
6013 dropPointerConversion(ICS.UserDefined.After); in TryContextuallyConvertToObjCPointer()
6017 dropPointerConversion(ICS.Standard); in TryContextuallyConvertToObjCPointer()
6021 return ICS; in TryContextuallyConvertToObjCPointer()
6032 ImplicitConversionSequence ICS = in PerformContextuallyConvertToObjCPointer() local
6034 if (!ICS.isBad()) in PerformContextuallyConvertToObjCPointer()
6035 return PerformImplicitConversion(From, Ty, ICS, AA_Converting); in PerformContextuallyConvertToObjCPointer()
7592 ImplicitConversionSequence ICS = in AddConversionCandidate() local
7598 switch (ICS.getKind()) { in AddConversionCandidate()
7600 Candidate.FinalConversion = ICS.Standard; in AddConversionCandidate()
7607 GetConversionRank(ICS.Standard.Second) != ICR_Exact_Match) { in AddConversionCandidate()
7619 ICS.Standard.First == ICK_Lvalue_To_Rvalue) { in AddConversionCandidate()
9899 auto IsIllFormedConversion = [&](const ImplicitConversionSequence &ICS) { in isBetterOverloadCandidate() argument
9902 return ICS.isStandard() && in isBetterOverloadCandidate()
9903 ICS.Standard.Second == ICK_Incompatible_Pointer_Conversion; in isBetterOverloadCandidate()
9908 hasDeprecatedStringLiteralToCharPtrConversion(ICS); in isBetterOverloadCandidate()
11611 for (const ImplicitConversionSequence &ICS : Cand->Conversions) { in NoteAmbiguousUserConversions() local
11612 if (ICS.isBad()) break; // all meaningless after first invalid in NoteAmbiguousUserConversions()
11613 if (!ICS.isAmbiguous()) continue; in NoteAmbiguousUserConversions()
11615 ICS.DiagnoseAmbiguousConversion( in NoteAmbiguousUserConversions()