summaryrefslogtreecommitdiff
path: root/tools/libclang
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2014-04-07 14:59:13 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2014-04-07 14:59:13 +0000
commit97e10ae5775bc5a9d87ff864d86a9e6793d8099e (patch)
treec8ea30d20c3aadcdbeeba6837973042b4519f8cf /tools/libclang
parent3d0e84831b4deb665ae1b684c206820d23077a58 (diff)
downloadclang-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.cpp10
-rw-r--r--tools/libclang/libclang.exports1
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