reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/Sema/SemaCast.cpp
  106         castExpr = ImplicitCastExpr::Create(Self.Context,
  107                                             Self.Context.ARCUnbridgedCastTy,
  138       Self.CheckCastAlign(SrcExpr.get(), DestType, OpRange);
  142       assert(Self.getLangOpts().allowsNonTrivialObjCLifetimeQualifiers());
  145       if (Self.CheckObjCConversion(OpRange, DestType, src, CCK) ==
  156       SrcExpr = Self.CheckPlaceholderExpr(SrcExpr.get());
  712     SrcExpr = Self.DefaultFunctionArrayLvalueConversion(SrcExpr.get());
  714     SrcExpr = Self.CheckPlaceholderExpr(SrcExpr.get());
  719   QualType DestType = Self.Context.getCanonicalType(this->DestType);
  732     Self.Diag(OpRange.getBegin(), diag::err_bad_dynamic_cast_not_ref_or_ptr)
  742     if (Self.RequireCompleteType(OpRange.getBegin(), DestPointee,
  749     Self.Diag(OpRange.getBegin(), diag::err_bad_dynamic_cast_not_class)
  759   QualType SrcType = Self.Context.getCanonicalType(OrigSrcType);
  765       Self.Diag(OpRange.getBegin(), diag::err_bad_dynamic_cast_not_ptr)
  772       Self.Diag(OpRange.getBegin(), diag::err_bad_cxx_cast_rvalue)
  780       SrcExpr = Self.CreateMaterializeTemporaryExpr(
  787     if (Self.RequireCompleteType(OpRange.getBegin(), SrcPointee,
  794     Self.Diag(OpRange.getBegin(), diag::err_bad_dynamic_cast_not_class)
  808     Self.Diag(OpRange.getBegin(), diag::err_bad_cxx_cast_qualifiers_away)
  824       Self.IsDerivedFrom(OpRange.getBegin(), SrcPointee, DestPointee)) {
  825     if (Self.CheckDerivedToBaseConversion(SrcPointee, DestPointee,
  840     Self.Diag(OpRange.getBegin(), diag::err_bad_dynamic_cast_not_polymorphic)
  848   if (!Self.getLangOpts().RTTI && !DestPointee->isVoidType()) {
  849     Self.Diag(OpRange.getBegin(), diag::err_no_dynamic_cast_with_fno_rtti);
  865     SrcExpr = Self.DefaultFunctionArrayLvalueConversion(SrcExpr.get());
  867     SrcExpr = Self.CheckPlaceholderExpr(SrcExpr.get());
  872   auto TCR = TryConstCast(Self, SrcExpr, DestType, /*CStyle*/ false, msg);
  874     Self.Diag(OpRange.getBegin(), msg) << CT_Const
  981     SrcExpr = Self.DefaultFunctionArrayLvalueConversion(SrcExpr.get());
  989     TryReinterpretCast(Self, SrcExpr, DestType,
  994     if (SrcExpr.get()->getType() == Self.Context.OverloadTy) {
  996       Self.Diag(OpRange.getBegin(), diag::err_bad_reinterpret_cast_overload)
  999       Self.NoteAllOverloadCandidates(SrcExpr.get());
 1002       diagnoseBadCast(Self, msg, CT_Reinterpret, OpRange, SrcExpr.get(),
 1008     if (Self.getLangOpts().allowsNonTrivialObjCLifetimeQualifiers())
 1010     DiagnoseReinterpretUpDownCast(Self, SrcExpr.get(), DestType, OpRange);
 1034       Self.ResolveAndFixSingleFunctionTemplateSpecialization(SrcExpr,
 1042     SrcExpr = Self.IgnoredValueConversions(SrcExpr.get());
 1048     SrcExpr = Self.DefaultFunctionArrayLvalueConversion(SrcExpr.get());
 1055     = TryStaticCast(Self, SrcExpr, DestType, Sema::CCK_OtherCast, OpRange, msg,
 1060     if (SrcExpr.get()->getType() == Self.Context.OverloadTy) {
 1062       Self.Diag(OpRange.getBegin(), diag::err_bad_static_cast_overload)
 1065       Self.NoteAllOverloadCandidates(SrcExpr.get());
 1067       diagnoseBadCast(Self, msg, CT_Static, OpRange, SrcExpr.get(), DestType,
 1075     if (Self.getLangOpts().allowsNonTrivialObjCLifetimeQualifiers())
 2368   if (Self.getLangOpts().OpenCL) {
 2372     DestPtr = Self.getASTContext().getCanonicalType(DestType.getTypePtr()),
 2373     SrcPtr  = Self.getASTContext().getCanonicalType(SrcType.getTypePtr());
 2383         Self.Diag(OpRange.getBegin(), DiagID)
 2401   assert(Self.getLangOpts().CPlusPlus);
 2407       SrcExpr = Self.checkUnknownAnyCast(DestRange, DestType,
 2425       Self.ResolveAndFixSingleFunctionTemplateSpecialization(
 2433     SrcExpr = Self.IgnoredValueConversions(SrcExpr.get());
 2446     SrcExpr = Self.DefaultFunctionArrayLvalueConversion(SrcExpr.get());
 2457       SrcExpr = Self.prepareVectorSplat(DestType, SrcExpr.get());
 2474   TryCastResult tcr = TryConstCast(Self, SrcExpr, DestType,
 2484     tcr = TryAddressSpaceCast(Self, SrcExpr, DestType, /*CStyle*/ true, msg);
 2493       tcr = TryStaticCast(Self, SrcExpr, DestType, CCK, OpRange, msg, Kind,
 2500         tcr = TryReinterpretCast(Self, SrcExpr, DestType, /*CStyle*/ true,
 2508   if (Self.getLangOpts().allowsNonTrivialObjCLifetimeQualifiers() &&
 2513     if (SrcExpr.get()->getType() == Self.Context.OverloadTy) {
 2515       FunctionDecl *Fn = Self.ResolveAddressOfOverloadedFunction(SrcExpr.get(),
 2524         Self.Diag(OpRange.getBegin(), diag::err_bad_cstyle_cast_overload)
 2527         Self.NoteAllOverloadCandidates(SrcExpr.get());
 2530       diagnoseBadCast(Self, msg, (FunctionalStyle ? CT_Functional : CT_CStyle),
 2581   assert(!Self.getLangOpts().CPlusPlus);
 2585     SrcExpr = Self.checkUnknownAnyCast(DestRange, DestType,
 2595     SrcExpr = Self.IgnoredValueConversions(SrcExpr.get());
 2605   if (SrcExpr.get()->getType() == Self.Context.OverloadTy) {
 2607     if (FunctionDecl *FD = Self.ResolveAddressOfOverloadedFunction(
 2609       SrcExpr = Self.FixOverloadedFunctionReference(SrcExpr.get(), DAP, FD);
 2614   SrcExpr = Self.DefaultFunctionArrayLvalueConversion(SrcExpr.get());
 2625   if (Self.RequireCompleteType(OpRange.getBegin(), DestType,
 2634     if (DestRecordTy && Self.Context.hasSameUnqualifiedType(DestType, SrcType)){
 2636       Self.Diag(OpRange.getBegin(), diag::ext_typecheck_cast_nonscalar)
 2646         Self.Diag(OpRange.getBegin(), diag::ext_typecheck_cast_to_union)
 2651         Self.Diag(OpRange.getBegin(), diag::err_typecheck_cast_to_union_no_type)
 2659     if (Self.getLangOpts().OpenCL && DestType->isEventT()) {
 2661       if (SrcExpr.get()->EvaluateAsInt(Result, Self.Context)) {
 2667         Self.Diag(OpRange.getBegin(),
 2676     Self.Diag(OpRange.getBegin(), diag::err_typecheck_cond_expect_scalar)
 2686     Self.Diag(SrcExpr.get()->getExprLoc(),
 2694     SrcExpr = Self.CheckExtVectorCast(OpRange, DestType, SrcExpr.get(), Kind);
 2702       SrcExpr = Self.prepareVectorSplat(DestType, SrcExpr.get());
 2703     } else if (Self.CheckVectorCast(OpRange, DestType, SrcType, Kind)) {
 2710     if (Self.CheckVectorCast(OpRange, SrcType, DestType, Kind))
 2721     Self.Diag(SrcExpr.get()->getExprLoc(), diag::err_cast_selector_expr);
 2729     if (!SrcType->isIntegralType(Self.Context) && SrcType->isArithmeticType()) {
 2730       Self.Diag(SrcExpr.get()->getExprLoc(),
 2737                           DestType, Self);
 2739     if (!DestType->isIntegralType(Self.Context) &&
 2741       Self.Diag(SrcExpr.get()->getBeginLoc(),
 2749   if (Self.getLangOpts().OpenCL &&
 2750       !Self.getOpenCLOptions().isEnabled("cl_khr_fp16")) {
 2752       Self.Diag(SrcExpr.get()->getBeginLoc(), diag::err_opencl_cast_to_half)
 2760   if (Self.getLangOpts().allowsNonTrivialObjCLifetimeQualifiers()) {
 2766     if (Self.getLangOpts().ObjCAutoRefCount && CastPtr) {
 2773           Self.Diag(SrcExpr.get()->getBeginLoc(),
 2781     else if (!Self.CheckObjCARCUnavailableWeakConversion(DestType, SrcType)) {
 2782       Self.Diag(SrcExpr.get()->getBeginLoc(),
 2790   DiagnoseCastOfObjCSEL(Self, SrcExpr, DestType);
 2791   DiagnoseCallingConvCast(Self, SrcExpr, DestType, OpRange);
 2792   DiagnoseBadFunctionCast(Self, SrcExpr, DestType);
 2793   Kind = Self.PrepareScalarCast(SrcExpr, DestType);
 2804   if (Self.RequireCompleteType(OpRange.getBegin(), DestType,
 2806       Self.RequireCompleteType(OpRange.getBegin(), SrcType,
 2813     SrcExpr = Self.CreateMaterializeTemporaryExpr(SrcType, SrcExpr.get(),
 2816   CharUnits DestSize = Self.Context.getTypeSizeInChars(DestType);
 2817   CharUnits SourceSize = Self.Context.getTypeSizeInChars(SrcType);
 2819     Self.Diag(OpRange.getBegin(), diag::err_bit_cast_type_size_mismatch)
 2825   if (!DestType.isTriviallyCopyableType(Self.Context)) {
 2826     Self.Diag(OpRange.getBegin(), diag::err_bit_cast_non_trivially_copyable)
 2832   if (!SrcType.isTriviallyCopyableType(Self.Context)) {
 2833     Self.Diag(OpRange.getBegin(), diag::err_bit_cast_non_trivially_copyable)
 2899   DiagnoseCastQual(Op.Self, Op.SrcExpr, Op.DestType);