diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-09-30 17:58:23 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-09-30 17:58:23 +0000 |
commit | 12afd70370db92e78e64928a754d4e8d1e0ce3a7 (patch) | |
tree | 72fd3053aeab890a9e308ad73247ecfb564257ee /clang/tools/libclang/CIndexCXX.cpp | |
parent | 4e0dbee62bf9cffcd98703f4f30cdb4985475918 (diff) | |
download | bcm5719-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.cpp | 11 |
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; |