diff options
author | Dmitri Gribenko <gribozavr@gmail.com> | 2014-04-07 14:59:13 +0000 |
---|---|---|
committer | Dmitri Gribenko <gribozavr@gmail.com> | 2014-04-07 14:59:13 +0000 |
commit | 97e10ae5775bc5a9d87ff864d86a9e6793d8099e (patch) | |
tree | c8ea30d20c3aadcdbeeba6837973042b4519f8cf /tools/libclang | |
parent | 3d0e84831b4deb665ae1b684c206820d23077a58 (diff) | |
download | clang-97e10ae5775bc5a9d87ff864d86a9e6793d8099e.tar.gz clang-97e10ae5775bc5a9d87ff864d86a9e6793d8099e.tar.bz2 clang-97e10ae5775bc5a9d87ff864d86a9e6793d8099e.tar.xz |
libclang: add clang_CXXMethod_isConst API that allows to determine if a C++
member function or member function template is declared 'const'
Patch by Kevin Funk with testcase updates by me.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205714 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/libclang')
-rw-r--r-- | tools/libclang/CIndex.cpp | 10 | ||||
-rw-r--r-- | tools/libclang/libclang.exports | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp index 04797a98d3..50e7c68204 100644 --- a/tools/libclang/CIndex.cpp +++ b/tools/libclang/CIndex.cpp @@ -6403,6 +6403,16 @@ unsigned clang_CXXMethod_isPureVirtual(CXCursor C) { return (Method && Method->isVirtual() && Method->isPure()) ? 1 : 0; } +unsigned clang_CXXMethod_isConst(CXCursor C) { + if (!clang_isDeclaration(C.kind)) + return 0; + + const Decl *D = cxcursor::getCursorDecl(C); + const CXXMethodDecl *Method = + D ? dyn_cast_or_null<CXXMethodDecl>(D->getAsFunction()) : 0; + return (Method && (Method->getTypeQualifiers() & Qualifiers::Const)) ? 1 : 0; +} + unsigned clang_CXXMethod_isStatic(CXCursor C) { if (!clang_isDeclaration(C.kind)) return 0; diff --git a/tools/libclang/libclang.exports b/tools/libclang/libclang.exports index 37b6159bd0..df8d85c01f 100644 --- a/tools/libclang/libclang.exports +++ b/tools/libclang/libclang.exports @@ -2,6 +2,7 @@ clang_CXCursorSet_contains clang_CXCursorSet_insert clang_CXIndex_getGlobalOptions clang_CXIndex_setGlobalOptions +clang_CXXMethod_isConst clang_CXXMethod_isPureVirtual clang_CXXMethod_isStatic clang_CXXMethod_isVirtual |