summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang/CIndexCXX.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-09-30 17:58:23 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-09-30 17:58:23 +0000
commit12afd70370db92e78e64928a754d4e8d1e0ce3a7 (patch)
tree72fd3053aeab890a9e308ad73247ecfb564257ee /clang/tools/libclang/CIndexCXX.cpp
parent4e0dbee62bf9cffcd98703f4f30cdb4985475918 (diff)
downloadbcm5719-llvm-12afd70370db92e78e64928a754d4e8d1e0ce3a7.tar.gz
bcm5719-llvm-12afd70370db92e78e64928a754d4e8d1e0ce3a7.zip
[libclang] Introduce CXCursor_CXXAccessSpecifier for C++'s public:/private:/protected: specifiers.
Patch by Paolo Capriotti! llvm-svn: 140864
Diffstat (limited to 'clang/tools/libclang/CIndexCXX.cpp')
-rw-r--r--clang/tools/libclang/CIndexCXX.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/clang/tools/libclang/CIndexCXX.cpp b/clang/tools/libclang/CIndexCXX.cpp
index 0f49f65c2b8..fb0ccb146f7 100644
--- a/clang/tools/libclang/CIndexCXX.cpp
+++ b/clang/tools/libclang/CIndexCXX.cpp
@@ -31,11 +31,16 @@ unsigned clang_isVirtualBase(CXCursor C) {
}
enum CX_CXXAccessSpecifier clang_getCXXAccessSpecifier(CXCursor C) {
- if (C.kind != CXCursor_CXXBaseSpecifier)
+ AccessSpecifier spec = AS_none;
+
+ if (C.kind == CXCursor_CXXAccessSpecifier)
+ spec = getCursorDecl(C)->getAccess();
+ else if (C.kind == CXCursor_CXXBaseSpecifier)
+ spec = getCursorCXXBaseSpecifier(C)->getAccessSpecifier();
+ else
return CX_CXXInvalidAccessSpecifier;
- CXXBaseSpecifier *B = getCursorCXXBaseSpecifier(C);
- switch (B->getAccessSpecifier()) {
+ switch (spec) {
case AS_public: return CX_CXXPublic;
case AS_protected: return CX_CXXProtected;
case AS_private: return CX_CXXPrivate;
OpenPOWER on IntegriCloud