reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
11546 if (E->isTypeDependent() || E->isValueDependent()) return; 11546 if (E->isTypeDependent() || E->isValueDependent()) return; 11548 const Type *Source = S.Context.getCanonicalType(E->getType()).getTypePtr(); 11562 S.Diag(E->getExprLoc(), diag::warn_atomic_implicit_seq_cst); 11566 if (isa<StringLiteral>(E)) 11570 return DiagnoseImpCast(S, E, T, CC, 11572 if (isa<ObjCStringLiteral>(E) || isa<ObjCArrayLiteral>(E) || 11572 if (isa<ObjCStringLiteral>(E) || isa<ObjCArrayLiteral>(E) || 11573 isa<ObjCDictionaryLiteral>(E) || isa<ObjCBoxedExpr>(E)) { 11573 isa<ObjCDictionaryLiteral>(E) || isa<ObjCBoxedExpr>(E)) { 11576 return DiagnoseImpCast(S, E, T, CC, 11581 S.DiagnoseAlwaysNonNullPointer(E, Expr::NPCK_NotNull, /*IsEqual*/ false, 11591 if (E->EvaluateAsInt(Result, S.getASTContext(), 11595 S, E, 11605 if (auto *ArrayLiteral = dyn_cast<ObjCArrayLiteral>(E)) 11607 else if (auto *DictionaryLiteral = dyn_cast<ObjCDictionaryLiteral>(E)) 11615 return DiagnoseImpCast(S, E, T, CC, diag::warn_impcast_vector_scalar); 11635 return DiagnoseImpCast(S, E, T, CC, 11660 if (E->EvaluateAsRValue(result, S.Context)) { 11671 DiagnoseImpCast(S, E, T, CC, diag::warn_impcast_float_precision); 11678 DiagnoseImpCast(S, E, T, CC, diag::warn_impcast_double_promotion); 11688 DiagnoseFloatingImpCast(S, E, T, CC); 11699 if (Target->isBooleanType() && isa<CallExpr>(E)) { 11703 CallExpr *CEx = cast<CallExpr>(E); 11710 DiagnoseImpCast(S, E, T, CC, 11722 if (E->EvaluateAsFixedPoint(Result, S.Context, Expr::SE_AllowSideEffects, 11728 S.DiagRuntimeBehavior(E->getExprLoc(), E, 11728 S.DiagRuntimeBehavior(E->getExprLoc(), E, 11731 << E->getSourceRange() 11739 E->EvaluateAsFixedPoint(Result, S.Context, 11749 S.DiagRuntimeBehavior(E->getExprLoc(), E, 11749 S.DiagRuntimeBehavior(E->getExprLoc(), E, 11752 << E->getSourceRange() 11762 E->EvaluateAsInt(Result, S.Context, Expr::SE_AllowSideEffects)) { 11770 S.DiagRuntimeBehavior(E->getExprLoc(), E, 11770 S.DiagRuntimeBehavior(E->getExprLoc(), E, 11773 << E->getSourceRange() 11787 IntRange SourceRange = GetExprRange(S.Context, E, S.isConstantEvaluated()); 11799 if (E->isIntegerConstantExpr(SourceInt, S.Context)) { 11816 E->getExprLoc(), E, 11816 E->getExprLoc(), E, 11818 << PrettySourceValue << PrettyTargetValue << E->getType() << T 11819 << E->getSourceRange() << clang::SourceRange(CC)); 11823 DiagnoseImpCast(S, E, T, CC, 11829 DiagnoseNullConversion(S, E, T, CC); 11831 S.DiscardMisalignedMemberAddress(Target, E); 11834 DiagnoseIntInBoolContext(S, E); 11845 !E->isKnownToHaveBooleanValue()) { 11847 S, E, 11849 << E->getType()); 11852 IntRange SourceRange = GetExprRange(S.Context, E, S.isConstantEvaluated()); 11859 if (E->EvaluateAsInt(Result, S.Context, Expr::SE_AllowSideEffects, 11871 E->getExprLoc(), E, 11871 E->getExprLoc(), E, 11873 << PrettySourceValue << PrettyTargetValue << E->getType() << T 11874 << E->getSourceRange() << clang::SourceRange(CC)); 11882 if (TargetRange.Width == 32 && S.Context.getIntWidth(E->getType()) == 64) 11883 return DiagnoseImpCast(S, E, T, CC, diag::warn_impcast_integer_64_32, 11885 return DiagnoseImpCast(S, E, T, CC, diag::warn_impcast_integer_precision); 11889 if (auto *UO = dyn_cast<UnaryOperator>(E)) 11893 return DiagnoseImpCast(S, E, T, CC, 11896 return DiagnoseImpCast(S, E, T, CC, 11908 if (E->EvaluateAsInt(Result, S.Context, Expr::SE_AllowSideEffects) && 11911 if (isSameWidthConstantConversion(S, E, T, CC)) { 11916 E->getExprLoc(), E, 11916 E->getExprLoc(), E, 11918 << PrettySourceValue << PrettyTargetValue << E->getType() << T 11919 << E->getSourceRange() << clang::SourceRange(CC)); 11945 return DiagnoseImpCast(S, E, T, CC, DiagID); 11951 QualType SourceType = E->getType(); 11953 if (DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(E)) 11969 return DiagnoseImpCast(S, E, SourceType, T, CC,