Lines Matching refs:ICS

1265   ImplicitConversionSequence ICS;  in TryUserDefinedConversion()  local
1270 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryUserDefinedConversion()
1271 return ICS; in TryUserDefinedConversion()
1277 switch (IsUserDefinedConversion(S, From, ToType, ICS.UserDefined, in TryUserDefinedConversion()
1282 ICS.setUserDefined(); in TryUserDefinedConversion()
1291 = dyn_cast<CXXConstructorDecl>(ICS.UserDefined.ConversionFunction)) { in TryUserDefinedConversion()
1301 DeclAccessPair Found = ICS.UserDefined.FoundConversionFunction; in TryUserDefinedConversion()
1302 ICS.setStandard(); in TryUserDefinedConversion()
1303 ICS.Standard.setAsIdentityConversion(); in TryUserDefinedConversion()
1304 ICS.Standard.setFromType(From->getType()); in TryUserDefinedConversion()
1305 ICS.Standard.setAllToTypes(ToType); in TryUserDefinedConversion()
1306 ICS.Standard.CopyConstructor = Constructor; in TryUserDefinedConversion()
1307 ICS.Standard.FoundCopyConstructor = Found; in TryUserDefinedConversion()
1309 ICS.Standard.Second = ICK_Derived_To_Base; in TryUserDefinedConversion()
1315 ICS.setAmbiguous(); in TryUserDefinedConversion()
1316 ICS.Ambiguous.setFromType(From->getType()); in TryUserDefinedConversion()
1317 ICS.Ambiguous.setToType(ToType); in TryUserDefinedConversion()
1321 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in TryUserDefinedConversion()
1326 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryUserDefinedConversion()
1330 return ICS; in TryUserDefinedConversion()
1368 ImplicitConversionSequence ICS; in TryImplicitConversion() local
1370 ICS.Standard, CStyle, AllowObjCWritebackConversion)){ in TryImplicitConversion()
1371 ICS.setStandard(); in TryImplicitConversion()
1372 return ICS; in TryImplicitConversion()
1376 ICS.setBad(BadConversionSequence::no_conversion, From, ToType); in TryImplicitConversion()
1377 return ICS; in TryImplicitConversion()
1391 ICS.setStandard(); in TryImplicitConversion()
1392 ICS.Standard.setAsIdentityConversion(); in TryImplicitConversion()
1393 ICS.Standard.setFromType(FromType); in TryImplicitConversion()
1394 ICS.Standard.setAllToTypes(ToType); in TryImplicitConversion()
1400 ICS.Standard.CopyConstructor = nullptr; in TryImplicitConversion()
1404 ICS.Standard.Second = ICK_Derived_To_Base; in TryImplicitConversion()
1406 return ICS; in TryImplicitConversion()
1437 ImplicitConversionSequence ICS; in PerformImplicitConversion() local
1438 return PerformImplicitConversion(From, ToType, Action, AllowExplicit, ICS); in PerformImplicitConversion()
1444 ImplicitConversionSequence& ICS) { in PerformImplicitConversion() argument
1455 ICS = ::TryImplicitConversion(*this, From, ToType, in PerformImplicitConversion()
1462 return PerformImplicitConversion(From, ToType, ICS, Action); in PerformImplicitConversion()
3522 ImplicitConversionSequence ICS; in DiagnoseMultipleUserDefinedConversion() local
3526 IsUserDefinedConversion(*this, From, ToType, ICS.UserDefined, in DiagnoseMultipleUserDefinedConversion()
3578 const ImplicitConversionSequence &ICS) { in hasDeprecatedStringLiteralToCharPtrConversion() argument
3579 return (ICS.isStandard() && ICS.Standard.DeprecatedStringLiteralToCharPtr) || in hasDeprecatedStringLiteralToCharPtrConversion()
3580 (ICS.isUserDefined() && in hasDeprecatedStringLiteralToCharPtrConversion()
3581 ICS.UserDefined.Before.DeprecatedStringLiteralToCharPtr); in hasDeprecatedStringLiteralToCharPtrConversion()
4391 FindConversionForRefInit(Sema &S, ImplicitConversionSequence &ICS, in FindConversionForRefInit() argument
4485 ICS.setUserDefined(); in FindConversionForRefInit()
4486 ICS.UserDefined.Before = Best->Conversions[0].Standard; in FindConversionForRefInit()
4487 ICS.UserDefined.After = Best->FinalConversion; in FindConversionForRefInit()
4488 ICS.UserDefined.HadMultipleCandidates = HadMultipleCandidates; in FindConversionForRefInit()
4489 ICS.UserDefined.ConversionFunction = Best->Function; in FindConversionForRefInit()
4490 ICS.UserDefined.FoundConversionFunction = Best->FoundDecl; in FindConversionForRefInit()
4491 ICS.UserDefined.EllipsisConversion = false; in FindConversionForRefInit()
4492 assert(ICS.UserDefined.After.ReferenceBinding && in FindConversionForRefInit()
4493 ICS.UserDefined.After.DirectBinding && in FindConversionForRefInit()
4498 ICS.setAmbiguous(); in FindConversionForRefInit()
4502 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in FindConversionForRefInit()
4525 ImplicitConversionSequence ICS; in TryReferenceInit() local
4526 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
4570 ICS.setStandard(); in TryReferenceInit()
4571 ICS.Standard.First = ICK_Identity; in TryReferenceInit()
4572 ICS.Standard.Second = DerivedToBase? ICK_Derived_To_Base in TryReferenceInit()
4575 ICS.Standard.Third = ICK_Identity; in TryReferenceInit()
4576 ICS.Standard.FromTypePtr = T2.getAsOpaquePtr(); in TryReferenceInit()
4577 ICS.Standard.setToType(0, T2); in TryReferenceInit()
4578 ICS.Standard.setToType(1, T1); in TryReferenceInit()
4579 ICS.Standard.setToType(2, T1); in TryReferenceInit()
4580 ICS.Standard.ReferenceBinding = true; in TryReferenceInit()
4581 ICS.Standard.DirectBinding = true; in TryReferenceInit()
4582 ICS.Standard.IsLvalueReference = !isRValRef; in TryReferenceInit()
4583 ICS.Standard.BindsToFunctionLvalue = T2->isFunctionType(); in TryReferenceInit()
4584 ICS.Standard.BindsToRvalue = false; in TryReferenceInit()
4585 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
4586 ICS.Standard.ObjCLifetimeConversionBinding = ObjCLifetimeConversion; in TryReferenceInit()
4587 ICS.Standard.CopyConstructor = nullptr; in TryReferenceInit()
4588 ICS.Standard.DeprecatedStringLiteralToCharPtr = false; in TryReferenceInit()
4594 return ICS; in TryReferenceInit()
4607 if (FindConversionForRefInit(S, ICS, DeclType, DeclLoc, in TryReferenceInit()
4610 return ICS; in TryReferenceInit()
4618 return ICS; in TryReferenceInit()
4628 ICS.setStandard(); in TryReferenceInit()
4629 ICS.Standard.First = ICK_Identity; in TryReferenceInit()
4630 ICS.Standard.Second = DerivedToBase? ICK_Derived_To_Base in TryReferenceInit()
4633 ICS.Standard.Third = ICK_Identity; in TryReferenceInit()
4634 ICS.Standard.FromTypePtr = T2.getAsOpaquePtr(); in TryReferenceInit()
4635 ICS.Standard.setToType(0, T2); in TryReferenceInit()
4636 ICS.Standard.setToType(1, T1); in TryReferenceInit()
4637 ICS.Standard.setToType(2, T1); in TryReferenceInit()
4638 ICS.Standard.ReferenceBinding = true; in TryReferenceInit()
4644 ICS.Standard.DirectBinding = in TryReferenceInit()
4647 ICS.Standard.IsLvalueReference = !isRValRef; in TryReferenceInit()
4648 ICS.Standard.BindsToFunctionLvalue = T2->isFunctionType(); in TryReferenceInit()
4649 ICS.Standard.BindsToRvalue = InitCategory.isRValue(); in TryReferenceInit()
4650 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
4651 ICS.Standard.ObjCLifetimeConversionBinding = ObjCLifetimeConversion; in TryReferenceInit()
4652 ICS.Standard.CopyConstructor = nullptr; in TryReferenceInit()
4653 ICS.Standard.DeprecatedStringLiteralToCharPtr = false; in TryReferenceInit()
4654 return ICS; in TryReferenceInit()
4669 FindConversionForRefInit(S, ICS, DeclType, DeclLoc, in TryReferenceInit()
4676 if (ICS.isUserDefined() && isRValRef && in TryReferenceInit()
4677 ICS.UserDefined.After.First == ICK_Lvalue_To_Rvalue) in TryReferenceInit()
4678 ICS.setBad(BadConversionSequence::no_conversion, Init, DeclType); in TryReferenceInit()
4680 return ICS; in TryReferenceInit()
4685 return ICS; in TryReferenceInit()
4712 return ICS; in TryReferenceInit()
4722 return ICS; in TryReferenceInit()
4728 return ICS; in TryReferenceInit()
4740 ICS = TryImplicitConversion(S, Init, T1, SuppressUserConversions, in TryReferenceInit()
4748 if (ICS.isStandard()) { in TryReferenceInit()
4749 ICS.Standard.ReferenceBinding = true; in TryReferenceInit()
4750 ICS.Standard.IsLvalueReference = !isRValRef; in TryReferenceInit()
4751 ICS.Standard.BindsToFunctionLvalue = false; in TryReferenceInit()
4752 ICS.Standard.BindsToRvalue = true; in TryReferenceInit()
4753 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
4754 ICS.Standard.ObjCLifetimeConversionBinding = false; in TryReferenceInit()
4755 } else if (ICS.isUserDefined()) { in TryReferenceInit()
4757 ICS.UserDefined.ConversionFunction->getReturnType() in TryReferenceInit()
4770 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, Init, DeclType); in TryReferenceInit()
4771 return ICS; in TryReferenceInit()
4774 ICS.UserDefined.After.ReferenceBinding = true; in TryReferenceInit()
4775 ICS.UserDefined.After.IsLvalueReference = !isRValRef; in TryReferenceInit()
4776 ICS.UserDefined.After.BindsToFunctionLvalue = false; in TryReferenceInit()
4777 ICS.UserDefined.After.BindsToRvalue = !LValRefType; in TryReferenceInit()
4778 ICS.UserDefined.After.BindsImplicitObjectArgumentWithoutRefQualifier = false; in TryReferenceInit()
4779 ICS.UserDefined.After.ObjCLifetimeConversionBinding = false; in TryReferenceInit()
4782 return ICS; in TryReferenceInit()
4871 ImplicitConversionSequence ICS = in TryListConversion() local
4876 if (ICS.isBad()) { in TryListConversion()
4877 Result = ICS; in TryListConversion()
4882 S, From->getBeginLoc(), ICS, Result) == in TryListConversion()
4884 Result = ICS; in TryListConversion()
5081 ImplicitConversionSequence ICS = in TryCopyInitialization() local
5084 return !ICS.isBad(); in TryCopyInitialization()
5110 ImplicitConversionSequence ICS; in TryObjectArgumentInitialization() local
5146 ICS.setBad(BadConversionSequence::bad_qualifiers, in TryObjectArgumentInitialization()
5148 return ICS; in TryObjectArgumentInitialization()
5160 ICS.setBad(BadConversionSequence::unrelated_class, in TryObjectArgumentInitialization()
5162 return ICS; in TryObjectArgumentInitialization()
5174 ICS.setBad(BadConversionSequence::lvalue_ref_to_rvalue, FromType, in TryObjectArgumentInitialization()
5176 return ICS; in TryObjectArgumentInitialization()
5183 ICS.setBad(BadConversionSequence::rvalue_ref_to_lvalue, FromType, in TryObjectArgumentInitialization()
5185 return ICS; in TryObjectArgumentInitialization()
5191 ICS.setStandard(); in TryObjectArgumentInitialization()
5192 ICS.Standard.setAsIdentityConversion(); in TryObjectArgumentInitialization()
5193 ICS.Standard.Second = SecondKind; in TryObjectArgumentInitialization()
5194 ICS.Standard.setFromType(FromType); in TryObjectArgumentInitialization()
5195 ICS.Standard.setAllToTypes(ImplicitParamType); in TryObjectArgumentInitialization()
5196 ICS.Standard.ReferenceBinding = true; in TryObjectArgumentInitialization()
5197 ICS.Standard.DirectBinding = true; in TryObjectArgumentInitialization()
5198 ICS.Standard.IsLvalueReference = Method->getRefQualifier() != RQ_RValue; in TryObjectArgumentInitialization()
5199 ICS.Standard.BindsToFunctionLvalue = false; in TryObjectArgumentInitialization()
5200 ICS.Standard.BindsToRvalue = FromClassification.isRValue(); in TryObjectArgumentInitialization()
5201 ICS.Standard.BindsImplicitObjectArgumentWithoutRefQualifier in TryObjectArgumentInitialization()
5203 return ICS; in TryObjectArgumentInitialization()
5238 ImplicitConversionSequence ICS = TryObjectArgumentInitialization( in PerformObjectArgumentInitialization() local
5241 if (ICS.isBad()) { in PerformObjectArgumentInitialization()
5242 switch (ICS.Bad.Kind) { in PerformObjectArgumentInitialization()
5280 if (ICS.Standard.Second == ICK_Derived_To_Base) { in PerformObjectArgumentInitialization()
5318 ImplicitConversionSequence ICS = TryContextuallyConvertToBool(*this, From); in PerformContextuallyConvertToBool() local
5319 if (!ICS.isBad()) in PerformContextuallyConvertToBool()
5320 return PerformImplicitConversion(From, Context.BoolTy, ICS, AA_Converting); in PerformContextuallyConvertToBool()
5416 ImplicitConversionSequence ICS = in CheckConvertedConstantExpression() local
5425 switch (ICS.getKind()) { in CheckConvertedConstantExpression()
5427 SCS = &ICS.Standard; in CheckConvertedConstantExpression()
5432 SCS = &ICS.UserDefined.After; in CheckConvertedConstantExpression()
5460 S.PerformImplicitConversion(From, T, ICS, Sema::AA_Converting); in CheckConvertedConstantExpression()
5565 ImplicitConversionSequence ICS in TryContextuallyConvertToObjCPointer() local
5576 switch (ICS.getKind()) { in TryContextuallyConvertToObjCPointer()
5583 dropPointerConversion(ICS.UserDefined.After); in TryContextuallyConvertToObjCPointer()
5587 dropPointerConversion(ICS.Standard); in TryContextuallyConvertToObjCPointer()
5591 return ICS; in TryContextuallyConvertToObjCPointer()
5602 ImplicitConversionSequence ICS = in PerformContextuallyConvertToObjCPointer() local
5604 if (!ICS.isBad()) in PerformContextuallyConvertToObjCPointer()
5605 return PerformImplicitConversion(From, Ty, ICS, AA_Converting); in PerformContextuallyConvertToObjCPointer()
7040 ImplicitConversionSequence ICS = in AddConversionCandidate() local
7046 switch (ICS.getKind()) { in AddConversionCandidate()
7048 Candidate.FinalConversion = ICS.Standard; in AddConversionCandidate()
7055 GetConversionRank(ICS.Standard.Second) != ICR_Exact_Match) { in AddConversionCandidate()
7067 ICS.Standard.First == ICK_Lvalue_To_Rvalue) { in AddConversionCandidate()
9118 auto IsIllFormedConversion = [&](const ImplicitConversionSequence &ICS) { in isBetterOverloadCandidate() argument
9121 return ICS.isStandard() && in isBetterOverloadCandidate()
9122 ICS.Standard.Second == ICK_Incompatible_Pointer_Conversion; in isBetterOverloadCandidate()
9127 hasDeprecatedStringLiteralToCharPtrConversion(ICS); in isBetterOverloadCandidate()
10488 for (const ImplicitConversionSequence &ICS : Cand->Conversions) { in NoteAmbiguousUserConversions() local
10489 if (ICS.isBad()) break; // all meaningless after first invalid in NoteAmbiguousUserConversions()
10490 if (!ICS.isAmbiguous()) continue; in NoteAmbiguousUserConversions()
10492 ICS.DiagnoseAmbiguousConversion( in NoteAmbiguousUserConversions()