Home | History | Annotate | Download | only in Sema

Lines Matching full:conversions

83                         OverloadCandidateSet& Conversions,
221 /// implicit conversions.
239 // array-to-pointer or function-to-pointer implicit conversions, so
393 // Boolean conversions can be from pointers and pointers to members
394 // [conv.bool], and those aren't considered narrowing conversions.
412 // Such conversions on variables are always narrowing.
446 // Other kinds of conversions are not narrowings.
486 OS << "No conversions required";
536 new (&conversions()) ConversionSet();
540 conversions().~ConversionSet();
547 new (&conversions()) ConversionSet(O.conversions());
784 i->Conversions[ii].~ImplicitConversionSequence();
1109 OverloadCandidateSet Conversions(From->getExprLoc());
1111 = IsUserDefinedConversion(S, From, ToType, ICS.UserDefined, Conversions,
1157 for (OverloadCandidateSet::iterator Cand = Conversions.begin();
1158 Cand != Conversions.end(); ++Cand)
1187 /// If @p SuppressUserConversions, then user-defined conversions are
1189 /// If @p AllowExplicit, then explicit user-defined conversions are
1265 /// explicit user-defined conversions are permitted.
1354 // Identical types require no conversions.
1358 // There are no conversions between extended vector types, only identity.
1360 // There are no conversions between extended vector types other than the
1374 // 2)lax vector conversions are permitted and the vector types are of the
1396 /// only consider non-class types; for conversions that involve class
1408 // Standard conversions (C++ [conv])
1415 // There are no standard conversions for class types in C++, so
1421 // When we're overloading in C, we allow, as standard conversions,
1531 // We don't require any conversions for the first step.
1566 // Boolean conversions (C++ 4.12).
1571 // Integral conversions (C++ 4.7).
1575 // Complex conversions (C99 6.3.1.6)
1580 // Complex-real conversions (C99 6.3.1.7)
1584 // Floating point conversions (C++ 4.8).
1591 // Floating-integral conversions (C++ 4.9).
1601 // Pointer conversions (C++ 4.10).
1607 // Pointer to member conversions (4.11).
1614 // Compatible conversions (Clang extension for C function overloading)
1918 /// Conversions to 'id' subsume cv-qualifier conversions.
1973 /// This routine also supports conversions to and from block pointers
1974 /// and conversions with Objective-C's 'id', 'id<protocols...>', and
1978 /// GCC seems to consider all of these conversions to be pointer
1979 /// conversions, so for now they live here. IncompatibleObjC will be
2144 // First, we handle all conversions on ObjC object pointer types.
2164 // Conversions with Objective-C's id<...>.
2258 // pointer conversions. If so, we permit the conversion (but
2406 // pointer conversions. If so, we permit the conversion.
2598 /// conversions for which IsPointerConversion has already returned
2644 // Objective-C++ conversions are always okay.
2645 // FIXME: We should have a different class of conversions for the
2646 // Objective-C++ implicit conversions.
2711 /// virtual or inaccessible base-to-derived member pointer conversions
2811 // Check Objective-C lifetime conversions.
2819 // Qualification conversions cannot cast between different
2925 // suppress conversions.
2948 // Initializer lists don't have conversions as such.
3059 // suppress conversions.
3091 Conversions = FromRecordDecl->getVisibleConversionFunctions();
3093 I = Conversions.first, E = Conversions.second; I != E; ++I) {
3136 // Initializer lists don't have conversions as such.
3139 if (Best->Conversions[0].isEllipsis())
3142 User.Before = Best->Conversions[0].Standard;
3162 User.Before = Best->Conversions[0].Standard;
3231 // If both conversion functions are implicitly-declared conversions from
3471 // their derived-to-base conversions.
3477 // Both conversion sequences are conversions to void
3516 // Compare based on qualification conversions (C++ 13.3.3.2p3,
3589 /// qualification conversions (C++ 13.3.3.2p3 bullet 3).
3630 // Prefer qualification conversions not involving a change in lifetime
3631 // to qualification conversions that do not change lifetime.
3700 /// various kinds of derived-to-base conversions (C++
3702 /// conversions between Objective-C interface types.
3730 // Compare based on pointer conversions.
3733 /*FIXME: Remove if Objective-C id conversions get their own rank*/
3993 assert(T2->isRecordType() && "Can only find conversions
4000 Conversions = T2RecordDecl->getVisibleConversionFunctions();
4002 I = Conversions.first, E = Conversions.second; I != E; ++I) {
4017 // explicit conversions, skip it.
4084 ICS.UserDefined.Before = Best->Conversions[0].Standard;
4189 // derived-to-base conversions is suppressed when we're
4316 // related, and we aren't allowed any user conversions, the
4674 // are not allowed to create temporaries or perform user-defined conversions
4845 // conversions are fine.
4907 // sequence contains only user-defined conversions, lvalue-to-rvalue
4908 // conversions, integral promotions, and integral conversions other than
4909 // narrowing conversions.
5010 /// involves any pointer conversions, remove them. This may change
5035 // Strip off any final conversions to 'id'.
5238 // We can only perform contextual implicit conversions on objects of class
5268 CXXRecordDecl::conversion_iterator> Conversions =
5272 (std::distance(Conversions.first, Conversions.second) > 1);
5278 // Collect explicit or viable (potentially in C++1y) conversions.
5279 for (CXXRecordDecl::conversion_iterator I = Conversions.first,
5280 E = Conversions.second;
5344 // potentially viable conversions.
5405 /// conversions via constructors or conversion operators.
5512 Candidate.Conversions[ArgIdx]
5519 if (Candidate.Conversions[ArgIdx].isBad()) {
5528 Candidate.Conversions[ArgIdx].setEllipsis();
5605 /// allow user-defined conversions via constructors or conversion
5666 Candidate.Conversions[0]
5669 if (Candidate.Conversions[0].isBad()) {
5685 Candidate.Conversions[ArgIdx + 1]
5691 if (Candidate.Conversions[ArgIdx + 1].isBad()) {
5700 Candidate.Conversions[ArgIdx + 1].setEllipsis();
5859 Candidate.Conversions[0]
5864 if (Candidate.Conversions[0].isBad()) {
5871 // derived to base as such conversions are given Conversion Rank. They only
6033 Candidate.Conversions[0] = ObjectInit;
6040 Candidate.Conversions[0].setUserDefined();
6041 Candidate.Conversions[0].UserDefined.Before = ObjectInit.Standard;
6042 Candidate.Conversions[0].UserDefined.EllipsisConversion = false;
6043 Candidate.Conversions[0].UserDefined.HadMultipleCandidates = false;
6044 Candidate.Conversions[0].UserDefined.ConversionFunction = Conversion;
6045 Candidate.Conversions[0].UserDefined.FoundConversionFunction = FoundDecl;
6046 Candidate.Conversions[0].UserDefined.After
6047 = Candidate.Conversions[0].UserDefined.Before;
6048 Candidate.Conversions[0].UserDefined.After.setAsIdentityConversion();
6080 Candidate.Conversions[ArgIdx + 1]
6086 if (Candidate.Conversions[ArgIdx + 1].isBad()) {
6095 Candidate.Conversions[ArgIdx + 1].setEllipsis();
6184 // For the built-in assignment operators, conversions of the
6187 // -- no user-defined conversions are applied to the left
6191 // We block these conversions by turning off user-defined
6192 // conversions, since that is the only way that initialization of
6198 Candidate.Conversions[ArgIdx]
6201 Candidate.Conversions[ArgIdx]
6208 if (Candidate.Conversions[ArgIdx].isBad()) {
6438 // expression for the purposes of conversions.
6486 Conversions = ClassDecl->getVisibleConversionFunctions();
6488 I = Conversions.first, E = Conversions.second; I != E; ++I) {
6555 Conversions = ClassDecl->getVisibleConversionFunctions();
6558 I = Conversions.first, E = Conversions.second; I != E; ++I) {
6655 // Accelerator table for performing the usual arithmetic conversions.
6727 // add volatile version only if there are conversions to a volatile type.
6738 // Add restrict version only if there are conversions to a restrict type
7141 // where LR is the result of the usual arithmetic conversions
7151 // where LR is the result of the usual arithmetic conversions
7207 // where LR is the result of the usual arithmetic conversions
7567 // Add volatile/restrict version only if there are conversions to a
7930 Cand1.Conversions[ArgIdx],
7931 Cand2.Conversions[ArgIdx])) {
8197 const ImplicitConversionSequence &Conv = Cand->Conversions[I];
8330 // Diagnose base -> derived pointer conversions.
8765 if (Cand->Conversions[I].isBad())
8836 const ImplicitConversionSequence &ICS = Cand->Conversions[ArgIdx];
8918 // 2. Bad conversions come first and are ordered by the number
8919 // of bad conversions and quality of good conversions.
8937 // If there's any ordering between the defined conversions...
8945 L->Conversions[I],
8946 R->Conversions[I])) {
9010 if (Cand->Conversions[ConvIdx - 1].isBad()) {
9019 assert(!Cand->Conversions[ConvIdx].isInitialized() &&
9045 Cand->Conversions[ConvIdx]
9055 // Fill in the rest of the conversions.
9059 Cand->Conversions[ConvIdx]
9066 if (!Unfixable && Cand->Conversions[ConvIdx].isBad())
9070 Cand->Conversions[ConvIdx].setEllipsis();
9130 // FIXME: It's quite possible for different conversions to see
10433 Best->Conversions[0], AA_Passing);
10545 // Always do placeholder-like conversions on the RHS.
10675 Best->Conversions[0], AA_Passing);
10682 Best->Conversions[1], AA_Passing);
10880 Best->Conversions[0], AA_Passing);
10887 Best->Conversions[1], AA_Passing);
11247 CXXRecordDecl::conversion_iterator> Conversions
11250 I = Conversions.first, E = Conversions.second; I != E; ++I) {
11328 Best->Conversions[0].UserDefined.ConversionFunction);