From: Olivier Goffart Date: Thu, 9 Jun 2016 16:16:06 +0000 (+0000) Subject: Make sizeof and alignof a CXCursor_UnaryExpr X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8b3338668e4e558eafd6438973b9f76536c1fd7b;p=clang Make sizeof and alignof a CXCursor_UnaryExpr So we can match sizeof expressions more accurately than with UnexposedExpr Differential Revision: http://reviews.llvm.org/D18081 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272274 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang-c/Index.h b/include/clang-c/Index.h index 1762148dbc..89612b9c93 100644 --- a/include/clang-c/Index.h +++ b/include/clang-c/Index.h @@ -1932,7 +1932,7 @@ enum CXCursorKind { */ CXCursor_CXXDeleteExpr = 135, - /** \brief A unary expression. + /** \brief A unary expression. (noexcept, sizeof, or other traits) */ CXCursor_UnaryExpr = 136, diff --git a/test/Index/annotate-tokens.c b/test/Index/annotate-tokens.c index 2f95ca6f45..c72e4f725f 100644 --- a/test/Index/annotate-tokens.c +++ b/test/Index/annotate-tokens.c @@ -80,10 +80,10 @@ void test() { // CHECK: Punctuation: "(" [5:3 - 5:4] CStyleCastExpr= // CHECK: Keyword: "void" [5:4 - 5:8] CStyleCastExpr= // CHECK: Punctuation: ")" [5:8 - 5:9] CStyleCastExpr= -// CHECK: Keyword: "sizeof" [5:9 - 5:15] UnexposedExpr= -// CHECK: Punctuation: "(" [5:15 - 5:16] UnexposedExpr= +// CHECK: Keyword: "sizeof" [5:9 - 5:15] UnaryExpr= +// CHECK: Punctuation: "(" [5:15 - 5:16] UnaryExpr= // CHECK: Identifier: "T" [5:16 - 5:17] TypeRef=T:1:13 -// CHECK: Punctuation: ")" [5:17 - 5:18] UnexposedExpr= +// CHECK: Punctuation: ")" [5:17 - 5:18] UnaryExpr= // CHECK: Punctuation: ";" [5:18 - 5:19] CompoundStmt= // CHECK: Keyword: "struct" [7:3 - 7:9] VarDecl=x:7:12 (Definition) // CHECK: Identifier: "X" [7:10 - 7:11] TypeRef=struct X:2:8 diff --git a/tools/libclang/CXCursor.cpp b/tools/libclang/CXCursor.cpp index 25581a8d3f..075ff291d1 100644 --- a/tools/libclang/CXCursor.cpp +++ b/tools/libclang/CXCursor.cpp @@ -256,7 +256,6 @@ CXCursor cxcursor::MakeCXCursor(const Stmt *S, const Decl *Parent, case Stmt::PredefinedExprClass: case Stmt::ShuffleVectorExprClass: case Stmt::ConvertVectorExprClass: - case Stmt::UnaryExprOrTypeTraitExprClass: case Stmt::VAArgExprClass: case Stmt::ObjCArrayLiteralClass: case Stmt::ObjCDictionaryLiteralClass: @@ -327,6 +326,7 @@ CXCursor cxcursor::MakeCXCursor(const Stmt *S, const Decl *Parent, K = CXCursor_UnaryOperator; break; + case Stmt::UnaryExprOrTypeTraitExprClass: case Stmt::CXXNoexceptExprClass: K = CXCursor_UnaryExpr; break;