[libclang] Introduce CXCursor_CXXAccessSpecifier for C++'s public:/private:/protected: specifiers.

Patch by Paolo Capriotti!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140864 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/libclang/CIndexCXX.cpp b/tools/libclang/CIndexCXX.cpp
index 0f49f65..fb0ccb1 100644
--- a/tools/libclang/CIndexCXX.cpp
+++ b/tools/libclang/CIndexCXX.cpp
@@ -31,11 +31,16 @@
 }
 
 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;