Home | History | Annotate | Download | only in Sema

Lines Matching refs:Conversion

1250   //   - every constructor call and implicit conversion used in initializing the
1738 /// conversion (where Derived and Base are class types) is
1739 /// well-formed, meaning that the conversion is unambiguous (and
1759 // the Derived to Base conversion exists, because here we need to
1765 "Can only be used with a derived-to-base conversion");
1789 // We know that the derived-to-base conversion is ambiguous, and
1798 assert(StillOkay && "Can only be used with a derived-to-base conversion");
3519 "Conversion of invented variable cannot fail!");
7081 /// well-formednes of the conversion function declarator @p D with
7085 /// well-formed type for the conversion operator.
7090 // type of a conversion function (8.3.5) is "function taking no
7091 // parameter returning conversion-type-id."
7106 // Conversion functions don't have return types, but the parser will
7211 // The conversion-type-id shall not represent a function type nor
7224 // of the errors above fired) and with the conversion type as the
7229 // C++0x explicit conversion operators.
7239 /// the declaration of the given C++ conversion function. This routine
7240 /// is responsible for recording the conversion function in the C++
7242 Decl *Sema::ActOnConversionDeclarator(CXXConversionDecl *Conversion) {
7243 assert(Conversion && "Expected to receive a conversion function declaration");
7245 CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(Conversion->getDeclContext());
7247 // Make sure we aren't redeclaring the conversion function.
7248 QualType ConvType = Context.getCanonicalType(Conversion->getConversionType());
7251 // [...] A conversion function is never used to convert a
7256 // FIXME: Suppress this warning if the conversion function ends up being a
7262 if (Conversion->getTemplateSpecializationKind() != TSK_Undeclared &&
7263 Conversion->getTemplateSpecializationKind() != TSK_ExplicitSpecialization)
7268 Diag(Conversion->getLocation(), diag::warn_conv_to_self_not_used)
7270 else if (IsDerivedFrom(Conversion->getLocation(), ClassType, ConvType))
7271 Diag(Conversion->getLocation(), diag::warn_conv_to_base_not_used)
7274 Diag(Conversion->getLocation(), diag::warn_conv_to_void_not_used)
7279 = Conversion->getDescribedFunctionTemplate())
7282 return Conversion;
11285 // If we are defining a specialization of a conversion to function-ptr
11302 "Conversion operator must have a corresponding call operator");
11307 // For both the conversion and static-invoker template specializations
11320 "Must have deduced template arguments from Conversion Operator");
11331 // Construct the body of the conversion function { return __invoke; }.
11377 // behavior. Note that only the general conversion function does this
11391 // Create the return statement that returns the block from the conversion
11400 // Set the body of the conversion function.
13230 // Check if we the conversion from derived to base is valid.