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
310 // Boolean conversions can be from pointers and pointers to members
311 // [conv.bool], and those aren't considered narrowing conversions.
402 // Such conversions on variables are always narrowing.
436 // Other kinds of conversions are not narrowings.
476 OS << "No conversions required";
528 new (&conversions()) ConversionSet();
532 conversions().~ConversionSet();
539 new (&conversions()) ConversionSet(O.conversions());
807 i->Conversions[ii].~ImplicitConversionSequence();
1194 OverloadCandidateSet Conversions(From->getExprLoc(),
1197 Conversions, AllowExplicit,
1238 for (OverloadCandidateSet::iterator Cand = Conversions.begin();
1239 Cand != Conversions.end(); ++Cand)
1272 /// If @p SuppressUserConversions, then user-defined conversions are
1274 /// If @p AllowExplicit, then explicit user-defined conversions are
1353 /// explicit user-defined conversions are permitted.
1445 // Identical types require no conversions.
1449 // There are no conversions between extended vector types, only identity.
1451 // There are no conversions between extended vector types other than the
1465 // 2)lax vector conversions are permitted and the vector types are of the
1486 /// only consider non-class types; for conversions that involve class
1498 // Standard conversions (C++ [conv])
1504 // There are no standard conversions for class types in C++, so
1623 // We don't require any conversions for the first step.
1658 // Boolean conversions (C++ 4.12).
1663 // Integral conversions (C++ 4.7).
1667 // Complex conversions (C99 6.3.1.6)
1672 // Complex-real conversions (C99 6.3.1.7)
1676 // FIXME: disable conversions between long double and __float128 if
1690 // Floating point conversions (C++ 4.8).
1697 // Floating-integral conversions (C++ 4.9).
1707 // Pointer conversions (C++ 4.10).
1713 // Pointer to member conversions (4.11).
1720 // Compatible conversions (Clang extension for C function overloading)
1795 // and we don't know what conversions it may overlap with.
2041 /// Conversions to 'id' subsume cv-qualifier conversions.
2096 /// This routine also supports conversions to and from block pointers
2097 /// and conversions with Objective-C's 'id', 'id<protocols...>', and
2101 /// GCC seems to consider all of these conversions to be pointer
2102 /// conversions, so for now they live here. IncompatibleObjC will be
2266 // First, we handle all conversions on ObjC object pointer types.
2364 // pointer conversions. If so, we permit the conversion (but
2512 // pointer conversions. If so, we permit the conversion.
2718 /// conversions for which IsPointerConversion has already returned
2779 // Objective-C++ conversions are always okay.
2780 // FIXME: We should have a different class of conversions for the
2781 // Objective-C++ implicit conversions.
2845 /// virtual or inaccessible base-to-derived member pointer conversions
2962 // Check Objective-C lifetime conversions.
2971 // Qualification conversions cannot cast between different
3066 // suppress conversions.
3090 // Initializer lists don't have conversions as such.
3192 // suppress conversions.
3222 const auto &Conversions = FromRecordDecl->getVisibleConversionFunctions();
3223 for (auto I = Conversions.begin(), E = Conversions.end(); I != E; ++I) {
3270 // Initializer lists don't have conversions as such.
3273 if (Best->Conversions[0].isEllipsis())
3276 User.Before = Best->Conversions[0].Standard;
3296 User.Before = Best->Conversions[0].Standard;
3359 // If both conversion functions are implicitly-declared conversions from
3637 // their derived-to-base conversions.
3643 // Both conversion sequences are conversions to void
3682 // Compare based on qualification conversions (C++ 13.3.3.2p3,
3754 /// qualification conversions (C++ 13.3.3.2p3 bullet 3).
3795 // Prefer qualification conversions not involving a change in lifetime
3796 // to qualification conversions that do not change lifetime.
3865 /// various kinds of derived-to-base conversions (C++
3867 /// conversions between Objective-C interface types.
3895 // Compare based on pointer conversions.
3898 /*FIXME: Remove if Objective-C id conversions get their own rank*/
4164 assert(T2->isRecordType() && "Can only find conversions of record types.");
4169 const auto &Conversions = T2RecordDecl->getVisibleConversionFunctions();
4170 for (auto I = Conversions.begin(), E = Conversions.end(); I != E; ++I) {
4185 // explicit conversions, skip it.
4254 ICS.UserDefined.Before = Best->Conversions[0].Standard;
4360 // derived-to-base conversions is suppressed when we're
4485 // related, and we aren't allowed any user conversions, the
4899 // are not allowed to create temporaries or perform user-defined conversions
5069 // conversions are fine.
5074 case ICK_Integral_Conversion: // Narrowing conversions are checked elsewhere.
5090 // C++1z: null pointer conversions and null member pointer conversions are
5143 // sequence contains only [... list of conversions ...].
5172 // Check that we would only use permitted conversions.
5266 /// involves any pointer conversions, remove them. This may change
5292 // Strip off any final conversions to 'id'.
5497 // We can only perform contextual implicit conversions on objects of class
5527 const auto &Conversions =
5531 (std::distance(ConversionsConversions.end()) > 1);
5537 // Collect explicit or viable (potentially in C++1y) conversions.
5538 for (auto I = Conversions.begin(), E = Conversions.end(); I != E; ++I) {
5601 // potentially viable conversions.
5701 /// conversions via constructors or conversion operators.
5835 Candidate.Conversions[ArgIdx]
5842 if (Candidate.Conversions[ArgIdx].isBad()) {
5851 Candidate.Conversions[ArgIdx].setEllipsis();
6114 /// allow user-defined conversions via constructors or conversion
6184 Candidate.Conversions[0] = TryObjectArgumentInitialization(
6187 if (Candidate.Conversions[0].isBad()) {
6212 Candidate.Conversions[ArgIdx + 1]
6218 if (Candidate.Conversions[ArgIdx + 1].isBad()) {
6227 Candidate.Conversions[ArgIdx + 1].setEllipsis();
6362 // Allow qualification conversions.
6368 // If we're not allowed to consider Objective-C pointer conversions,
6443 Candidate.Conversions[0] = TryObjectArgumentInitialization(
6447 if (Candidate.Conversions[0].isBad()) {
6454 // derived to base as such conversions are given Conversion Rank. They only
6626 Candidate.Conversions[0] = ObjectInit;
6633 Candidate.Conversions[0].setUserDefined();
6634 Candidate.Conversions[0].UserDefined.Before = ObjectInit.Standard;
6635 Candidate.Conversions[0].UserDefined.EllipsisConversion = false;
6636 Candidate.Conversions[0].UserDefined.HadMultipleCandidates = false;
6637 Candidate.Conversions[0].UserDefined.ConversionFunction = Conversion;
6638 Candidate.Conversions[0].UserDefined.FoundConversionFunction = FoundDecl;
6639 Candidate.Conversions[0].UserDefined.After
6640 = Candidate.Conversions[0].UserDefined.Before;
6641 Candidate.Conversions[0].UserDefined.After.setAsIdentityConversion();
6673 Candidate.Conversions[ArgIdx + 1]
6679 if (Candidate.Conversions[ArgIdx + 1].isBad()) {
6688 Candidate.Conversions[ArgIdx + 1].setEllipsis();
6785 // For the built-in assignment operators, conversions of the
6788 // -- no user-defined conversions are applied to the left
6792 // We block these conversions by turning off user-defined
6793 // conversions, since that is the only way that initialization of
6799 Candidate.Conversions[ArgIdx]
6802 Candidate.Conversions[ArgIdx]
6809 if (Candidate.Conversions[ArgIdx].isBad()) {
7040 // expression for the purposes of conversions.
7247 // Accelerator table for performing the usual arithmetic conversions.
7319 // add volatile version only if there are conversions to a volatile type.
7330 // Add restrict version only if there are conversions to a restrict type
7733 // where LR is the result of the usual arithmetic conversions
7743 // where LR is the result of the usual arithmetic conversions
7799 // where LR is the result of the usual arithmetic conversions
8159 // Add volatile/restrict version only if there are conversions to a
8574 Cand1.Conversions[ArgIdx],
8575 Cand2.Conversions[ArgIdx])) {
9059 const ImplicitConversionSequence &Conv = Cand->Conversions[I];
9207 // Diagnose base -> derived pointer conversions.
9734 if (Cand->Conversions[I].isBad())
9813 const ImplicitConversionSequence &ICS = Cand->Conversions[ArgIdx];
9917 // 2. Bad conversions come first and are ordered by the number
9918 // of bad conversions and quality of good conversions.
9933 // If there's any ordering between the defined conversions...
9941 L->Conversions[I],
9942 R->Conversions[I])) {
10007 if (Cand->Conversions[ConvIdx - 1].isBad()) {
10016 assert(!Cand->Conversions[ConvIdx].isInitialized() &&
10042 Cand->Conversions[ConvIdx]
10052 // Fill in the rest of the conversions.
10056 Cand->Conversions[ConvIdx] = TryCopyInitialization(
10062 if (!Unfixable && Cand->Conversions[ConvIdx].isBad())
10066 Cand->Conversions[ConvIdx].setEllipsis();
10125 // FIXME: It's quite possible for different conversions to see
11621 Best->Conversions[0], AA_Passing);
11725 // Always do placeholder-like conversions on the RHS.
11862 Best->Conversions[0], AA_Passing);
11869 Best->Conversions[1], AA_Passing);
12069 Best->Conversions[0], AA_Passing);
12076 Best->Conversions[1], AA_Passing);
12484 const auto &Conversions =
12486 for (auto I = Conversions.begin(), E = Conversions.end(); I != E; ++I) {
12564 Best->Conversions[0].UserDefined.ConversionFunction);