Lines Matching refs:ICS

1544   ImplicitConversionSequence ICS;  in TryUserDefinedConversion()  local
1549 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryUserDefinedConversion()
1550 return ICS; in TryUserDefinedConversion()
1556 switch (IsUserDefinedConversion(S, From, ToType, ICS.UserDefined, in TryUserDefinedConversion()
1561 ICS.setUserDefined(); in TryUserDefinedConversion()
1570 = dyn_cast<CXXConstructorDecl>(ICS.UserDefined.ConversionFunction)) { in TryUserDefinedConversion()
1580 DeclAccessPair Found = ICS.UserDefined.FoundConversionFunction; in TryUserDefinedConversion()
1581 ICS.setStandard(); in TryUserDefinedConversion()
1582 ICS.Standard.setAsIdentityConversion(); in TryUserDefinedConversion()
1583 ICS.Standard.setFromType(From->getType()); in TryUserDefinedConversion()
1584 ICS.Standard.setAllToTypes(ToType); in TryUserDefinedConversion()
1585 ICS.Standard.CopyConstructor = Constructor; in TryUserDefinedConversion()
1586 ICS.Standard.FoundCopyConstructor = Found; in TryUserDefinedConversion()
1588 ICS.Standard.Second = ICK_Derived_To_Base; in TryUserDefinedConversion()
1594 ICS.setAmbiguous(); in TryUserDefinedConversion()
1595 ICS.Ambiguous.setFromType(From->getType()); in TryUserDefinedConversion()
1596 ICS.Ambiguous.setToType(ToType); in TryUserDefinedConversion()
1600 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in TryUserDefinedConversion()
1605 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryUserDefinedConversion()
1609 return ICS; in TryUserDefinedConversion()
1647 ImplicitConversionSequence ICS; in TryImplicitConversion() local
1649 ICS.Standard, CStyle, AllowObjCWritebackConversion)){ in TryImplicitConversion()
1650 ICS.setStandard(); in TryImplicitConversion()
1651 return ICS; in TryImplicitConversion()
1655 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryImplicitConversion()
1656 return ICS; in TryImplicitConversion()
1670 ICS.setStandard(); in TryImplicitConversion()
1671 ICS.Standard.setAsIdentityConversion(); in TryImplicitConversion()
1672 ICS.Standard.setFromType(FromType); in TryImplicitConversion()
1673 ICS.Standard.setAllToTypes(ToType); in TryImplicitConversion()
1679 ICS.Standard.CopyConstructor = nullptr; in TryImplicitConversion()
1683 ICS.Standard.Second = ICK_Derived_To_Base; in TryImplicitConversion()
1685 return ICS; in TryImplicitConversion()
1725 ImplicitConversionSequence ICS = ::TryImplicitConversion( in PerformImplicitConversion() local
1732 return PerformImplicitConversion(From, ToType, ICS, Action); in PerformImplicitConversion()
3900 ImplicitConversionSequence ICS; in DiagnoseMultipleUserDefinedConversion() local
3904 IsUserDefinedConversion(*this, From, ToType, ICS.UserDefined, in DiagnoseMultipleUserDefinedConversion()
4009 const ImplicitConversionSequence &ICS) { in hasDeprecatedStringLiteralToCharPtrConversion() argument
4010 return (ICS.isStandard() && ICS.Standard.DeprecatedStringLiteralToCharPtr) || in hasDeprecatedStringLiteralToCharPtrConversion()
4011 (ICS.isUserDefined() && in hasDeprecatedStringLiteralToCharPtrConversion()
4012 ICS.UserDefined.Before.DeprecatedStringLiteralToCharPtr); in hasDeprecatedStringLiteralToCharPtrConversion()
4885 FindConversionForRefInit(Sema &S, ImplicitConversionSequence &ICS, in FindConversionForRefInit() argument
4969 ICS.setUserDefined(); in FindConversionForRefInit()
4970 ICS.UserDefined.Before = Best->Conversions[0].Standard; in FindConversionForRefInit()
4971 ICS.UserDefined.After = Best->FinalConversion; in FindConversionForRefInit()
4972 ICS.UserDefined.HadMultipleCandidates = HadMultipleCandidates; in FindConversionForRefInit()
4973 ICS.UserDefined.ConversionFunction = Best->Function; in FindConversionForRefInit()
4974 ICS.UserDefined.FoundConversionFunction = Best->FoundDecl; in FindConversionForRefInit()
4975 ICS.UserDefined.EllipsisConversion = false; in FindConversionForRefInit()
4976 assert(ICS.UserDefined.After.ReferenceBinding && in FindConversionForRefInit()
4977 ICS.UserDefined.After.DirectBinding && in FindConversionForRefInit()
4982 ICS.setAmbiguous(); in FindConversionForRefInit()
4986 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in FindConversionForRefInit()
5009 ImplicitConversionSequence ICS; in TryReferenceInit() local
5010 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
5034 ICS.setStandard(); in TryReferenceInit()
5035 ICS.Standard.First = ICK_Identity; in TryReferenceInit()
5038 ICS.Standard.Second = (RefConv & Sema::ReferenceConversions::DerivedToBase) in TryReferenceInit()
5046 ICS.Standard.Third = (RefConv & in TryReferenceInit()
5050 ICS.Standard.setFromType(T2); in TryReferenceInit()
5051 ICS.Standard.setToType(0, T2); in TryReferenceInit()
5052 ICS.Standard.setToType(1, T1); in TryReferenceInit()
5053 ICS.Standard.setToType(2, T1); in TryReferenceInit()
5054 ICS.Standard.ReferenceBinding = true; in TryReferenceInit()
5055 ICS.Standard.DirectBinding = BindsDirectly; in TryReferenceInit()
5056 ICS.Standard.IsLvalueReference = !isRValRef; in TryReferenceInit()
5057 ICS.Standard.BindsToFunctionLvalue = T2->isFunctionType(); in TryReferenceInit()
5058 ICS.Standard.BindsToRvalue = InitCategory.isRValue(); in TryReferenceInit()
5059 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
5060 ICS.Standard.ObjCLifetimeConversionBinding = in TryReferenceInit()
5062 ICS.Standard.CopyConstructor = nullptr; in TryReferenceInit()
5063 ICS.Standard.DeprecatedStringLiteralToCharPtr = false; in TryReferenceInit()
5090 return ICS; in TryReferenceInit()
5103 if (FindConversionForRefInit(S, ICS, DeclType, DeclLoc, in TryReferenceInit()
5106 return ICS; in TryReferenceInit()
5115 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, Init, DeclType); in TryReferenceInit()
5116 return ICS; in TryReferenceInit()
5135 return ICS; in TryReferenceInit()
5150 FindConversionForRefInit(S, ICS, DeclType, DeclLoc, in TryReferenceInit()
5157 if (ICS.isUserDefined() && isRValRef && in TryReferenceInit()
5158 ICS.UserDefined.After.First == ICK_Lvalue_To_Rvalue) in TryReferenceInit()
5159 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
5161 return ICS; in TryReferenceInit()
5166 return ICS; in TryReferenceInit()
5193 return ICS; in TryReferenceInit()
5203 return ICS; in TryReferenceInit()
5209 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, Init, DeclType); in TryReferenceInit()
5210 return ICS; in TryReferenceInit()
5223 ICS = TryImplicitConversion(S, Init, T1, SuppressUserConversions, in TryReferenceInit()
5231 if (ICS.isStandard()) { in TryReferenceInit()
5232 ICS.Standard.ReferenceBinding = true; in TryReferenceInit()
5233 ICS.Standard.IsLvalueReference = !isRValRef; in TryReferenceInit()
5234 ICS.Standard.BindsToFunctionLvalue = false; in TryReferenceInit()
5235 ICS.Standard.BindsToRvalue = true; in TryReferenceInit()
5236 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
5237 ICS.Standard.ObjCLifetimeConversionBinding = false; in TryReferenceInit()
5238 } else if (ICS.isUserDefined()) { in TryReferenceInit()
5240 ICS.UserDefined.ConversionFunction->getReturnType() in TryReferenceInit()
5250 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
5251 return ICS; in TryReferenceInit()
5254 ICS.UserDefined.After.ReferenceBinding = true; in TryReferenceInit()
5255 ICS.UserDefined.After.IsLvalueReference = !isRValRef; in TryReferenceInit()
5256 ICS.UserDefined.After.BindsToFunctionLvalue = false; in TryReferenceInit()
5257 ICS.UserDefined.After.BindsToRvalue = !LValRefType; in TryReferenceInit()
5258 ICS.UserDefined.After.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
5259 ICS.UserDefined.After.ObjCLifetimeConversionBinding = false; in TryReferenceInit()
5262 return ICS; in TryReferenceInit()
5412 ImplicitConversionSequence ICS = TryCopyInitialization( in TryListConversion() local
5419 if (CompareImplicitConversionSequences(S, From->getBeginLoc(), ICS, in TryListConversion()
5422 Result = ICS; in TryListConversion()
5618 ImplicitConversionSequence ICS = in TryCopyInitialization() local
5621 return !ICS.isBad(); in TryCopyInitialization()
5656 ImplicitConversionSequence ICS = TryCopyInitialization( in TryObjectArgumentInitialization() local
5659 if (ICS.isBad()) in TryObjectArgumentInitialization()
5660 ICS.Bad.FromExpr = nullptr; in TryObjectArgumentInitialization()
5661 return ICS; in TryObjectArgumentInitialization()
5684 ImplicitConversionSequence ICS; in TryObjectArgumentInitialization() local
5711 ICS.setBad(BadConversionSequence::bad_qualifiers, in TryObjectArgumentInitialization()
5713 return ICS; in TryObjectArgumentInitialization()
5720 ICS.setBad(BadConversionSequence::bad_qualifiers, in TryObjectArgumentInitialization()
5722 return ICS; in TryObjectArgumentInitialization()
5735 ICS.setBad(BadConversionSequence::unrelated_class, in TryObjectArgumentInitialization()
5737 return ICS; in TryObjectArgumentInitialization()
5749 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, FromType, in TryObjectArgumentInitialization()
5751 return ICS; in TryObjectArgumentInitialization()
5758 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, FromType, in TryObjectArgumentInitialization()
5760 return ICS; in TryObjectArgumentInitialization()
5766 ICS.setStandard(); in TryObjectArgumentInitialization()
5767 ICS.Standard.setAsIdentityConversion(); in TryObjectArgumentInitialization()
5768 ICS.Standard.Second = SecondKind; in TryObjectArgumentInitialization()
5769 ICS.Standard.setFromType(FromType); in TryObjectArgumentInitialization()
5770 ICS.Standard.setAllToTypes(ImplicitParamType); in TryObjectArgumentInitialization()
5771 ICS.Standard.ReferenceBinding = true; in TryObjectArgumentInitialization()
5772 ICS.Standard.DirectBinding = true; in TryObjectArgumentInitialization()
5773 ICS.Standard.IsLvalueReference = Method->getRefQualifier() != RQ_RValue; in TryObjectArgumentInitialization()
5774 ICS.Standard.BindsToFunctionLvalue = false; in TryObjectArgumentInitialization()
5775 ICS.Standard.BindsToRvalue = FromClassification.isRValue(); in TryObjectArgumentInitialization()
5776 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier in TryObjectArgumentInitialization()
5778 return ICS; in TryObjectArgumentInitialization()
5810 ImplicitConversionSequence ICS = TryObjectArgumentInitialization( in PerformImplicitObjectArgumentInitialization() local
5813 if (ICS.isBad()) { in PerformImplicitObjectArgumentInitialization()
5814 switch (ICS.Bad.Kind) { in PerformImplicitObjectArgumentInitialization()
5856 if (ICS.Standard.Second == ICK_Derived_To_Base) { in PerformImplicitObjectArgumentInitialization()
5908 ImplicitConversionSequence ICS = TryContextuallyConvertToBool(*this, From); in PerformContextuallyConvertToBool() local
5909 if (!ICS.isBad()) in PerformContextuallyConvertToBool()
5910 return PerformImplicitConversion(From, Context.BoolTy, ICS, AA_Converting); in PerformContextuallyConvertToBool()
6006 ImplicitConversionSequence ICS = in BuildConvertedConstantExpression() local
6015 switch (ICS.getKind()) { in BuildConvertedConstantExpression()
6017 SCS = &ICS.Standard; in BuildConvertedConstantExpression()
6021 SCS = &ICS.UserDefined.Before; in BuildConvertedConstantExpression()
6023 SCS = &ICS.UserDefined.After; in BuildConvertedConstantExpression()
6073 Result = S.PerformImplicitConversion(From, T, ICS, Sema::AA_Converting); in BuildConvertedConstantExpression()
6257 ImplicitConversionSequence ICS in TryContextuallyConvertToObjCPointer() local
6268 switch (ICS.getKind()) { in TryContextuallyConvertToObjCPointer()
6276 dropPointerConversion(ICS.UserDefined.After); in TryContextuallyConvertToObjCPointer()
6280 dropPointerConversion(ICS.Standard); in TryContextuallyConvertToObjCPointer()
6284 return ICS; in TryContextuallyConvertToObjCPointer()
6295 ImplicitConversionSequence ICS = in PerformContextuallyConvertToObjCPointer() local
6297 if (!ICS.isBad()) in PerformContextuallyConvertToObjCPointer()
6298 return PerformImplicitConversion(From, Ty, ICS, AA_Converting); in PerformContextuallyConvertToObjCPointer()
7944 ImplicitConversionSequence ICS = in AddConversionCandidate() local
7950 switch (ICS.getKind()) { in AddConversionCandidate()
7952 Candidate.FinalConversion = ICS.Standard; in AddConversionCandidate()
7959 GetConversionRank(ICS.Standard.Second) != ICR_Exact_Match) { in AddConversionCandidate()
7971 ICS.Standard.First == ICK_Lvalue_To_Rvalue) { in AddConversionCandidate()
10306 auto IsIllFormedConversion = [&](const ImplicitConversionSequence &ICS) { in isBetterOverloadCandidate() argument
10309 return ICS.isStandard() && in isBetterOverloadCandidate()
10310 ICS.Standard.Second == ICK_Incompatible_Pointer_Conversion; in isBetterOverloadCandidate()
10315 hasDeprecatedStringLiteralToCharPtrConversion(ICS); in isBetterOverloadCandidate()
12032 for (const ImplicitConversionSequence &ICS : Cand->Conversions) { in NoteAmbiguousUserConversions() local
12033 if (ICS.isBad()) break; // all meaningless after first invalid in NoteAmbiguousUserConversions()
12034 if (!ICS.isAmbiguous()) continue; in NoteAmbiguousUserConversions()
12036 ICS.DiagnoseAmbiguousConversion( in NoteAmbiguousUserConversions()