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

Derived Classes

tools/clang/include/clang/AST/Expr.h
 3249 class ImplicitCastExpr final
 3312 class ExplicitCastExpr : public CastExpr {

Declarations

gen/tools/clang/include/clang/AST/StmtNodes.inc
  821 ABSTRACT_STMT(CASTEXPR(CastExpr, Expr))
tools/clang/include/clang/AST/Expr.h
   46   class CastExpr;
tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h
   46 class CastExpr;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
   35 class CastExpr;
tools/clang/lib/CodeGen/CGCXXABI.h
   28 class CastExpr;

References

include/llvm/ADT/STLExtras.h
   75       typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/Support/Casting.h
   57   static inline bool doit(const From &Val) {
   58     return To::classof(&Val);
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
tools/clang/include/clang/AST/ASTTypeTraits.h
   65     return ASTNodeKind(KindToKindId<T>::Id);
  234   static DynTypedNode create(const T &Node) {
  235     return BaseConverter<T>::create(Node);
  251   const T *get() const {
  252     return BaseConverter<T>::get(NodeKind, Storage.buffer);
  259   const T &getUnchecked() const {
  260     return BaseConverter<T>::getUnchecked(NodeKind, Storage.buffer);
  394     static const T *get(ASTNodeKind NodeKind, const char Storage[]) {
  395       if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
  399     static const T &getUnchecked(ASTNodeKind NodeKind, const char Storage[]) {
  401       return *cast<T>(static_cast<const BaseT *>(
  474     : public DynCastPtrConverter<T, Stmt> {};
tools/clang/include/clang/AST/Expr.h
   71     const CastExpr *BasePath;
   86   SubobjectAdjustment(const CastExpr *BasePath,
 3250     : public CastExpr,
 3312 class ExplicitCastExpr : public CastExpr {
tools/clang/include/clang/AST/JSONNodeDumper.h
  162   llvm::json::Array createCastPath(const CastExpr *C);
  267   void VisitCastExpr(const CastExpr *CE);
tools/clang/include/clang/AST/TextNodeDumper.h
  233   void VisitCastExpr(const CastExpr *Node);
tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  110   const T *getNodeAs(StringRef ID) const {
  111     return MyBoundNodes.getNodeAs<T>(ID);
 2360 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CastExpr> castExpr;
 4624       internal::GetSourceExpressionMatcher<NodeType>::get(Node);
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  160   const T *getNodeAs(StringRef ID) const {
  165     return It->second.get<T>();
  302   virtual bool matches(const T &Node,
  309     return matches(DynNode.getUnchecked<T>(), Finder, Builder);
  345   DynTypedMatcher(MatcherInterface<T> *Implementation)
  346       : SupportedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()),
  436     return canConvertTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  445   template <typename T> Matcher<T> convertTo() const {
  447     return unconditionalConvertTo<T>();
  479 class WrapperMatcherInterface : public MatcherInterface<T> {
  499   explicit Matcher(MatcherInterface<T> *Implementation)
  506   Matcher(const Matcher<From> &Other,
  507           typename std::enable_if<std::is_base_of<From, T>::value &&
  507           typename std::enable_if<std::is_base_of<From, T>::value &&
  508                                !std::is_same<From, T>::value>::type * = nullptr)
  508                                !std::is_same<From, T>::value>::type * = nullptr)
  520             std::is_same<T, QualType>::value &&
  529     static_assert(std::is_base_of<To, T>::value, "Invalid dynCast call.");
  534   bool matches(const T &Node,
  581     return Other.dynCastTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  994   bool matchesChildOf(const T &Node, const DynTypedMatcher &Matcher,
  997     static_assert(std::is_base_of<Decl, T>::value ||
  998                   std::is_base_of<Stmt, T>::value ||
  999                   std::is_base_of<NestedNameSpecifier, T>::value ||
 1000                   std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1001                   std::is_base_of<TypeLoc, T>::value ||
 1002                   std::is_base_of<QualType, T>::value,
 1026   bool matchesAncestorOf(const T &Node,
 1030     static_assert(std::is_base_of<Decl, T>::value ||
 1031                       std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1032                       std::is_base_of<Stmt, T>::value ||
 1033                       std::is_base_of<TypeLoc, T>::value,
 1067   using head = T1;
 1084       std::is_base_of<typename AnyTypeList::head, T>::value ||
 1085       TypeListContainsSuperOf<typename AnyTypeList::tail, T>::value;
 1146     template <typename To> operator Matcher<To>() const {
 1202   operator Matcher<T>() const {
 1203     static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
 1243   operator Matcher<T>() const {
 1245                ast_type_traits::ASTNodeKind::getFromNodeKind<T>())
 1246         .template unconditionalConvertTo<T>();
 1255 class BindableMatcher : public Matcher<T> {
 1257   explicit BindableMatcher(const Matcher<T> &M) : Matcher<T>(M) {}
 1258   explicit BindableMatcher(MatcherInterface<T> *Implementation)
 1265   Matcher<T> bind(StringRef ID) const {
 1285 class HasMatcher : public WrapperMatcherInterface<T> {
 1290   bool matches(const T &Node, ASTMatchFinder *Finder,
 1335   template <typename T> operator Matcher<T>() const {
 1337                Op, ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1338                getMatchers<T>(std::index_sequence_for<Ps...>()))
 1339         .template unconditionalConvertTo<T>();
 1370 inline Matcher<T> DynTypedMatcher::unconditionalConvertTo() const {
 1376 BindableMatcher<T> makeAllOfComposite(
 1377     ArrayRef<const Matcher<T> *> InnerMatchers) {
 1388   using PI = llvm::pointee_iterator<const Matcher<T> *const *>;
 1395           ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1397           .template unconditionalConvertTo<T>());
 1408     ArrayRef<const Matcher<InnerT> *> InnerMatchers) {
 1438 class HasParentMatcher : public WrapperMatcherInterface<T> {
 1446   bool matches(const T &Node, ASTMatchFinder *Finder,
 1458 class HasAncestorMatcher : public WrapperMatcherInterface<T> {
 1466   bool matches(const T &Node, ASTMatchFinder *Finder,
 1557     : public VariadicFunction<BindableMatcher<SourceT>, Matcher<TargetT>,
 1558                               makeDynCastAllOfComposite<SourceT, TargetT>> {
 1792   static const Expr *get(const Ty &Node) {
tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h
  199   ast_matchers::internal::Matcher<T> getTypedMatcher() const {
  202         ->template convertTo<T>();
  227       : MatcherOps(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()) {}
  228   typedef ast_matchers::internal::Matcher<T> MatcherT;
  232     return DynTypedMatcher(Matcher.convertTo<T>());
tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h
  417   til::SExpr *translateCastExpr(const CastExpr *CE, CallingContext *Ctx);
tools/clang/include/clang/StaticAnalyzer/Core/Checker.h
   85     ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C);
   89     return isa<STMT>(S);
  104     ((const CHECKER *)checker)->checkPostStmt(cast<STMT>(S), C);
  108     return isa<STMT>(S);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h
  250       llvm::iterator_range<CastExpr::path_const_iterator> PathRange,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
  446   void VisitCast(const CastExpr *CastE, const Expr *Ex, ExplodedNode *Pred,
  569                                       QualType ExTy, const CastExpr *CastE,
  575                                      const CastExpr *CastE,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
  165   SVal evalDerivedToBase(SVal Derived, const CastExpr *Cast);
tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
  255                       isa<CastExpr>(OuterS) ||
tools/clang/lib/ARCMigrate/TransUnbridgedCasts.cpp
   87   bool VisitCastExpr(CastExpr *E) {
  121   void transformNonObjCToObjCCast(CastExpr *E) {
  195   void castToObjCObject(CastExpr *E, bool retained) {
  199   void rewriteToBridgedCast(CastExpr *E, ObjCBridgeCastKind Kind) {
  204   void rewriteToBridgedCast(CastExpr *E, ObjCBridgeCastKind Kind,
  274   void rewriteCastForCFRetain(CastExpr *castE, CallExpr *callE) {
  280   void getBlockMacroRanges(CastExpr *E, SourceRange &Outer, SourceRange &Inner) {
  293   void rewriteBlockCopyMacro(CastExpr *E) {
  306   void removeBlockReleaseMacro(CastExpr *E) {
  335   void transformObjCToNonObjCCast(CastExpr *E) {
tools/clang/lib/AST/Expr.cpp
   83     if (const CastExpr *CE = dyn_cast<CastExpr>(E)) {
   83     if (const CastExpr *CE = dyn_cast<CastExpr>(E)) {
 1906   const CastExpr *E = this;
 1933   for (const CastExpr *E = this; E; E = dyn_cast<ImplicitCastExpr>(SubExpr)) {
 2668     const CastExpr *CE = cast<CastExpr>(this);
 2668     const CastExpr *CE = cast<CastExpr>(this);
 2702     const CastExpr *ICE = cast<ImplicitCastExpr>(this);
 2834   if (auto *CE = dyn_cast<CastExpr>(E))
 2834   if (auto *CE = dyn_cast<CastExpr>(E))
 2852   if (auto *CE = dyn_cast<CastExpr>(E))
 2852   if (auto *CE = dyn_cast<CastExpr>(E))
 2860   if (auto *CE = dyn_cast<CastExpr>(E))
 2860   if (auto *CE = dyn_cast<CastExpr>(E))
 2909   if (auto *CE = dyn_cast<CastExpr>(E)) {
 2909   if (auto *CE = dyn_cast<CastExpr>(E)) {
 3271     const CastExpr *CE = cast<CastExpr>(this);
 3271     const CastExpr *CE = cast<CastExpr>(this);
 3545     const CastExpr *CE = cast<CastExpr>(this);
 3545     const CastExpr *CE = cast<CastExpr>(this);
tools/clang/lib/AST/ExprConstant.cpp
  167     if (const auto *Cast = dyn_cast<CastExpr>(E))
  167     if (const auto *Cast = dyn_cast<CastExpr>(E))
 2692 static bool HandleLValueBasePath(EvalInfo &Info, const CastExpr *E,
 2694   for (CastExpr::path_const_iterator PathI = E->path_begin(),
 4197 static bool HandleBaseToDerivedCast(EvalInfo &Info, const CastExpr *E,
 6178   const CastExpr *BCE;
 6181                            const CastExpr *BCE)
 6317                                          const CastExpr *BCE) {
 6330   const CastExpr *BCE;
 6333                            const CastExpr *BCE)
 6505                                    const CastExpr *BCE) {
 6565                                              const CastExpr *BCE) {
 6576                                         const CastExpr *BCE) {
 7054   bool VisitCastExpr(const CastExpr *E) {
 7263   bool VisitCastExpr(const CastExpr *E) {
 7345   bool VisitCastExpr(const CastExpr *E) {
 7829   bool VisitCastExpr(const CastExpr* E);
 7934 bool PointerExprEvaluator::VisitCastExpr(const CastExpr *E) {
 8684   bool VisitCastExpr(const CastExpr *E);
 8695 bool MemberPointerExprEvaluator::VisitCastExpr(const CastExpr *E) {
 8712     typedef std::reverse_iterator<CastExpr::path_const_iterator> ReverseIter;
 8729     for (CastExpr::path_const_iterator PathI = E->path_begin(),
 8772     bool VisitCastExpr(const CastExpr *E);
 8863 bool RecordExprEvaluator::VisitCastExpr(const CastExpr *E) {
 8882     for (CastExpr::path_const_iterator PathI = E->path_begin(),
 9184   bool VisitCastExpr(const CastExpr *E) {
 9245     bool VisitCastExpr(const CastExpr* E);
 9259 bool VectorExprEvaluator::VisitCastExpr(const CastExpr *E) {
 9738   bool VisitCastExpr(const CastExpr* E);
 9824   bool VisitCastExpr(const CastExpr *E);
10202   auto *Cast = dyn_cast<CastExpr>(NoParens);
12061 bool IntExprEvaluator::VisitCastExpr(const CastExpr *E) {
12298 bool FixedPointExprEvaluator::VisitCastExpr(const CastExpr *E) {
12394   bool VisitCastExpr(const CastExpr *E);
12571 bool FloatExprEvaluator::VisitCastExpr(const CastExpr *E) {
12627   bool VisitCastExpr(const CastExpr *E);
12681 bool ComplexExprEvaluator::VisitCastExpr(const CastExpr *E) {
13127   bool VisitCastExpr(const CastExpr *E) {
13160   bool VisitCastExpr(const CastExpr *E) {
14128     const Expr *SubExpr = cast<CastExpr>(E)->getSubExpr();
14146     switch (cast<CastExpr>(E)->getCastKind()) {
14209     if (!checkBitCastConstexprEligibility(nullptr, Ctx, cast<CastExpr>(E)))
14211     return CheckICE(cast<CastExpr>(E)->getSubExpr(), Ctx);
tools/clang/lib/AST/Interp/ByteCodeExprGen.cpp
   90 bool ByteCodeExprGen<Emitter>::VisitCastExpr(const CastExpr *CE) {
tools/clang/lib/AST/Interp/ByteCodeExprGen.h
   69   bool VisitCastExpr(const CastExpr *E);
tools/clang/lib/AST/JSONNodeDumper.cpp
  305 llvm::json::Array JSONNodeDumper::createCastPath(const CastExpr *C) {
 1209 void JSONNodeDumper::VisitCastExpr(const CastExpr *CE) {
tools/clang/lib/AST/ParentMap.cpp
  149   while (S && (isa<ParenExpr>(S) || isa<CastExpr>(S)));
  176   while (P && (isa<ParenExpr>(P) || isa<CastExpr>(P) ||
tools/clang/lib/AST/StmtProfile.cpp
 1163 void StmtProfiler::VisitCastExpr(const CastExpr *S) {
tools/clang/lib/AST/TextNodeDumper.cpp
  626 static void dumpBasePath(raw_ostream &OS, const CastExpr *Node) {
  632   for (CastExpr::path_const_iterator I = Node->path_begin(),
  699 void TextNodeDumper::VisitCastExpr(const CastExpr *Node) {
tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp
  759 const internal::VariadicDynCastAllOfMatcher<Stmt, CastExpr> castExpr;
tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h
   75     return Value.isMatcher() && Value.getMatcher().hasTypedMatcher<T>();
   78   static ast_matchers::internal::Matcher<T> get(const VariantValue &Value) {
   79     return Value.getMatcher().getTypedMatcher<T>();
   83     return ArgKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  361     RetTypes.push_back(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  466       ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT> Func,
  469         DerivedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<DerivedT>()) {
  778     ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT>
tools/clang/lib/Analysis/CFG.cpp
   80   if (const auto *CE = dyn_cast<CastExpr>(E)) {
   80   if (const auto *CE = dyn_cast<CastExpr>(E)) {
 4628       E = cast<CastExpr>(E)->getSubExpr();
 5455     } else if (const CastExpr *CE = dyn_cast<CastExpr>(S)) {
 5455     } else if (const CastExpr *CE = dyn_cast<CastExpr>(S)) {
tools/clang/lib/Analysis/Consumed.cpp
  502   void VisitCastExpr(const CastExpr *Cast);
  756 void ConsumedStmtVisitor::VisitCastExpr(const CastExpr *Cast) {
tools/clang/lib/Analysis/ProgramPoint.cpp
  192     if (const auto *CS = dyn_cast<CastExpr>(S))
  192     if (const auto *CS = dyn_cast<CastExpr>(S))
tools/clang/lib/Analysis/ThreadSafety.cpp
 1603   void VisitCastExpr(const CastExpr *CE);
 1761     if (const auto *CE = dyn_cast<CastExpr>(Exp)) {
 1761     if (const auto *CE = dyn_cast<CastExpr>(Exp)) {
 1996 void BuildLockset::VisitCastExpr(const CastExpr *CE) {
tools/clang/lib/Analysis/ThreadSafetyCommon.cpp
  267   if (const auto *CE = dyn_cast<CastExpr>(S))
  267   if (const auto *CE = dyn_cast<CastExpr>(S))
  562 til::SExpr *SExprBuilder::translateCastExpr(const CastExpr *CE,
tools/clang/lib/Analysis/UninitializedValues.cpp
  299     if (const auto *CE = dyn_cast<CastExpr>(Ex)) {
  299     if (const auto *CE = dyn_cast<CastExpr>(Ex)) {
  352   void VisitCastExpr(CastExpr *CE);
  495 void ClassifyRefs::VisitCastExpr(CastExpr *CE) {
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGCXXABI.cpp
   68                                                    const CastExpr *E,
   74 llvm::Constant *CGCXXABI::EmitMemberPointerConversion(const CastExpr *E,
  233 llvm::Constant *CGCXXABI::getMemberPointerAdjustment(const CastExpr *E) {
tools/clang/lib/CodeGen/CGCXXABI.h
  168                                                    const CastExpr *E,
  173   virtual llvm::Constant *EmitMemberPointerConversion(const CastExpr *E,
  218   llvm::Constant *getMemberPointerAdjustment(const CastExpr *E);
tools/clang/lib/CodeGen/CGCall.cpp
 3616       cast<CastExpr>(E)->getCastKind() == CK_LValueToRValue) {
 3617     LValue L = EmitLValue(cast<CastExpr>(E)->getSubExpr());
tools/clang/lib/CodeGen/CGClass.cpp
  150     const CXXRecordDecl *DerivedClass, CastExpr::path_const_iterator Start,
  151     CastExpr::path_const_iterator End) {
  157   for (CastExpr::path_const_iterator I = Start; I != End; ++I) {
  178                                    CastExpr::path_const_iterator PathBegin,
  179                                    CastExpr::path_const_iterator PathEnd) {
  270     CastExpr::path_const_iterator PathBegin,
  271     CastExpr::path_const_iterator PathEnd, bool NullCheckValue,
  275   CastExpr::path_const_iterator Start = PathBegin;
  378                                         CastExpr::path_const_iterator PathBegin,
  379                                           CastExpr::path_const_iterator PathEnd,
tools/clang/lib/CodeGen/CGDecl.cpp
  667   while (auto castExpr = dyn_cast<CastExpr>(init->IgnoreParens())) {
tools/clang/lib/CodeGen/CGExpr.cpp
  937   if (const auto *CE = dyn_cast<CastExpr>(Base)) {
  937   if (const auto *CE = dyn_cast<CastExpr>(Base)) {
 1045   if (const CastExpr *CE = dyn_cast<CastExpr>(E)) {
 1045   if (const CastExpr *CE = dyn_cast<CastExpr>(E)) {
 1191     if (const auto *CE = dyn_cast<CastExpr>(Base)) {
 1191     if (const auto *CE = dyn_cast<CastExpr>(Base)) {
 1369     return EmitCastLValue(cast<CastExpr>(E));
 3353   const auto *CE = dyn_cast<CastExpr>(E);
 3353   const auto *CE = dyn_cast<CastExpr>(E);
 4290 LValue CodeGenFunction::EmitCastLValue(const CastExpr *E) {
tools/clang/lib/CodeGen/CGExprAgg.cpp
  145   void VisitCastExpr(CastExpr *E);
  670     if (CastExpr *castE = dyn_cast<CastExpr>(op)) {
  670     if (CastExpr *castE = dyn_cast<CastExpr>(op)) {
  680 void AggExprEmitter::VisitCastExpr(CastExpr *E) {
 1116   } else if (const CastExpr *cast = dyn_cast<CastExpr>(E)) {
 1116   } else if (const CastExpr *cast = dyn_cast<CastExpr>(E)) {
 1375   if (const CastExpr *ICE = dyn_cast<CastExpr>(E))
 1375   if (const CastExpr *ICE = dyn_cast<CastExpr>(E))
tools/clang/lib/CodeGen/CGExprCXX.cpp
 2074   if (const auto *CE = dyn_cast<CastExpr>(E)) {
 2074   if (const auto *CE = dyn_cast<CastExpr>(E)) {
tools/clang/lib/CodeGen/CGExprComplex.cpp
  177   ComplexPairTy VisitCastExpr(CastExpr *E) {
tools/clang/lib/CodeGen/CGExprConstant.cpp
 1028   llvm::Constant *VisitCastExpr(CastExpr *E, QualType destType) {
tools/clang/lib/CodeGen/CGExprScalar.cpp
  574   Value *VisitCastExpr(CastExpr *E);
 1933 bool CodeGenFunction::ShouldNullCheckClassCastValue(const CastExpr *CE) {
 1956 Value *ScalarExprEmitter::VisitCastExpr(CastExpr *CE) {
tools/clang/lib/CodeGen/CGObjC.cpp
  346   if (auto CE = dyn_cast<CastExpr>(E)) {
 2860   if (const CastExpr *cast = dyn_cast<CastExpr>(e)) {
 2860   if (const CastExpr *cast = dyn_cast<CastExpr>(e)) {
 2896   Result visitCastExpr(const CastExpr *e);
 2981 Result ARCExprEmitter<Impl,Result>::visitCastExpr(const CastExpr *e) {
 3102   if (const CastExpr *ce = dyn_cast<CastExpr>(e)) {
 3102   if (const CastExpr *ce = dyn_cast<CastExpr>(e)) {
tools/clang/lib/CodeGen/CodeGenFunction.cpp
 2064   if (auto *CE = dyn_cast<CastExpr>(E))
tools/clang/lib/CodeGen/CodeGenFunction.h
 2468   static bool ShouldNullCheckClassCastValue(const CastExpr *Cast);
 2474                                 CastExpr::path_const_iterator PathBegin,
 2475                                 CastExpr::path_const_iterator PathEnd,
 2480                                    CastExpr::path_const_iterator PathBegin,
 2481                                    CastExpr::path_const_iterator PathEnd,
 3515   LValue EmitCastLValue(const CastExpr *E);
tools/clang/lib/CodeGen/CodeGenModule.h
  878                                    CastExpr::path_const_iterator Start,
  879                                    CastExpr::path_const_iterator End);
  885                                CastExpr::path_const_iterator PathBegin,
  886                                CastExpr::path_const_iterator PathEnd);
tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
  134                                            const CastExpr *E,
  136   llvm::Constant *EmitMemberPointerConversion(const CastExpr *E,
  832                                            const CastExpr *E,
  887 ItaniumCXXABI::EmitMemberPointerConversion(const CastExpr *E,
tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp
  656       CastKind CK, CastExpr::path_const_iterator PathBegin,
  657       CastExpr::path_const_iterator PathEnd, llvm::Value *Src,
  661                                            const CastExpr *E,
  664   llvm::Constant *EmitMemberPointerConversion(const CastExpr *E,
  669       CastKind CK, CastExpr::path_const_iterator PathBegin,
  670       CastExpr::path_const_iterator PathEnd, llvm::Constant *Src);
 3080                                              const CastExpr *E,
 3145     CastExpr::path_const_iterator PathBegin,
 3146     CastExpr::path_const_iterator PathEnd, llvm::Value *Src,
 3286 MicrosoftCXXABI::EmitMemberPointerConversion(const CastExpr *E,
 3300     CastExpr::path_const_iterator PathBegin,
 3301     CastExpr::path_const_iterator PathEnd, llvm::Constant *Src) {
tools/clang/lib/Edit/RewriteObjCFoundationAPI.cpp
  918       isa<CastExpr>(Expr) ||
tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
  368     void RewriteImplicitCastObjCExpr(CastExpr *IE);
 2589   CastExpr *cast = NoTypeInfoCStyleCastExpr(Context, Exp->getType(),
 2603   CastExpr *cast = NoTypeInfoCStyleCastExpr(Context, Context->ObjCBuiltinBoolTy,
 2674   CastExpr *cast = NoTypeInfoCStyleCastExpr(
 2795   CastExpr *cast = NoTypeInfoCStyleCastExpr(
 2946   CastExpr *cast = NoTypeInfoCStyleCastExpr(
 3316     CastExpr *ArgExpr = NoTypeInfoCStyleCastExpr(Context,
 3479   CastExpr *cast;
 3589   CastExpr *castExpr = NoTypeInfoCStyleCastExpr(
 4615   CastExpr *BlkCast = NoTypeInfoCStyleCastExpr(Context, PtrBlock,
 4632   CastExpr *FunkCast = NoTypeInfoCStyleCastExpr(Context, PtrToFuncCastType,
 4751 void RewriteModernObjC::RewriteImplicitCastObjCExpr(CastExpr *IC) {
 5281   CastExpr *castExpr = NoTypeInfoCStyleCastExpr(Context, Context->VoidPtrTy,
 7472       CastExpr *castExpr = NoTypeInfoCStyleCastExpr(Context,
tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
 2514   CastExpr *cast = NoTypeInfoCStyleCastExpr(Context, Exp->getType(),
 2594   CastExpr *cast = NoTypeInfoCStyleCastExpr(Context,
 2679     CastExpr *ArgExpr = NoTypeInfoCStyleCastExpr(Context,
 2773     CastExpr *ArgExpr = NoTypeInfoCStyleCastExpr(Context,
 2908   CastExpr *cast;
 3048   CastExpr *castExpr = NoTypeInfoCStyleCastExpr(Context, DerefExpr->getType(),
 3783   CastExpr *BlkCast = NoTypeInfoCStyleCastExpr(Context, PtrBlock,
 3800   CastExpr *FunkCast = NoTypeInfoCStyleCastExpr(Context, PtrToFuncCastType,
 4419   CastExpr *castExpr =
 5824       CastExpr *castExpr = NoTypeInfoCStyleCastExpr(Context, castT,
 5864       CastExpr *castExpr = NoTypeInfoCStyleCastExpr(Context, castT,
tools/clang/lib/Index/IndexBody.cpp
   64     while (isa<CastExpr>(*It) || isa<ParenExpr>(*It)) {
tools/clang/lib/Sema/SemaCast.cpp
   92     void updatePartOfExplicitCastFlags(CastExpr *CE) {
  102     ExprResult complete(CastExpr *castExpr) {
 2645       if (CastExpr::getTargetFieldForToUnionCast(RD, SrcType)) {
tools/clang/lib/Sema/SemaChecking.cpp
12747   void VisitCastExpr(CastExpr *E) {
13167   if (auto *CE = dyn_cast<CastExpr>(Op)) {
13167   if (auto *CE = dyn_cast<CastExpr>(Op)) {
13466     if (CastExpr *cast = dyn_cast<CastExpr>(e)) {
13466     if (CastExpr *cast = dyn_cast<CastExpr>(e)) {
tools/clang/lib/Sema/SemaDeclAttr.cpp
  605   if (const auto *E = dyn_cast<CastExpr>(Ex))
  605   if (const auto *E = dyn_cast<CastExpr>(Ex))
tools/clang/lib/Sema/SemaExpr.cpp
10189           CastKind CK = cast<CastExpr>(Inner)->getCastKind();
10389   if (isa<CastExpr>(LHSStripped))
10391   if (isa<CastExpr>(RHSStripped))
10423     llvm::errs() << "unhandled cast kind: " << CastExpr::getCastKindName(CK)
12011   if (const CastExpr *CE = dyn_cast<CastExpr>(E)) {
12011   if (const CastExpr *CE = dyn_cast<CastExpr>(E)) {
tools/clang/lib/Sema/SemaExprCXX.cpp
 6406     } else if (isa<CastExpr>(E) &&
 6407                isa<BlockExpr>(cast<CastExpr>(E)->getSubExpr())) {
 7198     CastExpr *CE = dyn_cast<CastExpr>(SubE);
 7198     CastExpr *CE = dyn_cast<CastExpr>(SubE);
tools/clang/lib/Sema/SemaExprObjC.cpp
 3378     ACCResult VisitCastExpr(CastExpr *e) {
 4311   CastExpr *realCast = cast<CastExpr>(e->IgnoreParens());
 4311   CastExpr *realCast = cast<CastExpr>(e->IgnoreParens());
 4409     if (auto *ce = dyn_cast<CastExpr>(curExpr)) {
 4409     if (auto *ce = dyn_cast<CastExpr>(curExpr)) {
 4417             cast<CastExpr>(prevExpr)->setSubExpr(ice->getSubExpr());
tools/clang/lib/Sema/SemaFixItUtils.cpp
   71       isa<CastExpr>(Expr) ||
tools/clang/lib/Sema/SemaInit.cpp
 5333   } else if (CastExpr *ce = dyn_cast<CastExpr>(e)) {
 5333   } else if (CastExpr *ce = dyn_cast<CastExpr>(e)) {
 6920     if (CastExpr *CE = dyn_cast<CastExpr>(Init))
 6920     if (CastExpr *CE = dyn_cast<CastExpr>(Init))
 7051     if (auto *CE = dyn_cast<CastExpr>(Init)) {
 7051     if (auto *CE = dyn_cast<CastExpr>(Init)) {
tools/clang/lib/Sema/SemaStmt.cpp
  276   if (const auto *Cast = dyn_cast<CastExpr>(E))
  276   if (const auto *Cast = dyn_cast<CastExpr>(E))
 1400     void VisitCastExpr(CastExpr *E) {
 1477     void VisitCastExpr(CastExpr *E) {
 2792   } else if (const CastExpr *CE = dyn_cast<CastExpr>(InitExpr)) {
 2792   } else if (const CastExpr *CE = dyn_cast<CastExpr>(InitExpr)) {
tools/clang/lib/Sema/SemaStmtAsm.cpp
   43     CastExpr *ParentCast = dyn_cast<CastExpr>(Parent);
   43     CastExpr *ParentCast = dyn_cast<CastExpr>(Parent);
   49     if (auto *CastE = dyn_cast<CastExpr>(Child))
   49     if (auto *CastE = dyn_cast<CastExpr>(Child))
tools/clang/lib/Serialization/ASTReaderStmt.cpp
  852 void ASTStmtReader::VisitCastExpr(CastExpr *E) {
  858   CastExpr::path_iterator BaseI = E->path_begin();
tools/clang/lib/Serialization/ASTWriterStmt.cpp
  761 void ASTStmtWriter::VisitCastExpr(CastExpr *E) {
  767   for (CastExpr::path_iterator
tools/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp
   30     : public Checker<check::PreStmt<CastExpr>,
   31                      check::PostStmt<CastExpr>,
   63   void checkPreStmt(const CastExpr *CE, CheckerContext &C) const {
   69   void checkPostStmt(const CastExpr *CE, CheckerContext &C) const {
tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp
   24 class CastSizeChecker : public Checker< check::PreStmt<CastExpr> > {
   28   void checkPreStmt(const CastExpr *CE, CheckerContext &C) const;
   87 void CastSizeChecker::checkPreStmt(const CastExpr *CE,CheckerContext &C) const {
tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp
   35   bool VisitCastExpr(const CastExpr *CE);
   39 bool CastToStructVisitor::VisitCastExpr(const CastExpr *CE) {
tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp
  115   const auto *CastE = dyn_cast<CastExpr>(S);
  115   const auto *CastE = dyn_cast<CastExpr>(S);
tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
   54                     check::PostStmt<CastExpr>,
   65   ExplodedNode *dynamicTypePropagationOnCasts(const CastExpr *CE,
  103   void checkPostStmt(const CastExpr *CastE, CheckerContext &C) const;
  276     const CastExpr *CE, ProgramStateRef &State, CheckerContext &C) const {
  520 void DynamicTypePropagation::checkPostStmt(const CastExpr *CE,
tools/clang/lib/StaticAnalyzer/Checkers/EnumCastOutOfRangeChecker.cpp
   59 class EnumCastOutOfRangeChecker : public Checker<check::PreStmt<CastExpr>> {
   64   void checkPreStmt(const CastExpr *CE, CheckerContext &C) const;
   92 void EnumCastOutOfRangeChecker::checkPreStmt(const CastExpr *CE,
tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp
   72   TypeCallPair VisitCastExpr(const CastExpr *E) {
tools/clang/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp
   41   const auto *CE = Nodes.getNodeAs<CastExpr>(WarnAtNode);
   41   const auto *CE = Nodes.getNodeAs<CastExpr>(WarnAtNode);
tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp
   46           check::PreStmt<ArraySubscriptExpr>, check::PreStmt<CastExpr>,
   47           check::PostStmt<CastExpr>, check::PostStmt<CXXNewExpr>,
   66   void checkPreStmt(const CastExpr *CE, CheckerContext &C) const;
   67   void checkPostStmt(const CastExpr *CE, CheckerContext &C) const;
  257 void PointerArithChecker::checkPostStmt(const CastExpr *CE,
  275 void PointerArithChecker::checkPreStmt(const CastExpr *CE,
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp
  182 void RetainCountChecker::checkPostStmt(const CastExpr *CE,
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h
  244                     check::PostStmt<CastExpr>,
  296   void checkPostStmt(const CastExpr *CE, CheckerContext &C) const;
tools/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp
  171   if (const auto *Cast = dyn_cast<CastExpr>(E)) {
  171   if (const auto *Cast = dyn_cast<CastExpr>(E)) {
tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp
  180     llvm::iterator_range<CastExpr::path_const_iterator> PathRange,
tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
  103     if (const auto *CE = dyn_cast<CastExpr>(E)) {
  103     if (const auto *CE = dyn_cast<CastExpr>(E)) {
tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
 1697       const auto *C = cast<CastExpr>(S);
 1697       const auto *C = cast<CastExpr>(S);
 2002   while (const auto *CE = dyn_cast<CastExpr>(Ex)) {
 2002   while (const auto *CE = dyn_cast<CastExpr>(Ex)) {
tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
  261     QualType T, QualType ExTy, const CastExpr* CastE, StmtNodeBuilder& Bldr,
  286     ProgramStateRef state, const LocationContext* LCtx, const CastExpr* CastE,
  301 void ExprEngine::VisitCast(const CastExpr *CastE, const Expr *Ex,
  529                   llvm::make_range<CastExpr::path_const_iterator>(
tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
  338     const auto *CE = cast<CastExpr>(E);
  338     const auto *CE = cast<CastExpr>(E);
tools/clang/lib/StaticAnalyzer/Core/Store.cpp
  248 SVal StoreManager::evalDerivedToBase(SVal Derived, const CastExpr *Cast) {
  256   for (CastExpr::path_const_iterator I = Cast->path_begin(),
tools/clang/tools/extra/clang-tidy/bugprone/MisplacedWideningCastCheck.cpp
  184   const auto *Cast = Result.Nodes.getNodeAs<CastExpr>("Cast");
  184   const auto *Cast = Result.Nodes.getNodeAs<CastExpr>("Cast");
tools/clang/tools/extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp
   35   if (const auto *CE = dyn_cast<CastExpr>(E)) {
   35   if (const auto *CE = dyn_cast<CastExpr>(E)) {
tools/clang/tools/extra/clang-tidy/bugprone/SwappedArgumentsCheck.cpp
   29   if (auto *Cast = dyn_cast<CastExpr>(E))
   39 static bool isImplicitCastCandidate(const CastExpr *Cast) {
tools/clang/tools/extra/clang-tidy/misc/RedundantExpressionCheck.cpp
  509   } else if (const auto *Cast = Result.Nodes.getNodeAs<CastExpr>(CastId)) {
  509   } else if (const auto *Cast = Result.Nodes.getNodeAs<CastExpr>(CastId)) {
tools/clang/tools/extra/clang-tidy/modernize/UseNullptrCheck.cpp
  191     auto *C = dyn_cast<CastExpr>(S);
  191     auto *C = dyn_cast<CastExpr>(S);
  194       C = dyn_cast<CastExpr>(E->getExpr());
  268   bool allArgUsesValid(const CastExpr *CE) {
  484   const auto *NullCast = Result.Nodes.getNodeAs<CastExpr>(CastSequence);
  484   const auto *NullCast = Result.Nodes.getNodeAs<CastExpr>(CastSequence);
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  326     : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
  354     : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
  567     : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  631     : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  798       typedef decltype(__test<_Tp>(0)) type;
  811                remove_all_extents<_Tp>::type>::type
  825     : public __is_destructible_safe<_Tp>::type
 1447     : public __and_<is_destructible<_Tp>, integral_constant<bool,
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1580     { typedef _Tp const     type; };
 1629     { typedef _Tp   type; };
 1659     { typedef _Tp&&   type; };
 1955     { typedef _Tp     type; };
 1983     { typedef _Up     type; };
 1999     { typedef typename remove_reference<_Tp>::type*     type; };
 2003     : public __add_pointer_helper<_Tp>