From: Zhongxing Xu Date: Wed, 21 Apr 2010 06:32:25 +0000 (+0000) Subject: CXXNamedCastExpr is actually an abstract expression. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d8383d45e41ba2316610e5d638d2872e37b67cfb;p=clang CXXNamedCastExpr is actually an abstract expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101994 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/Expr.h b/include/clang/AST/Expr.h index 88e87812d1..a2f5fd3ff9 100644 --- a/include/clang/AST/Expr.h +++ b/include/clang/AST/Expr.h @@ -1679,7 +1679,7 @@ public: static bool classof(const Stmt *T) { StmtClass SC = T->getStmtClass(); - if (SC >= CXXNamedCastExprClass && SC <= CXXFunctionalCastExprClass) + if (SC >= CXXStaticCastExprClass && SC <= CXXFunctionalCastExprClass) return true; if (SC >= ImplicitCastExprClass && SC <= CStyleCastExprClass) @@ -1783,7 +1783,7 @@ public: StmtClass SC = T->getStmtClass(); if (SC >= CStyleCastExprClass && SC <= CStyleCastExprClass) return true; - if (SC >= CXXNamedCastExprClass && SC <= CXXFunctionalCastExprClass) + if (SC >= CXXStaticCastExprClass && SC <= CXXFunctionalCastExprClass) return true; return false; diff --git a/include/clang/AST/ExprCXX.h b/include/clang/AST/ExprCXX.h index 6e2e832e35..7f7f0858a1 100644 --- a/include/clang/AST/ExprCXX.h +++ b/include/clang/AST/ExprCXX.h @@ -137,7 +137,6 @@ public: } static bool classof(const Stmt *T) { switch (T->getStmtClass()) { - case CXXNamedCastExprClass: case CXXStaticCastExprClass: case CXXDynamicCastExprClass: case CXXReinterpretCastExprClass: diff --git a/include/clang/AST/StmtNodes.def b/include/clang/AST/StmtNodes.def index ec6149e55f..4e80ecbad5 100644 --- a/include/clang/AST/StmtNodes.def +++ b/include/clang/AST/StmtNodes.def @@ -107,7 +107,7 @@ EXPR(GNUNullExpr , Expr) // C++ Expressions. EXPR(CXXOperatorCallExpr , CallExpr) EXPR(CXXMemberCallExpr , CallExpr) -EXPR(CXXNamedCastExpr , ExplicitCastExpr) +ABSTRACT_EXPR(CXXNamedCastExpr , ExplicitCastExpr) EXPR(CXXStaticCastExpr , CXXNamedCastExpr) EXPR(CXXDynamicCastExpr , CXXNamedCastExpr) EXPR(CXXReinterpretCastExpr , CXXNamedCastExpr) diff --git a/lib/AST/Expr.cpp b/lib/AST/Expr.cpp index 71e8d072e4..e635b65841 100644 --- a/lib/AST/Expr.cpp +++ b/lib/AST/Expr.cpp @@ -1999,7 +1999,6 @@ static ICEDiag CheckICE(const Expr* E, ASTContext &Ctx) { case Expr::ImplicitCastExprClass: case Expr::CStyleCastExprClass: case Expr::CXXFunctionalCastExprClass: - case Expr::CXXNamedCastExprClass: case Expr::CXXStaticCastExprClass: case Expr::CXXReinterpretCastExprClass: case Expr::CXXConstCastExprClass: { diff --git a/lib/Checker/GRExprEngine.cpp b/lib/Checker/GRExprEngine.cpp index 41e52436ce..376f9fcd87 100644 --- a/lib/Checker/GRExprEngine.cpp +++ b/lib/Checker/GRExprEngine.cpp @@ -591,7 +591,6 @@ void GRExprEngine::Visit(Stmt* S, ExplodedNode* Pred, ExplodedNodeSet& Dst) { case Stmt::CXXDefaultArgExprClass: case Stmt::CXXDependentScopeMemberExprClass: case Stmt::CXXExprWithTemporariesClass: - case Stmt::CXXNamedCastExprClass: case Stmt::CXXNullPtrLiteralExprClass: case Stmt::CXXPseudoDestructorExprClass: case Stmt::CXXTemporaryObjectExprClass: diff --git a/lib/Sema/TreeTransform.h b/lib/Sema/TreeTransform.h index ba714e8867..ca9198490e 100644 --- a/lib/Sema/TreeTransform.h +++ b/lib/Sema/TreeTransform.h @@ -338,6 +338,7 @@ public: QualType ObjectType); OwningStmtResult TransformCompoundStmt(CompoundStmt *S, bool IsStmtExpr); + OwningExprResult TransformCXXNamedCastExpr(CXXNamedCastExpr *E); #define STMT(Node, Parent) \ OwningStmtResult Transform##Node(Node *S); diff --git a/tools/CIndex/CXCursor.cpp b/tools/CIndex/CXCursor.cpp index 036214e75f..3bc5d01fba 100644 --- a/tools/CIndex/CXCursor.cpp +++ b/tools/CIndex/CXCursor.cpp @@ -160,7 +160,6 @@ CXCursor cxcursor::MakeCXCursor(Stmt *S, Decl *Parent, ASTUnit *TU) { case Stmt::TypesCompatibleExprClass: case Stmt::ChooseExprClass: case Stmt::GNUNullExprClass: - case Stmt::CXXNamedCastExprClass: case Stmt::CXXStaticCastExprClass: case Stmt::CXXDynamicCastExprClass: case Stmt::CXXReinterpretCastExprClass: