Lines Matching refs:ICS
1327 ImplicitConversionSequence ICS; in TryUserDefinedConversion() local
1332 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryUserDefinedConversion()
1333 return ICS; in TryUserDefinedConversion()
1339 switch (IsUserDefinedConversion(S, From, ToType, ICS.UserDefined, in TryUserDefinedConversion()
1344 ICS.setUserDefined(); in TryUserDefinedConversion()
1353 = dyn_cast<CXXConstructorDecl>(ICS.UserDefined.ConversionFunction)) { in TryUserDefinedConversion()
1363 DeclAccessPair Found = ICS.UserDefined.FoundConversionFunction; in TryUserDefinedConversion()
1364 ICS.setStandard(); in TryUserDefinedConversion()
1365 ICS.Standard.setAsIdentityConversion(); in TryUserDefinedConversion()
1366 ICS.Standard.setFromType(From->getType()); in TryUserDefinedConversion()
1367 ICS.Standard.setAllToTypes(ToType); in TryUserDefinedConversion()
1368 ICS.Standard.CopyConstructor = Constructor; in TryUserDefinedConversion()
1369 ICS.Standard.FoundCopyConstructor = Found; in TryUserDefinedConversion()
1371 ICS.Standard.Second = ICK_Derived_To_Base; in TryUserDefinedConversion()
1377 ICS.setAmbiguous(); in TryUserDefinedConversion()
1378 ICS.Ambiguous.setFromType(From->getType()); in TryUserDefinedConversion()
1379 ICS.Ambiguous.setToType(ToType); in TryUserDefinedConversion()
1383 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in TryUserDefinedConversion()
1388 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryUserDefinedConversion()
1392 return ICS; in TryUserDefinedConversion()
1430 ImplicitConversionSequence ICS; in TryImplicitConversion() local
1432 ICS.Standard, CStyle, AllowObjCWritebackConversion)){ in TryImplicitConversion()
1433 ICS.setStandard(); in TryImplicitConversion()
1434 return ICS; in TryImplicitConversion()
1438 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryImplicitConversion()
1439 return ICS; in TryImplicitConversion()
1453 ICS.setStandard(); in TryImplicitConversion()
1454 ICS.Standard.setAsIdentityConversion(); in TryImplicitConversion()
1455 ICS.Standard.setFromType(FromType); in TryImplicitConversion()
1456 ICS.Standard.setAllToTypes(ToType); in TryImplicitConversion()
1462 ICS.Standard.CopyConstructor = nullptr; in TryImplicitConversion()
1466 ICS.Standard.Second = ICK_Derived_To_Base; in TryImplicitConversion()
1468 return ICS; in TryImplicitConversion()
1508 ImplicitConversionSequence ICS = ::TryImplicitConversion( in PerformImplicitConversion() local
1515 return PerformImplicitConversion(From, ToType, ICS, Action); in PerformImplicitConversion()
3638 ImplicitConversionSequence ICS; in DiagnoseMultipleUserDefinedConversion() local
3642 IsUserDefinedConversion(*this, From, ToType, ICS.UserDefined, in DiagnoseMultipleUserDefinedConversion()
3747 const ImplicitConversionSequence &ICS) { in hasDeprecatedStringLiteralToCharPtrConversion() argument
3748 return (ICS.isStandard() && ICS.Standard.DeprecatedStringLiteralToCharPtr) || in hasDeprecatedStringLiteralToCharPtrConversion()
3749 (ICS.isUserDefined() && in hasDeprecatedStringLiteralToCharPtrConversion()
3750 ICS.UserDefined.Before.DeprecatedStringLiteralToCharPtr); in hasDeprecatedStringLiteralToCharPtrConversion()
4619 FindConversionForRefInit(Sema &S, ImplicitConversionSequence &ICS, in FindConversionForRefInit() argument
4703 ICS.setUserDefined(); in FindConversionForRefInit()
4704 ICS.UserDefined.Before = Best->Conversions[0].Standard; in FindConversionForRefInit()
4705 ICS.UserDefined.After = Best->FinalConversion; in FindConversionForRefInit()
4706 ICS.UserDefined.HadMultipleCandidates = HadMultipleCandidates; in FindConversionForRefInit()
4707 ICS.UserDefined.ConversionFunction = Best->Function; in FindConversionForRefInit()
4708 ICS.UserDefined.FoundConversionFunction = Best->FoundDecl; in FindConversionForRefInit()
4709 ICS.UserDefined.EllipsisConversion = false; in FindConversionForRefInit()
4710 assert(ICS.UserDefined.After.ReferenceBinding && in FindConversionForRefInit()
4711 ICS.UserDefined.After.DirectBinding && in FindConversionForRefInit()
4716 ICS.setAmbiguous(); in FindConversionForRefInit()
4720 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in FindConversionForRefInit()
4743 ImplicitConversionSequence ICS; in TryReferenceInit() local
4744 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
4768 ICS.setStandard(); in TryReferenceInit()
4769 ICS.Standard.First = ICK_Identity; in TryReferenceInit()
4772 ICS.Standard.Second = (RefConv & Sema::ReferenceConversions::DerivedToBase) in TryReferenceInit()
4780 ICS.Standard.Third = (RefConv & in TryReferenceInit()
4784 ICS.Standard.setFromType(T2); in TryReferenceInit()
4785 ICS.Standard.setToType(0, T2); in TryReferenceInit()
4786 ICS.Standard.setToType(1, T1); in TryReferenceInit()
4787 ICS.Standard.setToType(2, T1); in TryReferenceInit()
4788 ICS.Standard.ReferenceBinding = true; in TryReferenceInit()
4789 ICS.Standard.DirectBinding = BindsDirectly; in TryReferenceInit()
4790 ICS.Standard.IsLvalueReference = !isRValRef; in TryReferenceInit()
4791 ICS.Standard.BindsToFunctionLvalue = T2->isFunctionType(); in TryReferenceInit()
4792 ICS.Standard.BindsToRvalue = InitCategory.isRValue(); in TryReferenceInit()
4793 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
4794 ICS.Standard.ObjCLifetimeConversionBinding = in TryReferenceInit()
4796 ICS.Standard.CopyConstructor = nullptr; in TryReferenceInit()
4797 ICS.Standard.DeprecatedStringLiteralToCharPtr = false; in TryReferenceInit()
4824 return ICS; in TryReferenceInit()
4837 if (FindConversionForRefInit(S, ICS, DeclType, DeclLoc, in TryReferenceInit()
4840 return ICS; in TryReferenceInit()
4849 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, Init, DeclType); in TryReferenceInit()
4850 return ICS; in TryReferenceInit()
4869 return ICS; in TryReferenceInit()
4884 FindConversionForRefInit(S, ICS, DeclType, DeclLoc, in TryReferenceInit()
4891 if (ICS.isUserDefined() && isRValRef && in TryReferenceInit()
4892 ICS.UserDefined.After.First == ICK_Lvalue_To_Rvalue) in TryReferenceInit()
4893 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
4895 return ICS; in TryReferenceInit()
4900 return ICS; in TryReferenceInit()
4927 return ICS; in TryReferenceInit()
4937 return ICS; in TryReferenceInit()
4943 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, Init, DeclType); in TryReferenceInit()
4944 return ICS; in TryReferenceInit()
4957 ICS = TryImplicitConversion(S, Init, T1, SuppressUserConversions, in TryReferenceInit()
4965 if (ICS.isStandard()) { in TryReferenceInit()
4966 ICS.Standard.ReferenceBinding = true; in TryReferenceInit()
4967 ICS.Standard.IsLvalueReference = !isRValRef; in TryReferenceInit()
4968 ICS.Standard.BindsToFunctionLvalue = false; in TryReferenceInit()
4969 ICS.Standard.BindsToRvalue = true; in TryReferenceInit()
4970 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
4971 ICS.Standard.ObjCLifetimeConversionBinding = false; in TryReferenceInit()
4972 } else if (ICS.isUserDefined()) { in TryReferenceInit()
4974 ICS.UserDefined.ConversionFunction->getReturnType() in TryReferenceInit()
4984 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
4985 return ICS; in TryReferenceInit()
4988 ICS.UserDefined.After.ReferenceBinding = true; in TryReferenceInit()
4989 ICS.UserDefined.After.IsLvalueReference = !isRValRef; in TryReferenceInit()
4990 ICS.UserDefined.After.BindsToFunctionLvalue = false; in TryReferenceInit()
4991 ICS.UserDefined.After.BindsToRvalue = !LValRefType; in TryReferenceInit()
4992 ICS.UserDefined.After.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
4993 ICS.UserDefined.After.ObjCLifetimeConversionBinding = false; in TryReferenceInit()
4996 return ICS; in TryReferenceInit()
5134 ImplicitConversionSequence ICS = TryCopyInitialization( in TryListConversion() local
5141 if (CompareImplicitConversionSequences(S, From->getBeginLoc(), ICS, in TryListConversion()
5144 Result = ICS; in TryListConversion()
5340 ImplicitConversionSequence ICS = in TryCopyInitialization() local
5343 return !ICS.isBad(); in TryCopyInitialization()
5367 ImplicitConversionSequence ICS; in TryObjectArgumentInitialization() local
5403 ICS.setBad(BadConversionSequence::bad_qualifiers, in TryObjectArgumentInitialization()
5405 return ICS; in TryObjectArgumentInitialization()
5412 ICS.setBad(BadConversionSequence::bad_qualifiers, in TryObjectArgumentInitialization()
5414 return ICS; in TryObjectArgumentInitialization()
5427 ICS.setBad(BadConversionSequence::unrelated_class, in TryObjectArgumentInitialization()
5429 return ICS; in TryObjectArgumentInitialization()
5441 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, FromType, in TryObjectArgumentInitialization()
5443 return ICS; in TryObjectArgumentInitialization()
5450 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, FromType, in TryObjectArgumentInitialization()
5452 return ICS; in TryObjectArgumentInitialization()
5458 ICS.setStandard(); in TryObjectArgumentInitialization()
5459 ICS.Standard.setAsIdentityConversion(); in TryObjectArgumentInitialization()
5460 ICS.Standard.Second = SecondKind; in TryObjectArgumentInitialization()
5461 ICS.Standard.setFromType(FromType); in TryObjectArgumentInitialization()
5462 ICS.Standard.setAllToTypes(ImplicitParamType); in TryObjectArgumentInitialization()
5463 ICS.Standard.ReferenceBinding = true; in TryObjectArgumentInitialization()
5464 ICS.Standard.DirectBinding = true; in TryObjectArgumentInitialization()
5465 ICS.Standard.IsLvalueReference = Method->getRefQualifier() != RQ_RValue; in TryObjectArgumentInitialization()
5466 ICS.Standard.BindsToFunctionLvalue = false; in TryObjectArgumentInitialization()
5467 ICS.Standard.BindsToRvalue = FromClassification.isRValue(); in TryObjectArgumentInitialization()
5468 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier in TryObjectArgumentInitialization()
5470 return ICS; in TryObjectArgumentInitialization()
5505 ImplicitConversionSequence ICS = TryObjectArgumentInitialization( in PerformObjectArgumentInitialization() local
5508 if (ICS.isBad()) { in PerformObjectArgumentInitialization()
5509 switch (ICS.Bad.Kind) { in PerformObjectArgumentInitialization()
5551 if (ICS.Standard.Second == ICK_Derived_To_Base) { in PerformObjectArgumentInitialization()
5603 ImplicitConversionSequence ICS = TryContextuallyConvertToBool(*this, From); in PerformContextuallyConvertToBool() local
5604 if (!ICS.isBad()) in PerformContextuallyConvertToBool()
5605 return PerformImplicitConversion(From, Context.BoolTy, ICS, AA_Converting); in PerformContextuallyConvertToBool()
5699 ImplicitConversionSequence ICS = in CheckConvertedConstantExpression() local
5708 switch (ICS.getKind()) { in CheckConvertedConstantExpression()
5710 SCS = &ICS.Standard; in CheckConvertedConstantExpression()
5714 SCS = &ICS.UserDefined.Before; in CheckConvertedConstantExpression()
5716 SCS = &ICS.UserDefined.After; in CheckConvertedConstantExpression()
5755 Result = S.PerformImplicitConversion(From, T, ICS, Sema::AA_Converting); in CheckConvertedConstantExpression()
5896 ImplicitConversionSequence ICS in TryContextuallyConvertToObjCPointer() local
5907 switch (ICS.getKind()) { in TryContextuallyConvertToObjCPointer()
5914 dropPointerConversion(ICS.UserDefined.After); in TryContextuallyConvertToObjCPointer()
5918 dropPointerConversion(ICS.Standard); in TryContextuallyConvertToObjCPointer()
5922 return ICS; in TryContextuallyConvertToObjCPointer()
5933 ImplicitConversionSequence ICS = in PerformContextuallyConvertToObjCPointer() local
5935 if (!ICS.isBad()) in PerformContextuallyConvertToObjCPointer()
5936 return PerformImplicitConversion(From, Ty, ICS, AA_Converting); in PerformContextuallyConvertToObjCPointer()
7475 ImplicitConversionSequence ICS = in AddConversionCandidate() local
7481 switch (ICS.getKind()) { in AddConversionCandidate()
7483 Candidate.FinalConversion = ICS.Standard; in AddConversionCandidate()
7490 GetConversionRank(ICS.Standard.Second) != ICR_Exact_Match) { in AddConversionCandidate()
7502 ICS.Standard.First == ICK_Lvalue_To_Rvalue) { in AddConversionCandidate()
9779 auto IsIllFormedConversion = [&](const ImplicitConversionSequence &ICS) { in isBetterOverloadCandidate() argument
9782 return ICS.isStandard() && in isBetterOverloadCandidate()
9783 ICS.Standard.Second == ICK_Incompatible_Pointer_Conversion; in isBetterOverloadCandidate()
9788 hasDeprecatedStringLiteralToCharPtrConversion(ICS); in isBetterOverloadCandidate()
11464 for (const ImplicitConversionSequence &ICS : Cand->Conversions) { in NoteAmbiguousUserConversions() local
11465 if (ICS.isBad()) break; // all meaningless after first invalid in NoteAmbiguousUserConversions()
11466 if (!ICS.isAmbiguous()) continue; in NoteAmbiguousUserConversions()
11468 ICS.DiagnoseAmbiguousConversion( in NoteAmbiguousUserConversions()