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>