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>