]> granicus.if.org Git - clang/commitdiff
Add source file I meant to include in my previous commit.
authorTed Kremenek <kremenek@apple.com>
Fri, 27 Aug 2010 21:57:20 +0000 (21:57 +0000)
committerTed Kremenek <kremenek@apple.com>
Fri, 27 Aug 2010 21:57:20 +0000 (21:57 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112303 91177308-0d34-0410-b5e6-96231b3b80d8

tools/libclang/CIndexCXX.cpp [new file with mode: 0644]

diff --git a/tools/libclang/CIndexCXX.cpp b/tools/libclang/CIndexCXX.cpp
new file mode 100644 (file)
index 0000000..a168f16
--- /dev/null
@@ -0,0 +1,48 @@
+//===- CIndexCXX.cpp - Clang-C Source Indexing Library --------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements the libclang support for C++ cursors.
+//
+//===----------------------------------------------------------------------===//
+
+#include "CIndexer.h"
+#include "CXCursor.h"
+#include "CXType.h"
+#include "clang/AST/DeclCXX.h"
+
+using namespace clang;
+using namespace clang::cxstring;
+
+extern "C" {
+
+unsigned clang_isVirtualBase(CXCursor C) {
+  if (C.kind != CXCursor_CXXBaseSpecifier)
+    return 0;
+  
+  CXXBaseSpecifier *B = cxcursor::getCursorCXXBaseSpecifier(C);
+  return B->isVirtual();
+}
+
+enum CX_CXXAccessSpecifier clang_getCXXAccessSpecifier(CXCursor C) {
+  if (C.kind != CXCursor_CXXBaseSpecifier)
+    return CX_CXXInvalidAccessSpecifier;
+  
+  CXXBaseSpecifier *B = cxcursor::getCursorCXXBaseSpecifier(C);
+  switch (B->getAccessSpecifier()) {
+    case AS_public: return CX_CXXPublic;
+    case AS_protected: return CX_CXXProtected;
+    case AS_private: return CX_CXXPrivate;
+    case AS_none: return CX_CXXInvalidAccessSpecifier;
+  }
+  
+  // FIXME: Clang currently thinks this is reachable.
+  return CX_CXXInvalidAccessSpecifier;
+}
+
+} // end extern "C"