diff options
| author | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2018-11-27 12:02:39 +0000 |
|---|---|---|
| committer | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2018-11-27 12:02:39 +0000 |
| commit | 60b7103ce8f692d9b836902dacccdb096168251e (patch) | |
| tree | 2f4ae492aa6cb34ef37d781f5bab9da6fa0bfd15 /clang/tools/libclang/CXCursor.cpp | |
| parent | 81bff5e6ea27d5ff45b01372fdbbdad2fbac98b9 (diff) | |
| download | bcm5719-llvm-60b7103ce8f692d9b836902dacccdb096168251e.tar.gz bcm5719-llvm-60b7103ce8f692d9b836902dacccdb096168251e.zip | |
[libclang] Fix clang_Cursor_getNumArguments and clang_Cursor_getArgument for CXXConstructExpr
Constructors have the same methods for arguments as call expressions.
Let's provide a way to get their arguments the same way.
Differential Revision: https://reviews.llvm.org/D54934
llvm-svn: 347654
Diffstat (limited to 'clang/tools/libclang/CXCursor.cpp')
| -rw-r--r-- | clang/tools/libclang/CXCursor.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/tools/libclang/CXCursor.cpp b/clang/tools/libclang/CXCursor.cpp index 7e14b5f893c..b8c25291691 100644 --- a/clang/tools/libclang/CXCursor.cpp +++ b/clang/tools/libclang/CXCursor.cpp @@ -1164,6 +1164,9 @@ int clang_Cursor_getNumArguments(CXCursor C) { if (const CallExpr *CE = dyn_cast<CallExpr>(E)) { return CE->getNumArgs(); } + if (const CXXConstructExpr *CE = dyn_cast<CXXConstructExpr>(E)) { + return CE->getNumArgs(); + } } return -1; @@ -1192,6 +1195,13 @@ CXCursor clang_Cursor_getArgument(CXCursor C, unsigned i) { cxcursor::getCursorTU(C)); } } + if (const CXXConstructExpr *CE = dyn_cast<CXXConstructExpr>(E)) { + if (i < CE->getNumArgs()) { + return cxcursor::MakeCXCursor(CE->getArg(i), + getCursorDecl(C), + cxcursor::getCursorTU(C)); + } + } } return clang_getNullCursor(); |

