Home | History | Annotate | Download | only in Sema

Lines Matching refs:Conversions

85                         OverloadCandidateSet& Conversions,
224 /// implicit conversions.
242 // array-to-pointer or function-to-pointer implicit conversions, so
396 // Boolean conversions can be from pointers and pointers to members
397 // [conv.bool], and those aren't considered narrowing conversions.
415 // Such conversions on variables are always narrowing.
449 // Other kinds of conversions are not narrowings.
489 OS << "No conversions required";
541 new (&conversions()) ConversionSet();
545 conversions().~ConversionSet();
552 new (&conversions()) ConversionSet(O.conversions());
789 i->Conversions[ii].~ImplicitConversionSequence();
1132 OverloadCandidateSet Conversions(From->getExprLoc(),
1135 = IsUserDefinedConversion(S, From, ToType, ICS.UserDefined, Conversions,
1182 for (OverloadCandidateSet::iterator Cand = Conversions.begin();
1183 Cand != Conversions.end(); ++Cand)
1212 /// If @p SuppressUserConversions, then user-defined conversions are
1214 /// If @p AllowExplicit, then explicit user-defined conversions are
1293 /// explicit user-defined conversions are permitted.
1385 // Identical types require no conversions.
1389 // There are no conversions between extended vector types, only identity.
1391 // There are no conversions between extended vector types other than the
1405 // 2)lax vector conversions are permitted and the vector types are of the
1426 /// only consider non-class types; for conversions that involve class
1438 // Standard conversions (C++ [conv])
1444 // There are no standard conversions for class types in C++, so
1450 // When we're overloading in C, we allow, as standard conversions,
1560 // We don't require any conversions for the first step.
1595 // Boolean conversions (C++ 4.12).
1600 // Integral conversions (C++ 4.7).
1604 // Complex conversions (C99 6.3.1.6)
1609 // Complex-real conversions (C99 6.3.1.7)
1613 // Floating point conversions (C++ 4.8).
1620 // Floating-integral conversions (C++ 4.9).
1630 // Pointer conversions (C++ 4.10).
1636 // Pointer to member conversions (4.11).
1643 // Compatible conversions (Clang extension for C function overloading)
1945 /// Conversions to 'id' subsume cv-qualifier conversions.
2000 /// This routine also supports conversions to and from block pointers
2001 /// and conversions with Objective-C's 'id', 'id<protocols...>', and
2005 /// GCC seems to consider all of these conversions to be pointer
2006 /// conversions, so for now they live here. IncompatibleObjC will be
2171 // First, we handle all conversions on ObjC object pointer types.
2191 // Conversions with Objective-C's id<...>.
2285 // pointer conversions. If so, we permit the conversion (but
2433 // pointer conversions. If so, we permit the conversion.
2628 /// conversions for which IsPointerConversion has already returned
2674 // Objective-C++ conversions are always okay.
2675 // FIXME: We should have a different class of conversions for the
2676 // Objective-C++ implicit conversions.
2741 /// virtual or inaccessible base-to-derived member pointer conversions
2853 // Check Objective-C lifetime conversions.
2862 // Qualification conversions cannot cast between different
2968 // suppress conversions.
2991 // Initializer lists don't have conversions as such.
3109 // suppress conversions.
3141 Conversions = FromRecordDecl->getVisibleConversionFunctions();
3143 I = Conversions.first, E = Conversions.second; I != E; ++I) {
3188 // Initializer lists don't have conversions as such.
3191 if (Best->Conversions[0].isEllipsis())
3194 User.Before = Best->Conversions[0].Standard;
3214 User.Before = Best->Conversions[0].Standard;
3280 // If both conversion functions are implicitly-declared conversions from
3551 // their derived-to-base conversions.
3557 // Both conversion sequences are conversions to void
3596 // Compare based on qualification conversions (C++ 13.3.3.2p3,
3668 /// qualification conversions (C++ 13.3.3.2p3 bullet 3).
3709 // Prefer qualification conversions not involving a change in lifetime
3710 // to qualification conversions that do not change lifetime.
3779 /// various kinds of derived-to-base conversions (C++
3781 /// conversions between Objective-C interface types.
3809 // Compare based on pointer conversions.
3812 /*FIXME: Remove if Objective-C id conversions get their own rank*/
4074 assert(T2->isRecordType() && "Can only find conversions of record types.");
4081 Conversions = T2RecordDecl->getVisibleConversionFunctions();
4083 I = Conversions.first, E = Conversions.second; I != E; ++I) {
4098 // explicit conversions, skip it.
4167 ICS.UserDefined.Before = Best->Conversions[0].Standard;
4273 // derived-to-base conversions is suppressed when we're
4401 // related, and we aren't allowed any user conversions, the
4757 // are not allowed to create temporaries or perform user-defined conversions
4927 // conversions are fine.
4989 // sequence contains only user-defined conversions, lvalue-to-rvalue
4990 // conversions, integral promotions, and integral conversions other than
4991 // narrowing conversions.
5088 /// involves any pointer conversions, remove them. This may change
5114 // Strip off any final conversions to 'id'.
5319 // We can only perform contextual implicit conversions on objects of class
5349 CXXRecordDecl::conversion_iterator> Conversions =
5353 (std::distance(Conversions.first, Conversions.second) > 1);
5359 // Collect explicit or viable (potentially in C++1y) conversions.
5360 for (CXXRecordDecl::conversion_iterator I = Conversions.first,
5361 E = Conversions.second;
5425 // potentially viable conversions.
5525 /// conversions via constructors or conversion operators.
5651 Candidate.Conversions[ArgIdx]
5658 if (Candidate.Conversions[ArgIdx].isBad()) {
5667 Candidate.Conversions[ArgIdx].setEllipsis();
5816 /// allow user-defined conversions via constructors or conversion
5884 Candidate.Conversions[0]
5887 if (Candidate.Conversions[0].isBad()) {
5903 Candidate.Conversions[ArgIdx + 1]
5909 if (Candidate.Conversions[ArgIdx + 1].isBad()) {
5918 Candidate.Conversions[ArgIdx + 1].setEllipsis();
6051 // Allow qualification conversions.
6057 // If we're not allowed to consider Objective-C pointer conversions,
6132 Candidate.Conversions[0]
6137 if (Candidate.Conversions[0].isBad()) {
6144 // derived to base as such conversions are given Conversion Rank. They only
6316 Candidate.Conversions[0] = ObjectInit;
6323 Candidate.Conversions[0].setUserDefined();
6324 Candidate.Conversions[0].UserDefined.Before = ObjectInit.Standard;
6325 Candidate.Conversions[0].UserDefined.EllipsisConversion = false;
6326 Candidate.Conversions[0].UserDefined.HadMultipleCandidates = false;
6327 Candidate.Conversions[0].UserDefined.ConversionFunction = Conversion;
6328 Candidate.Conversions[0].UserDefined.FoundConversionFunction = FoundDecl;
6329 Candidate.Conversions[0].UserDefined.After
6330 = Candidate.Conversions[0].UserDefined.Before;
6331 Candidate.Conversions[0].UserDefined.After.setAsIdentityConversion();
6363 Candidate.Conversions[ArgIdx + 1]
6369 if (Candidate.Conversions[ArgIdx + 1].isBad()) {
6378 Candidate.Conversions[ArgIdx + 1].setEllipsis();
6474 // For the built-in assignment operators, conversions of the
6477 // -- no user-defined conversions are applied to the left
6481 // We block these conversions by turning off user-defined
6482 // conversions, since that is the only way that initialization of
6488 Candidate.Conversions[ArgIdx]
6491 Candidate.Conversions[ArgIdx]
6498 if (Candidate.Conversions[ArgIdx].isBad()) {
6728 // expression for the purposes of conversions.
6776 Conversions = ClassDecl->getVisibleConversionFunctions();
6778 I = Conversions.first, E = Conversions.second; I != E; ++I) {
6845 Conversions = ClassDecl->getVisibleConversionFunctions();
6848 I = Conversions.first, E = Conversions.second; I != E; ++I) {
6945 // Accelerator table for performing the usual arithmetic conversions.
7017 // add volatile version only if there are conversions to a volatile type.
7028 // Add restrict version only if there are conversions to a restrict type
7431 // where LR is the result of the usual arithmetic conversions
7441 // where LR is the result of the usual arithmetic conversions
7497 // where LR is the result of the usual arithmetic conversions
7857 // Add volatile/restrict version only if there are conversions to a
8219 Cand1.Conversions[ArgIdx],
8220 Cand2.Conversions[ArgIdx])) {
8527 const ImplicitConversionSequence &Conv = Cand->Conversions[I];
8660 // Diagnose base -> derived pointer conversions.
9108 if (Cand->Conversions[I].isBad())
9182 const ImplicitConversionSequence &ICS = Cand->Conversions[ArgIdx];
9283 // 2. Bad conversions come first and are ordered by the number
9284 // of bad conversions and quality of good conversions.
9302 // If there's any ordering between the defined conversions...
9310 L->Conversions[I],
9311 R->Conversions[I])) {
9375 if (Cand->Conversions[ConvIdx - 1].isBad()) {
9384 assert(!Cand->Conversions[ConvIdx].isInitialized() &&
9410 Cand->Conversions[ConvIdx]
9420 // Fill in the rest of the conversions.
9424 Cand->Conversions[ConvIdx] = TryCopyInitialization(
9430 if (!Unfixable && Cand->Conversions[ConvIdx].isBad())
9434 Cand->Conversions[ConvIdx].setEllipsis();
9494 // FIXME: It's quite possible for different conversions to see
10809 Best->Conversions[0], AA_Passing);
10915 // Always do placeholder-like conversions on the RHS.
11044 Best->Conversions[0], AA_Passing);
11051 Best->Conversions[1], AA_Passing);
11251 Best->Conversions[0], AA_Passing);
11258 Best->Conversions[1], AA_Passing);
11619 CXXRecordDecl::conversion_iterator> Conversions
11622 I = Conversions.first, E = Conversions.second; I != E; ++I) {
11700 Best->Conversions[0].UserDefined.ConversionFunction);