CXXNamedCastExpr is actually an abstract expression. <br><br>Index: include/clang/AST/Expr.h<br>===================================================================<br>--- include/clang/AST/Expr.h (版本 101983)<br>+++ include/clang/AST/Expr.h (工作副本)<br>
@@ -1679,7 +1679,7 @@<br> <br> static bool classof(const Stmt *T) {<br> StmtClass SC = T->getStmtClass();<br>- if (SC >= CXXNamedCastExprClass && SC <= CXXFunctionalCastExprClass)<br>+ if (SC >= CXXStaticCastExprClass && SC <= CXXFunctionalCastExprClass)<br>
return true;<br> <br> if (SC >= ImplicitCastExprClass && SC <= CStyleCastExprClass)<br>@@ -1783,7 +1783,7 @@<br> StmtClass SC = T->getStmtClass();<br> if (SC >= CStyleCastExprClass && SC <= CStyleCastExprClass)<br>
return true;<br>- if (SC >= CXXNamedCastExprClass && SC <= CXXFunctionalCastExprClass)<br>+ if (SC >= CXXStaticCastExprClass && SC <= CXXFunctionalCastExprClass)<br> return true;<br>
<br> return false;<br>Index: include/clang/AST/StmtNodes.def<br>===================================================================<br>--- include/clang/AST/StmtNodes.def (版本 101983)<br>+++ include/clang/AST/StmtNodes.def (工作副本)<br>
@@ -107,7 +107,7 @@<br> // C++ Expressions.<br> EXPR(CXXOperatorCallExpr , CallExpr)<br> EXPR(CXXMemberCallExpr , CallExpr)<br>-EXPR(CXXNamedCastExpr , ExplicitCastExpr)<br>+ABSTRACT_EXPR(CXXNamedCastExpr , ExplicitCastExpr)<br>
EXPR(CXXStaticCastExpr , CXXNamedCastExpr)<br> EXPR(CXXDynamicCastExpr , CXXNamedCastExpr)<br> EXPR(CXXReinterpretCastExpr , CXXNamedCastExpr)<br>Index: include/clang/AST/ExprCXX.h<br>===================================================================<br>
--- include/clang/AST/ExprCXX.h (版本 101983)<br>+++ include/clang/AST/ExprCXX.h (工作副本)<br>@@ -137,7 +137,6 @@<br> }<br> static bool classof(const Stmt *T) {<br> switch (T->getStmtClass()) {<br>- case CXXNamedCastExprClass:<br>
case CXXStaticCastExprClass:<br> case CXXDynamicCastExprClass:<br> case CXXReinterpretCastExprClass:<br>Index: tools/CIndex/CXCursor.cpp<br>===================================================================<br>
--- tools/CIndex/CXCursor.cpp (版本 101983)<br>+++ tools/CIndex/CXCursor.cpp (工作副本)<br>@@ -160,7 +160,6 @@<br> case Stmt::TypesCompatibleExprClass: <br> case Stmt::ChooseExprClass: <br> case Stmt::GNUNullExprClass: <br>
- case Stmt::CXXNamedCastExprClass:<br> case Stmt::CXXStaticCastExprClass: <br> case Stmt::CXXDynamicCastExprClass: <br> case Stmt::CXXReinterpretCastExprClass: <br>Index: lib/Sema/TreeTransform.h<br>===================================================================<br>
--- lib/Sema/TreeTransform.h (版本 101983)<br>+++ lib/Sema/TreeTransform.h (工作副本)<br>@@ -338,6 +338,7 @@<br> QualType ObjectType);<br> <br> OwningStmtResult TransformCompoundStmt(CompoundStmt *S, bool IsStmtExpr);<br>
+ OwningExprResult TransformCXXNamedCastExpr(CXXNamedCastExpr *E);<br> <br> #define STMT(Node, Parent) \<br> OwningStmtResult Transform##Node(Node *S);<br>@@ -346,6 +347,7 @@<br> #define ABSTRACT_EXPR(Node, Parent)<br>
#include "clang/AST/StmtNodes.def"<br> <br>+<br> /// \brief Build a new pointer type given its pointee type.<br> ///<br> /// By default, performs semantic analysis when building the pointer type.<br>Index: lib/AST/Expr.cpp<br>
===================================================================<br>--- lib/AST/Expr.cpp (版本 101983)<br>+++ lib/AST/Expr.cpp (工作副本)<br>@@ -1999,7 +1999,6 @@<br> case Expr::ImplicitCastExprClass:<br> case Expr::CStyleCastExprClass:<br>
case Expr::CXXFunctionalCastExprClass:<br>- case Expr::CXXNamedCastExprClass:<br> case Expr::CXXStaticCastExprClass:<br> case Expr::CXXReinterpretCastExprClass:<br> case Expr::CXXConstCastExprClass: {<br>Index: lib/Checker/GRExprEngine.cpp<br>
===================================================================<br>--- lib/Checker/GRExprEngine.cpp (版本 101983)<br>+++ lib/Checker/GRExprEngine.cpp (工作副本)<br>@@ -591,7 +591,6 @@<br> case Stmt::CXXDefaultArgExprClass:<br>
case Stmt::CXXDependentScopeMemberExprClass:<br> case Stmt::CXXExprWithTemporariesClass:<br>- case Stmt::CXXNamedCastExprClass:<br> case Stmt::CXXNullPtrLiteralExprClass:<br> case Stmt::CXXPseudoDestructorExprClass:<br>
case Stmt::CXXTemporaryObjectExprClass:<br><br>