Lines Matching refs:Conversions
68 OverloadCandidateSet& Conversions,
206 /// implicit conversions.
224 // array-to-pointer or function-to-pointer implicit conversions, so
378 // Boolean conversions can be from pointers and pointers to members
379 // [conv.bool], and those aren't considered narrowing conversions.
422 // Other kinds of conversions are not narrowings.
462 OS << "No conversions required";
512 new (&conversions()) ConversionSet();
516 conversions().~ConversionSet();
523 new (&conversions()) ConversionSet(O.conversions());
712 i->Conversions[ii].~ImplicitConversionSequence();
1018 OverloadCandidateSet Conversions(From->getExprLoc());
1020 = IsUserDefinedConversion(S, From, ToType, ICS.UserDefined, Conversions,
1066 for (OverloadCandidateSet::iterator Cand = Conversions.begin();
1067 Cand != Conversions.end(); ++Cand)
1096 /// If @p SuppressUserConversions, then user-defined conversions are
1098 /// If @p AllowExplicit, then explicit user-defined conversions are
1174 /// explicit user-defined conversions are permitted.
1263 // Identical types require no conversions.
1267 // There are no conversions between extended vector types, only identity.
1269 // There are no conversions between extended vector types other than the
1283 // 2)lax vector conversions are permitted and the vector types are of the
1305 /// only consider non-class types; for conversions that involve class
1317 // Standard conversions (C++ [conv])
1324 // There are no standard conversions for class types in C++, so
1330 // When we're overloading in C, we allow, as standard conversions,
1440 // We don't require any conversions for the first step.
1475 // Boolean conversions (C++ 4.12).
1480 // Integral conversions (C++ 4.7).
1484 // Complex conversions (C99 6.3.1.6)
1489 // Complex-real conversions (C99 6.3.1.7)
1493 // Floating point conversions (C++ 4.8).
1500 // Floating-integral conversions (C++ 4.9).
1510 // Pointer conversions (C++ 4.10).
1516 // Pointer to member conversions (4.11).
1523 // Compatible conversions (Clang extension for C function overloading)
1809 /// Conversions to 'id' subsume cv-qualifier conversions.
1864 /// This routine also supports conversions to and from block pointers
1865 /// and conversions with Objective-C's 'id', 'id<protocols...>', and
1869 /// GCC seems to consider all of these conversions to be pointer
1870 /// conversions, so for now they live here. IncompatibleObjC will be
2035 // First, we handle all conversions on ObjC object pointer types.
2055 // Conversions with Objective-C's id<...>.
2149 // pointer conversions. If so, we permit the conversion (but
2297 // pointer conversions. If so, we permit the conversion.
2522 /// conversions for which IsPointerConversion has already returned
2564 // Objective-C++ conversions are always okay.
2565 // FIXME: We should have a different class of conversions for the
2566 // Objective-C++ implicit conversions.
2631 /// virtual or inaccessible base-to-derived member pointer conversions
2731 // Check Objective-C lifetime conversions.
2739 // Qualification conversions cannot cast between different
2845 // suppress conversions.
2870 // Initializer lists don't have conversions as such.
2981 // suppress conversions.
3012 const UnresolvedSetImpl *Conversions
3014 for (UnresolvedSetImpl::iterator I = Conversions->begin(),
3015 E = Conversions->end(); I != E; ++I) {
3060 // Initializer lists don't have conversions as such.
3063 if (Best->Conversions[0].isEllipsis())
3066 User.Before = Best->Conversions[0].Standard;
3088 User.Before = Best->Conversions[0].Standard;
3153 // If both conversion functions are implicitly-declared conversions from
3393 // their derived-to-base conversions.
3399 // Both conversion sequences are conversions to void
3438 // Compare based on qualification conversions (C++ 13.3.3.2p3,
3511 /// qualification conversions (C++ 13.3.3.2p3 bullet 3).
3552 // Prefer qualification conversions not involving a change in lifetime
3553 // to qualification conversions that do not change lifetime.
3622 /// various kinds of derived-to-base conversions (C++
3624 /// conversions between Objective-C interface types.
3652 // Compare based on pointer conversions.
3655 /*FIXME: Remove if Objective-C id conversions get their own rank*/
3905 assert(T2->isRecordType() && "Can only find conversions of record types.");
3910 const UnresolvedSetImpl *Conversions
3912 for (UnresolvedSetImpl::iterator I = Conversions->begin(),
3913 E = Conversions->end(); I != E; ++I) {
3928 // explicit conversions, skip it.
3997 ICS.UserDefined.Before = Best->Conversions[0].Standard;
4102 // derived-to-base conversions is suppressed when we're
4229 // related, and we aren't allowed any user conversions, the
4588 // are not allowed to create temporaries or perform user-defined conversions
4759 // conversions are fine.
4820 // sequence contains only user-defined conversions, lvalue-to-rvalue
4821 // conversions, integral promotions, and integral conversions other than
4822 // narrowing conversions.
4923 /// involves any pointer conversions, remove them. This may change
4948 // Strip off any final conversions to 'id'.
5022 /// \param AllowScopedEnumerations Specifies whether conversions to scoped
5071 const UnresolvedSetImpl *Conversions
5074 bool HadMultipleCandidates = (Conversions->size() > 1);
5076 for (UnresolvedSetImpl::iterator I = Conversions->begin(),
5077 E = Conversions->end();
5191 /// conversions via constructors or conversion operators.
5298 Candidate.Conversions[ArgIdx]
5305 if (Candidate.Conversions[ArgIdx].isBad()) {
5314 Candidate.Conversions[ArgIdx].setEllipsis();
5391 /// allow user-defined conversions via constructors or conversion
5452 Candidate.Conversions[0]
5455 if (Candidate.Conversions[0].isBad()) {
5471 Candidate.Conversions[ArgIdx + 1]
5477 if (Candidate.Conversions[ArgIdx + 1].isBad()) {
5486 Candidate.Conversions[ArgIdx + 1].setEllipsis();
5637 Candidate.Conversions[0]
5642 if (Candidate.Conversions[0].isBad()) {
5649 // derived to base as such conversions are given Conversion Rank. They only
5811 Candidate.Conversions[0] = ObjectInit;
5818 Candidate.Conversions[0].setUserDefined();
5819 Candidate.Conversions[0].UserDefined.Before = ObjectInit.Standard;
5820 Candidate.Conversions[0].UserDefined.EllipsisConversion = false;
5821 Candidate.Conversions[0].UserDefined.HadMultipleCandidates = false;
5822 Candidate.Conversions[0].UserDefined.ConversionFunction = Conversion;
5823 Candidate.Conversions[0].UserDefined.FoundConversionFunction = FoundDecl;
5824 Candidate.Conversions[0].UserDefined.After
5825 = Candidate.Conversions[0].UserDefined.Before;
5826 Candidate.Conversions[0].UserDefined.After.setAsIdentityConversion();
5858 Candidate.Conversions[ArgIdx + 1]
5864 if (Candidate.Conversions[ArgIdx + 1].isBad()) {
5873 Candidate.Conversions[ArgIdx + 1].setEllipsis();
5959 // For the built-in assignment operators, conversions of the
5962 // -- no user-defined conversions are applied to the left
5966 // We block these conversions by turning off user-defined
5967 // conversions, since that is the only way that initialization of
5973 Candidate.Conversions[ArgIdx]
5976 Candidate.Conversions[ArgIdx]
5983 if (Candidate.Conversions[ArgIdx].isBad()) {
6200 // expression for the purposes of conversions.
6246 const UnresolvedSetImpl *Conversions
6248 for (UnresolvedSetImpl::iterator I = Conversions->begin(),
6249 E = Conversions->end(); I != E; ++I) {
6315 const UnresolvedSetImpl *Conversions =
6318 for (UnresolvedSetImpl::iterator I = Conversions->begin(),
6319 E = Conversions->end(); I != E; ++I) {
6415 // Accelerator table for performing the usual arithmetic conversions.
6482 // add volatile version only if there are conversions to a volatile type.
6869 // where LR is the result of the usual arithmetic conversions
6879 // where LR is the result of the usual arithmetic conversions
6935 // where LR is the result of the usual arithmetic conversions
7258 // Add volatile/restrict version only if there are conversions to a
7623 Cand1.Conversions[ArgIdx],
7624 Cand2.Conversions[ArgIdx])) {
7882 const ImplicitConversionSequence &Conv = Cand->Conversions[I];
8015 // Diagnose base -> derived pointer conversions.
8324 if (Cand->Conversions[I].isBad())
8395 Conversions[ArgIdx];
8476 // 2. Bad conversions come first and are ordered by the number
8477 // of bad conversions and quality of good conversions.
8495 // If there's any ordering between the defined conversions...
8503 L->Conversions[I],
8504 R->Conversions[I])) {
8568 if (Cand->Conversions[ConvIdx - 1].isBad()) {
8577 assert(!Cand->Conversions[ConvIdx].isInitialized() &&
8603 Cand->Conversions[ConvIdx]
8613 // Fill in the rest of the conversions.
8617 Cand->Conversions[ConvIdx]
8624 if (!Unfixable && Cand->Conversions[ConvIdx].isBad())
8628 Cand->Conversions[ConvIdx].setEllipsis();
8689 // FIXME: It's quite possible for different conversions to see
9838 Best->Conversions[0], AA_Passing);
9953 // Always do placeholder-like conversions on the RHS.
10078 Best->Conversions[0], AA_Passing);
10085 Best->Conversions[1], AA_Passing);
10287 Best->Conversions[0], AA_Passing);
10294 Best->Conversions[1], AA_Passing);
10645 const UnresolvedSetImpl *Conversions
10647 for (UnresolvedSetImpl::iterator I = Conversions->begin(),
10648 E = Conversions->end(); I != E; ++I) {
10730 Best->Conversions[0].UserDefined.ConversionFunction);