Lines Matching refs:ICS
1594 ImplicitConversionSequence ICS; in TryUserDefinedConversion() local
1599 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryUserDefinedConversion()
1600 return ICS; in TryUserDefinedConversion()
1606 switch (IsUserDefinedConversion(S, From, ToType, ICS.UserDefined, in TryUserDefinedConversion()
1611 ICS.setUserDefined(); in TryUserDefinedConversion()
1620 = dyn_cast<CXXConstructorDecl>(ICS.UserDefined.ConversionFunction)) { in TryUserDefinedConversion()
1630 DeclAccessPair Found = ICS.UserDefined.FoundConversionFunction; in TryUserDefinedConversion()
1631 ICS.setStandard(); in TryUserDefinedConversion()
1632 ICS.Standard.setAsIdentityConversion(); in TryUserDefinedConversion()
1633 ICS.Standard.setFromType(From->getType()); in TryUserDefinedConversion()
1634 ICS.Standard.setAllToTypes(ToType); in TryUserDefinedConversion()
1635 ICS.Standard.CopyConstructor = Constructor; in TryUserDefinedConversion()
1636 ICS.Standard.FoundCopyConstructor = Found; in TryUserDefinedConversion()
1638 ICS.Standard.Second = ICK_Derived_To_Base; in TryUserDefinedConversion()
1644 ICS.setAmbiguous(); in TryUserDefinedConversion()
1645 ICS.Ambiguous.setFromType(From->getType()); in TryUserDefinedConversion()
1646 ICS.Ambiguous.setToType(ToType); in TryUserDefinedConversion()
1650 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in TryUserDefinedConversion()
1655 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryUserDefinedConversion()
1659 return ICS; in TryUserDefinedConversion()
1697 ImplicitConversionSequence ICS; in TryImplicitConversion() local
1699 ICS.Standard, CStyle, AllowObjCWritebackConversion)){ in TryImplicitConversion()
1700 ICS.setStandard(); in TryImplicitConversion()
1701 return ICS; in TryImplicitConversion()
1705 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryImplicitConversion()
1706 return ICS; in TryImplicitConversion()
1720 ICS.setStandard(); in TryImplicitConversion()
1721 ICS.Standard.setAsIdentityConversion(); in TryImplicitConversion()
1722 ICS.Standard.setFromType(FromType); in TryImplicitConversion()
1723 ICS.Standard.setAllToTypes(ToType); in TryImplicitConversion()
1729 ICS.Standard.CopyConstructor = nullptr; in TryImplicitConversion()
1733 ICS.Standard.Second = ICK_Derived_To_Base; in TryImplicitConversion()
1735 return ICS; in TryImplicitConversion()
1770 ImplicitConversionSequence ICS = ::TryImplicitConversion( in PerformImplicitConversion() local
1777 return PerformImplicitConversion(From, ToType, ICS, Action); in PerformImplicitConversion()
3934 ImplicitConversionSequence ICS; in DiagnoseMultipleUserDefinedConversion() local
3938 IsUserDefinedConversion(*this, From, ToType, ICS.UserDefined, in DiagnoseMultipleUserDefinedConversion()
4043 const ImplicitConversionSequence &ICS) { in hasDeprecatedStringLiteralToCharPtrConversion() argument
4044 return (ICS.isStandard() && ICS.Standard.DeprecatedStringLiteralToCharPtr) || in hasDeprecatedStringLiteralToCharPtrConversion()
4045 (ICS.isUserDefined() && in hasDeprecatedStringLiteralToCharPtrConversion()
4046 ICS.UserDefined.Before.DeprecatedStringLiteralToCharPtr); in hasDeprecatedStringLiteralToCharPtrConversion()
4912 FindConversionForRefInit(Sema &S, ImplicitConversionSequence &ICS, in FindConversionForRefInit() argument
4996 ICS.setUserDefined(); in FindConversionForRefInit()
4997 ICS.UserDefined.Before = Best->Conversions[0].Standard; in FindConversionForRefInit()
4998 ICS.UserDefined.After = Best->FinalConversion; in FindConversionForRefInit()
4999 ICS.UserDefined.HadMultipleCandidates = HadMultipleCandidates; in FindConversionForRefInit()
5000 ICS.UserDefined.ConversionFunction = Best->Function; in FindConversionForRefInit()
5001 ICS.UserDefined.FoundConversionFunction = Best->FoundDecl; in FindConversionForRefInit()
5002 ICS.UserDefined.EllipsisConversion = false; in FindConversionForRefInit()
5003 assert(ICS.UserDefined.After.ReferenceBinding && in FindConversionForRefInit()
5004 ICS.UserDefined.After.DirectBinding && in FindConversionForRefInit()
5009 ICS.setAmbiguous(); in FindConversionForRefInit()
5013 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in FindConversionForRefInit()
5036 ImplicitConversionSequence ICS; in TryReferenceInit() local
5037 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
5061 ICS.setStandard(); in TryReferenceInit()
5062 ICS.Standard.First = ICK_Identity; in TryReferenceInit()
5065 ICS.Standard.Second = (RefConv & Sema::ReferenceConversions::DerivedToBase) in TryReferenceInit()
5070 ICS.Standard.Dimension = ICK_Identity; in TryReferenceInit()
5074 ICS.Standard.Third = (RefConv & in TryReferenceInit()
5078 ICS.Standard.setFromType(T2); in TryReferenceInit()
5079 ICS.Standard.setToType(0, T2); in TryReferenceInit()
5080 ICS.Standard.setToType(1, T1); in TryReferenceInit()
5081 ICS.Standard.setToType(2, T1); in TryReferenceInit()
5082 ICS.Standard.ReferenceBinding = true; in TryReferenceInit()
5083 ICS.Standard.DirectBinding = BindsDirectly; in TryReferenceInit()
5084 ICS.Standard.IsLvalueReference = !isRValRef; in TryReferenceInit()
5085 ICS.Standard.BindsToFunctionLvalue = T2->isFunctionType(); in TryReferenceInit()
5086 ICS.Standard.BindsToRvalue = InitCategory.isRValue(); in TryReferenceInit()
5087 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
5088 ICS.Standard.ObjCLifetimeConversionBinding = in TryReferenceInit()
5090 ICS.Standard.CopyConstructor = nullptr; in TryReferenceInit()
5091 ICS.Standard.DeprecatedStringLiteralToCharPtr = false; in TryReferenceInit()
5118 return ICS; in TryReferenceInit()
5131 if (FindConversionForRefInit(S, ICS, DeclType, DeclLoc, in TryReferenceInit()
5134 return ICS; in TryReferenceInit()
5143 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, Init, DeclType); in TryReferenceInit()
5144 return ICS; in TryReferenceInit()
5163 return ICS; in TryReferenceInit()
5178 FindConversionForRefInit(S, ICS, DeclType, DeclLoc, in TryReferenceInit()
5185 if (ICS.isUserDefined() && isRValRef && in TryReferenceInit()
5186 ICS.UserDefined.After.First == ICK_Lvalue_To_Rvalue) in TryReferenceInit()
5187 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
5189 return ICS; in TryReferenceInit()
5194 return ICS; in TryReferenceInit()
5221 return ICS; in TryReferenceInit()
5231 return ICS; in TryReferenceInit()
5237 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, Init, DeclType); in TryReferenceInit()
5238 return ICS; in TryReferenceInit()
5251 ICS = TryImplicitConversion(S, Init, T1, SuppressUserConversions, in TryReferenceInit()
5259 if (ICS.isStandard()) { in TryReferenceInit()
5260 ICS.Standard.ReferenceBinding = true; in TryReferenceInit()
5261 ICS.Standard.IsLvalueReference = !isRValRef; in TryReferenceInit()
5262 ICS.Standard.BindsToFunctionLvalue = false; in TryReferenceInit()
5263 ICS.Standard.BindsToRvalue = true; in TryReferenceInit()
5264 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
5265 ICS.Standard.ObjCLifetimeConversionBinding = false; in TryReferenceInit()
5266 } else if (ICS.isUserDefined()) { in TryReferenceInit()
5268 ICS.UserDefined.ConversionFunction->getReturnType() in TryReferenceInit()
5278 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
5279 return ICS; in TryReferenceInit()
5282 ICS.UserDefined.After.ReferenceBinding = true; in TryReferenceInit()
5283 ICS.UserDefined.After.IsLvalueReference = !isRValRef; in TryReferenceInit()
5284 ICS.UserDefined.After.BindsToFunctionLvalue = false; in TryReferenceInit()
5285 ICS.UserDefined.After.BindsToRvalue = !LValRefType; in TryReferenceInit()
5286 ICS.UserDefined.After.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
5287 ICS.UserDefined.After.ObjCLifetimeConversionBinding = false; in TryReferenceInit()
5290 return ICS; in TryReferenceInit()
5440 ImplicitConversionSequence ICS = TryCopyInitialization( in TryListConversion() local
5447 if (CompareImplicitConversionSequences(S, From->getBeginLoc(), ICS, in TryListConversion()
5450 Result = ICS; in TryListConversion()
5646 ImplicitConversionSequence ICS = in TryCopyInitialization() local
5649 return !ICS.isBad(); in TryCopyInitialization()
5684 ImplicitConversionSequence ICS = TryCopyInitialization( in TryObjectArgumentInitialization() local
5687 if (ICS.isBad()) in TryObjectArgumentInitialization()
5688 ICS.Bad.FromExpr = nullptr; in TryObjectArgumentInitialization()
5689 return ICS; in TryObjectArgumentInitialization()
5712 ImplicitConversionSequence ICS; in TryObjectArgumentInitialization() local
5739 ICS.setBad(BadConversionSequence::bad_qualifiers, in TryObjectArgumentInitialization()
5741 return ICS; in TryObjectArgumentInitialization()
5748 ICS.setBad(BadConversionSequence::bad_qualifiers, in TryObjectArgumentInitialization()
5750 return ICS; in TryObjectArgumentInitialization()
5763 ICS.setBad(BadConversionSequence::unrelated_class, in TryObjectArgumentInitialization()
5765 return ICS; in TryObjectArgumentInitialization()
5777 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, FromType, in TryObjectArgumentInitialization()
5779 return ICS; in TryObjectArgumentInitialization()
5786 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, FromType, in TryObjectArgumentInitialization()
5788 return ICS; in TryObjectArgumentInitialization()
5794 ICS.setStandard(); in TryObjectArgumentInitialization()
5795 ICS.Standard.setAsIdentityConversion(); in TryObjectArgumentInitialization()
5796 ICS.Standard.Second = SecondKind; in TryObjectArgumentInitialization()
5797 ICS.Standard.setFromType(FromType); in TryObjectArgumentInitialization()
5798 ICS.Standard.setAllToTypes(ImplicitParamType); in TryObjectArgumentInitialization()
5799 ICS.Standard.ReferenceBinding = true; in TryObjectArgumentInitialization()
5800 ICS.Standard.DirectBinding = true; in TryObjectArgumentInitialization()
5801 ICS.Standard.IsLvalueReference = Method->getRefQualifier() != RQ_RValue; in TryObjectArgumentInitialization()
5802 ICS.Standard.BindsToFunctionLvalue = false; in TryObjectArgumentInitialization()
5803 ICS.Standard.BindsToRvalue = FromClassification.isRValue(); in TryObjectArgumentInitialization()
5804 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier in TryObjectArgumentInitialization()
5806 return ICS; in TryObjectArgumentInitialization()
5838 ImplicitConversionSequence ICS = TryObjectArgumentInitialization( in PerformImplicitObjectArgumentInitialization() local
5841 if (ICS.isBad()) { in PerformImplicitObjectArgumentInitialization()
5842 switch (ICS.Bad.Kind) { in PerformImplicitObjectArgumentInitialization()
5884 if (ICS.Standard.Second == ICK_Derived_To_Base) { in PerformImplicitObjectArgumentInitialization()
5934 ImplicitConversionSequence ICS = TryContextuallyConvertToBool(*this, From); in PerformContextuallyConvertToBool() local
5935 if (!ICS.isBad()) in PerformContextuallyConvertToBool()
5936 return PerformImplicitConversion(From, Context.BoolTy, ICS, AA_Converting); in PerformContextuallyConvertToBool()
6035 ImplicitConversionSequence ICS = in BuildConvertedConstantExpression() local
6044 switch (ICS.getKind()) { in BuildConvertedConstantExpression()
6046 SCS = &ICS.Standard; in BuildConvertedConstantExpression()
6050 SCS = &ICS.UserDefined.Before; in BuildConvertedConstantExpression()
6052 SCS = &ICS.UserDefined.After; in BuildConvertedConstantExpression()
6102 Result = S.PerformImplicitConversion(From, T, ICS, Sema::AA_Converting); in BuildConvertedConstantExpression()
6285 ImplicitConversionSequence ICS in TryContextuallyConvertToObjCPointer() local
6296 switch (ICS.getKind()) { in TryContextuallyConvertToObjCPointer()
6304 dropPointerConversion(ICS.UserDefined.After); in TryContextuallyConvertToObjCPointer()
6308 dropPointerConversion(ICS.Standard); in TryContextuallyConvertToObjCPointer()
6312 return ICS; in TryContextuallyConvertToObjCPointer()
6320 ImplicitConversionSequence ICS = in PerformContextuallyConvertToObjCPointer() local
6322 if (!ICS.isBad()) in PerformContextuallyConvertToObjCPointer()
6323 return PerformImplicitConversion(From, Ty, ICS, AA_Converting); in PerformContextuallyConvertToObjCPointer()
7982 ImplicitConversionSequence ICS = in AddConversionCandidate() local
7988 switch (ICS.getKind()) { in AddConversionCandidate()
7990 Candidate.FinalConversion = ICS.Standard; in AddConversionCandidate()
7997 GetConversionRank(ICS.Standard.Second) != ICR_Exact_Match) { in AddConversionCandidate()
8009 ICS.Standard.First == ICK_Lvalue_To_Rvalue) { in AddConversionCandidate()
10321 auto IsIllFormedConversion = [&](const ImplicitConversionSequence &ICS) { in isBetterOverloadCandidate() argument
10324 return ICS.isStandard() && in isBetterOverloadCandidate()
10325 ICS.Standard.Second == ICK_Incompatible_Pointer_Conversion; in isBetterOverloadCandidate()
10330 hasDeprecatedStringLiteralToCharPtrConversion(ICS); in isBetterOverloadCandidate()
12129 for (const ImplicitConversionSequence &ICS : Cand->Conversions) { in NoteAmbiguousUserConversions() local
12130 if (ICS.isBad()) break; // all meaningless after first invalid in NoteAmbiguousUserConversions()
12131 if (!ICS.isAmbiguous()) continue; in NoteAmbiguousUserConversions()
12133 ICS.DiagnoseAmbiguousConversion( in NoteAmbiguousUserConversions()