Home | History | Annotate | Download | only in Sema

Lines Matching refs:Conversions

86                         OverloadCandidateSet& Conversions,
197 /// implicit conversions.
215 // array-to-pointer or function-to-pointer implicit conversions, so
302 // Boolean conversions can be from pointers and pointers to members
303 // [conv.bool], and those aren't considered narrowing conversions.
394 // Such conversions on variables are always narrowing.
428 // Other kinds of conversions are not narrowings.
468 OS << "No conversions required";
520 new (&conversions()) ConversionSet();
524 conversions().~ConversionSet();
531 new (&conversions()) ConversionSet(O.conversions());
769 i->Conversions[ii].~ImplicitConversionSequence();
1144 OverloadCandidateSet Conversions(From->getExprLoc(),
1147 Conversions, AllowExplicit,
1186 for (OverloadCandidateSet::iterator Cand = Conversions.begin();
1187 Cand != Conversions.end(); ++Cand)
1220 /// If @p SuppressUserConversions, then user-defined conversions are
1222 /// If @p AllowExplicit, then explicit user-defined conversions are
1301 /// explicit user-defined conversions are permitted.
1393 // Identical types require no conversions.
1397 // There are no conversions between extended vector types, only identity.
1399 // There are no conversions between extended vector types other than the
1413 // 2)lax vector conversions are permitted and the vector types are of the
1434 /// only consider non-class types; for conversions that involve class
1446 // Standard conversions (C++ [conv])
1452 // There are no standard conversions for class types in C++, so
1571 // We don't require any conversions for the first step.
1606 // Boolean conversions (C++ 4.12).
1611 // Integral conversions (C++ 4.7).
1615 // Complex conversions (C99 6.3.1.6)
1620 // Complex-real conversions (C99 6.3.1.7)
1624 // Floating point conversions (C++ 4.8).
1631 // Floating-integral conversions (C++ 4.9).
1641 // Pointer conversions (C++ 4.10).
1647 // Pointer to member conversions (4.11).
1654 // Compatible conversions (Clang extension for C function overloading)
1729 // and we don't know what conversions it may overlap with.
1975 /// Conversions to 'id' subsume cv-qualifier conversions.
2030 /// This routine also supports conversions to and from block pointers
2031 /// and conversions with Objective-C's 'id', 'id<protocols...>', and
2035 /// GCC seems to consider all of these conversions to be pointer
2036 /// conversions, so for now they live here. IncompatibleObjC will be
2200 // First, we handle all conversions on ObjC object pointer types.
2298 // pointer conversions. If so, we permit the conversion (but
2446 // pointer conversions. If so, we permit the conversion.
2653 /// conversions for which IsPointerConversion has already returned
2707 // Objective-C++ conversions are always okay.
2708 // FIXME: We should have a different class of conversions for the
2709 // Objective-C++ implicit conversions.
2773 /// virtual or inaccessible base-to-derived member pointer conversions
2886 // Check Objective-C lifetime conversions.
2895 // Qualification conversions cannot cast between different
3001 // suppress conversions.
3027 // Initializer lists don't have conversions as such.
3139 // suppress conversions.
3169 const auto &Conversions = FromRecordDecl->getVisibleConversionFunctions();
3170 for (auto I = Conversions.begin(), E = Conversions.end(); I != E; ++I) {
3217 // Initializer lists don't have conversions as such.
3220 if (Best->Conversions[0].isEllipsis())
3223 User.Before = Best->Conversions[0].Standard;
3243 User.Before = Best->Conversions[0].Standard;
3306 // If both conversion functions are implicitly-declared conversions from
3584 // their derived-to-base conversions.
3590 // Both conversion sequences are conversions to void
3629 // Compare based on qualification conversions (C++ 13.3.3.2p3,
3701 /// qualification conversions (C++ 13.3.3.2p3 bullet 3).
3742 // Prefer qualification conversions not involving a change in lifetime
3743 // to qualification conversions that do not change lifetime.
3812 /// various kinds of derived-to-base conversions (C++
3814 /// conversions between Objective-C interface types.
3842 // Compare based on pointer conversions.
3845 /*FIXME: Remove if Objective-C id conversions get their own rank*/
4107 assert(T2->isRecordType() && "Can only find conversions of record types.");
4112 const auto &Conversions = T2RecordDecl->getVisibleConversionFunctions();
4113 for (auto I = Conversions.begin(), E = Conversions.end(); I != E; ++I) {
4128 // explicit conversions, skip it.
4197 ICS.UserDefined.Before = Best->Conversions[0].Standard;
4303 // derived-to-base conversions is suppressed when we're
4425 // related, and we aren't allowed any user conversions, the
4839 // are not allowed to create temporaries or perform user-defined conversions
5009 // conversions are fine.
5014 case ICK_Integral_Conversion: // Narrowing conversions are checked elsewhere.
5030 // C++1z: null pointer conversions and null member pointer conversions are
5083 // sequence contains only [... list of conversions ...].
5112 conversions.
5206 /// involves any pointer conversions, remove them. This may change
5232 // Strip off any final conversions to 'id'.
5437 // We can only perform contextual implicit conversions on objects of class
5467 const auto &Conversions =
5471 (std::distance(Conversions.begin(), Conversions.end()) > 1);
5477 // Collect explicit or viable (potentially in C++1y) conversions.
5478 for (auto I = Conversions.begin(), E = Conversions.end(); I != E; ++I) {
5541 // potentially viable conversions.
5641 /// conversions via constructors or conversion operators.
5775 Candidate.Conversions[ArgIdx]
5782 if (Candidate.Conversions[ArgIdx].isBad()) {
5791 Candidate.Conversions[ArgIdx].setEllipsis();
6068 /// allow user-defined conversions via constructors or conversion
6138 Candidate.Conversions[0] = TryObjectArgumentInitialization(
6141 if (Candidate.Conversions[0].isBad()) {
6166 Candidate.Conversions[ArgIdx + 1]
6172 if (Candidate.Conversions[ArgIdx + 1].isBad()) {
6181 Candidate.Conversions[ArgIdx + 1].setEllipsis();
6316 // Allow qualification conversions.
6322 // If we're not allowed to consider Objective-C pointer conversions,
6397 Candidate.Conversions[0] = TryObjectArgumentInitialization(
6401 if (Candidate.Conversions[0].isBad()) {
6408 // derived to base as such conversions are given Conversion Rank. They only
6580 Candidate.Conversions[0] = ObjectInit;
6587 Candidate.Conversions[0].setUserDefined();
6588 Candidate.Conversions[0].UserDefined.Before = ObjectInit.Standard;
6589 Candidate.Conversions[0].UserDefined.EllipsisConversion = false;
6590 Candidate.Conversions[0].UserDefined.HadMultipleCandidates = false;
6591 Candidate.Conversions[0].UserDefined.ConversionFunction = Conversion;
6592 Candidate.Conversions[0].UserDefined.FoundConversionFunction = FoundDecl;
6593 Candidate.Conversions[0].UserDefined.After
6594 = Candidate.Conversions[0].UserDefined.Before;
6595 Candidate.Conversions[0].UserDefined.After.setAsIdentityConversion();
6627 Candidate.Conversions[ArgIdx + 1]
6633 if (Candidate.Conversions[ArgIdx + 1].isBad()) {
6642 Candidate.Conversions[ArgIdx + 1].setEllipsis();
6739 // For the built-in assignment operators, conversions of the
6742 // -- no user-defined conversions are applied to the left
6746 // We block these conversions by turning off user-defined
6747 // conversions, since that is the only way that initialization of
6753 Candidate.Conversions[ArgIdx]
6756 Candidate.Conversions[ArgIdx]
6763 if (Candidate.Conversions[ArgIdx].isBad()) {
6993 // expression for the purposes of conversions.
7199 // Accelerator table for performing the usual arithmetic conversions.
7271 // add volatile version only if there are conversions to a volatile type.
7282 // Add restrict version only if there are conversions to a restrict type
7685 // where LR is the result of the usual arithmetic conversions
7695 // where LR is the result of the usual arithmetic conversions
7751 // where LR is the result of the usual arithmetic conversions
8111 // Add volatile/restrict version only if there are conversions to a
8511 Cand1.Conversions[ArgIdx],
8512 Cand2.Conversions[ArgIdx])) {
8944 const ImplicitConversionSequence &Conv = Cand->Conversions[I];
9077 // Diagnose base -> derived pointer conversions.
9585 if (Cand->Conversions[I].isBad())
9658 const ImplicitConversionSequence &ICS = Cand->Conversions[ArgIdx];
9761 // 2. Bad conversions come first and are ordered by the number
9762 // of bad conversions and quality of good conversions.
9777 // If there's any ordering between the defined conversions...
9785 L->Conversions[I],
9786 R->Conversions[I])) {
9851 if (Cand->Conversions[ConvIdx - 1].isBad()) {
9860 assert(!Cand->Conversions[ConvIdx].isInitialized() &&
9886 Cand->Conversions[ConvIdx]
9896 // Fill in the rest of the conversions.
9900 Cand->Conversions[ConvIdx] = TryCopyInitialization(
9906 if (!Unfixable && Cand->Conversions[ConvIdx].isBad())
9910 Cand->Conversions[ConvIdx].setEllipsis();
9969 // FIXME: It's quite possible for different conversions to see
11374 Best->Conversions[0], AA_Passing);
11478 // Always do placeholder-like conversions on the RHS.
11615 Best->Conversions[0], AA_Passing);
11622 Best->Conversions[1], AA_Passing);
11822 Best->Conversions[0], AA_Passing);
11829 Best->Conversions[1], AA_Passing);
12227 const auto &Conversions =
12229 for (auto I = Conversions.begin(), E = Conversions.end(); I != E; ++I) {
12307 Best->Conversions[0].UserDefined.ConversionFunction);