Lines Matching refs:ICS
1329 ImplicitConversionSequence ICS; in TryUserDefinedConversion() local
1334 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryUserDefinedConversion()
1335 return ICS; in TryUserDefinedConversion()
1341 switch (IsUserDefinedConversion(S, From, ToType, ICS.UserDefined, in TryUserDefinedConversion()
1346 ICS.setUserDefined(); in TryUserDefinedConversion()
1355 = dyn_cast<CXXConstructorDecl>(ICS.UserDefined.ConversionFunction)) { in TryUserDefinedConversion()
1365 DeclAccessPair Found = ICS.UserDefined.FoundConversionFunction; in TryUserDefinedConversion()
1366 ICS.setStandard(); in TryUserDefinedConversion()
1367 ICS.Standard.setAsIdentityConversion(); in TryUserDefinedConversion()
1368 ICS.Standard.setFromType(From->getType()); in TryUserDefinedConversion()
1369 ICS.Standard.setAllToTypes(ToType); in TryUserDefinedConversion()
1370 ICS.Standard.CopyConstructor = Constructor; in TryUserDefinedConversion()
1371 ICS.Standard.FoundCopyConstructor = Found; in TryUserDefinedConversion()
1373 ICS.Standard.Second = ICK_Derived_To_Base; in TryUserDefinedConversion()
1379 ICS.setAmbiguous(); in TryUserDefinedConversion()
1380 ICS.Ambiguous.setFromType(From->getType()); in TryUserDefinedConversion()
1381 ICS.Ambiguous.setToType(ToType); in TryUserDefinedConversion()
1385 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in TryUserDefinedConversion()
1390 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryUserDefinedConversion()
1394 return ICS; in TryUserDefinedConversion()
1432 ImplicitConversionSequence ICS; in TryImplicitConversion() local
1434 ICS.Standard, CStyle, AllowObjCWritebackConversion)){ in TryImplicitConversion()
1435 ICS.setStandard(); in TryImplicitConversion()
1436 return ICS; in TryImplicitConversion()
1440 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryImplicitConversion()
1441 return ICS; in TryImplicitConversion()
1455 ICS.setStandard(); in TryImplicitConversion()
1456 ICS.Standard.setAsIdentityConversion(); in TryImplicitConversion()
1457 ICS.Standard.setFromType(FromType); in TryImplicitConversion()
1458 ICS.Standard.setAllToTypes(ToType); in TryImplicitConversion()
1464 ICS.Standard.CopyConstructor = nullptr; in TryImplicitConversion()
1468 ICS.Standard.Second = ICK_Derived_To_Base; in TryImplicitConversion()
1470 return ICS; in TryImplicitConversion()
1510 ImplicitConversionSequence ICS = ::TryImplicitConversion( in PerformImplicitConversion() local
1517 return PerformImplicitConversion(From, ToType, ICS, Action); in PerformImplicitConversion()
3619 ImplicitConversionSequence ICS; in DiagnoseMultipleUserDefinedConversion() local
3623 IsUserDefinedConversion(*this, From, ToType, ICS.UserDefined, in DiagnoseMultipleUserDefinedConversion()
3729 const ImplicitConversionSequence &ICS) { in hasDeprecatedStringLiteralToCharPtrConversion() argument
3730 return (ICS.isStandard() && ICS.Standard.DeprecatedStringLiteralToCharPtr) || in hasDeprecatedStringLiteralToCharPtrConversion()
3731 (ICS.isUserDefined() && in hasDeprecatedStringLiteralToCharPtrConversion()
3732 ICS.UserDefined.Before.DeprecatedStringLiteralToCharPtr); in hasDeprecatedStringLiteralToCharPtrConversion()
4611 FindConversionForRefInit(Sema &S, ImplicitConversionSequence &ICS, in FindConversionForRefInit() argument
4695 ICS.setUserDefined(); in FindConversionForRefInit()
4696 ICS.UserDefined.Before = Best->Conversions[0].Standard; in FindConversionForRefInit()
4697 ICS.UserDefined.After = Best->FinalConversion; in FindConversionForRefInit()
4698 ICS.UserDefined.HadMultipleCandidates = HadMultipleCandidates; in FindConversionForRefInit()
4699 ICS.UserDefined.ConversionFunction = Best->Function; in FindConversionForRefInit()
4700 ICS.UserDefined.FoundConversionFunction = Best->FoundDecl; in FindConversionForRefInit()
4701 ICS.UserDefined.EllipsisConversion = false; in FindConversionForRefInit()
4702 assert(ICS.UserDefined.After.ReferenceBinding && in FindConversionForRefInit()
4703 ICS.UserDefined.After.DirectBinding && in FindConversionForRefInit()
4708 ICS.setAmbiguous(); in FindConversionForRefInit()
4712 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in FindConversionForRefInit()
4735 ImplicitConversionSequence ICS; in TryReferenceInit() local
4736 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
4760 ICS.setStandard(); in TryReferenceInit()
4761 ICS.Standard.First = ICK_Identity; in TryReferenceInit()
4764 ICS.Standard.Second = (RefConv & Sema::ReferenceConversions::DerivedToBase) in TryReferenceInit()
4772 ICS.Standard.Third = (RefConv & in TryReferenceInit()
4776 ICS.Standard.setFromType(T2); in TryReferenceInit()
4777 ICS.Standard.setToType(0, T2); in TryReferenceInit()
4778 ICS.Standard.setToType(1, T1); in TryReferenceInit()
4779 ICS.Standard.setToType(2, T1); in TryReferenceInit()
4780 ICS.Standard.ReferenceBinding = true; in TryReferenceInit()
4781 ICS.Standard.DirectBinding = BindsDirectly; in TryReferenceInit()
4782 ICS.Standard.IsLvalueReference = !isRValRef; in TryReferenceInit()
4783 ICS.Standard.BindsToFunctionLvalue = T2->isFunctionType(); in TryReferenceInit()
4784 ICS.Standard.BindsToRvalue = InitCategory.isRValue(); in TryReferenceInit()
4785 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
4786 ICS.Standard.ObjCLifetimeConversionBinding = in TryReferenceInit()
4788 ICS.Standard.CopyConstructor = nullptr; in TryReferenceInit()
4789 ICS.Standard.DeprecatedStringLiteralToCharPtr = false; in TryReferenceInit()
4816 return ICS; in TryReferenceInit()
4829 if (FindConversionForRefInit(S, ICS, DeclType, DeclLoc, in TryReferenceInit()
4832 return ICS; in TryReferenceInit()
4841 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, Init, DeclType); in TryReferenceInit()
4842 return ICS; in TryReferenceInit()
4861 return ICS; in TryReferenceInit()
4876 FindConversionForRefInit(S, ICS, DeclType, DeclLoc, in TryReferenceInit()
4883 if (ICS.isUserDefined() && isRValRef && in TryReferenceInit()
4884 ICS.UserDefined.After.First == ICK_Lvalue_To_Rvalue) in TryReferenceInit()
4885 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
4887 return ICS; in TryReferenceInit()
4892 return ICS; in TryReferenceInit()
4919 return ICS; in TryReferenceInit()
4929 return ICS; in TryReferenceInit()
4935 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, Init, DeclType); in TryReferenceInit()
4936 return ICS; in TryReferenceInit()
4949 ICS = TryImplicitConversion(S, Init, T1, SuppressUserConversions, in TryReferenceInit()
4957 if (ICS.isStandard()) { in TryReferenceInit()
4958 ICS.Standard.ReferenceBinding = true; in TryReferenceInit()
4959 ICS.Standard.IsLvalueReference = !isRValRef; in TryReferenceInit()
4960 ICS.Standard.BindsToFunctionLvalue = false; in TryReferenceInit()
4961 ICS.Standard.BindsToRvalue = true; in TryReferenceInit()
4962 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
4963 ICS.Standard.ObjCLifetimeConversionBinding = false; in TryReferenceInit()
4964 } else if (ICS.isUserDefined()) { in TryReferenceInit()
4966 ICS.UserDefined.ConversionFunction->getReturnType() in TryReferenceInit()
4976 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
4977 return ICS; in TryReferenceInit()
4980 ICS.UserDefined.After.ReferenceBinding = true; in TryReferenceInit()
4981 ICS.UserDefined.After.IsLvalueReference = !isRValRef; in TryReferenceInit()
4982 ICS.UserDefined.After.BindsToFunctionLvalue = false; in TryReferenceInit()
4983 ICS.UserDefined.After.BindsToRvalue = !LValRefType; in TryReferenceInit()
4984 ICS.UserDefined.After.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
4985 ICS.UserDefined.After.ObjCLifetimeConversionBinding = false; in TryReferenceInit()
4988 return ICS; in TryReferenceInit()
5078 ImplicitConversionSequence ICS = in TryListConversion() local
5083 if (ICS.isBad()) { in TryListConversion()
5084 Result = ICS; in TryListConversion()
5089 S, From->getBeginLoc(), ICS, Result) == in TryListConversion()
5091 Result = ICS; in TryListConversion()
5282 ImplicitConversionSequence ICS = in TryCopyInitialization() local
5285 return !ICS.isBad(); in TryCopyInitialization()
5309 ImplicitConversionSequence ICS; in TryObjectArgumentInitialization() local
5345 ICS.setBad(BadConversionSequence::bad_qualifiers, in TryObjectArgumentInitialization()
5347 return ICS; in TryObjectArgumentInitialization()
5354 ICS.setBad(BadConversionSequence::bad_qualifiers, in TryObjectArgumentInitialization()
5356 return ICS; in TryObjectArgumentInitialization()
5369 ICS.setBad(BadConversionSequence::unrelated_class, in TryObjectArgumentInitialization()
5371 return ICS; in TryObjectArgumentInitialization()
5383 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, FromType, in TryObjectArgumentInitialization()
5385 return ICS; in TryObjectArgumentInitialization()
5392 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, FromType, in TryObjectArgumentInitialization()
5394 return ICS; in TryObjectArgumentInitialization()
5400 ICS.setStandard(); in TryObjectArgumentInitialization()
5401 ICS.Standard.setAsIdentityConversion(); in TryObjectArgumentInitialization()
5402 ICS.Standard.Second = SecondKind; in TryObjectArgumentInitialization()
5403 ICS.Standard.setFromType(FromType); in TryObjectArgumentInitialization()
5404 ICS.Standard.setAllToTypes(ImplicitParamType); in TryObjectArgumentInitialization()
5405 ICS.Standard.ReferenceBinding = true; in TryObjectArgumentInitialization()
5406 ICS.Standard.DirectBinding = true; in TryObjectArgumentInitialization()
5407 ICS.Standard.IsLvalueReference = Method->getRefQualifier() != RQ_RValue; in TryObjectArgumentInitialization()
5408 ICS.Standard.BindsToFunctionLvalue = false; in TryObjectArgumentInitialization()
5409 ICS.Standard.BindsToRvalue = FromClassification.isRValue(); in TryObjectArgumentInitialization()
5410 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier in TryObjectArgumentInitialization()
5412 return ICS; in TryObjectArgumentInitialization()
5447 ImplicitConversionSequence ICS = TryObjectArgumentInitialization( in PerformObjectArgumentInitialization() local
5450 if (ICS.isBad()) { in PerformObjectArgumentInitialization()
5451 switch (ICS.Bad.Kind) { in PerformObjectArgumentInitialization()
5489 if (ICS.Standard.Second == ICK_Derived_To_Base) { in PerformObjectArgumentInitialization()
5541 ImplicitConversionSequence ICS = TryContextuallyConvertToBool(*this, From); in PerformContextuallyConvertToBool() local
5542 if (!ICS.isBad()) in PerformContextuallyConvertToBool()
5543 return PerformImplicitConversion(From, Context.BoolTy, ICS, AA_Converting); in PerformContextuallyConvertToBool()
5641 ImplicitConversionSequence ICS = in CheckConvertedConstantExpression() local
5650 switch (ICS.getKind()) { in CheckConvertedConstantExpression()
5652 SCS = &ICS.Standard; in CheckConvertedConstantExpression()
5656 SCS = &ICS.UserDefined.Before; in CheckConvertedConstantExpression()
5658 SCS = &ICS.UserDefined.After; in CheckConvertedConstantExpression()
5697 Result = S.PerformImplicitConversion(From, T, ICS, Sema::AA_Converting); in CheckConvertedConstantExpression()
5838 ImplicitConversionSequence ICS in TryContextuallyConvertToObjCPointer() local
5849 switch (ICS.getKind()) { in TryContextuallyConvertToObjCPointer()
5856 dropPointerConversion(ICS.UserDefined.After); in TryContextuallyConvertToObjCPointer()
5860 dropPointerConversion(ICS.Standard); in TryContextuallyConvertToObjCPointer()
5864 return ICS; in TryContextuallyConvertToObjCPointer()
5875 ImplicitConversionSequence ICS = in PerformContextuallyConvertToObjCPointer() local
5877 if (!ICS.isBad()) in PerformContextuallyConvertToObjCPointer()
5878 return PerformImplicitConversion(From, Ty, ICS, AA_Converting); in PerformContextuallyConvertToObjCPointer()
7394 ImplicitConversionSequence ICS = in AddConversionCandidate() local
7400 switch (ICS.getKind()) { in AddConversionCandidate()
7402 Candidate.FinalConversion = ICS.Standard; in AddConversionCandidate()
7409 GetConversionRank(ICS.Standard.Second) != ICR_Exact_Match) { in AddConversionCandidate()
7421 ICS.Standard.First == ICK_Lvalue_To_Rvalue) { in AddConversionCandidate()
9625 auto IsIllFormedConversion = [&](const ImplicitConversionSequence &ICS) { in isBetterOverloadCandidate() argument
9628 return ICS.isStandard() && in isBetterOverloadCandidate()
9629 ICS.Standard.Second == ICK_Incompatible_Pointer_Conversion; in isBetterOverloadCandidate()
9634 hasDeprecatedStringLiteralToCharPtrConversion(ICS); in isBetterOverloadCandidate()
11279 for (const ImplicitConversionSequence &ICS : Cand->Conversions) { in NoteAmbiguousUserConversions() local
11280 if (ICS.isBad()) break; // all meaningless after first invalid in NoteAmbiguousUserConversions()
11281 if (!ICS.isAmbiguous()) continue; in NoteAmbiguousUserConversions()
11283 ICS.DiagnoseAmbiguousConversion( in NoteAmbiguousUserConversions()