]> granicus.if.org Git - clang/commitdiff
Add CXCursor support for LinkageSpecDecl (e.g., 'extern "C"').
authorTed Kremenek <kremenek@apple.com>
Fri, 7 May 2010 01:04:29 +0000 (01:04 +0000)
committerTed Kremenek <kremenek@apple.com>
Fri, 7 May 2010 01:04:29 +0000 (01:04 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103224 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang-c/Index.h
tools/libclang/CIndex.cpp

index 8e6542e40c185d1f59ca4c1eed7d43edbbc6cdb9..e1826df76fed1b46143272430fc296cb5fa8e64c 100644 (file)
@@ -704,8 +704,10 @@ enum CXCursorKind {
   CXCursor_CXXMethod                     = 21,
   /** \brief A C++ namespace. */
   CXCursor_Namespace                     = 22,
+  /** \brief A linkage specification, e.g. 'extern "C"'. */
+  CXCursor_LinkageSpec                   = 23,
 
-  CXCursor_LastDecl                      = CXCursor_Namespace,
+  CXCursor_LastDecl                      = CXCursor_LinkageSpec,
 
   /* References */
   CXCursor_FirstRef                      = 40, /* Decl references */
index f221d16af293334864e9217940a7433254dcfeaa..3d55a10aaf536c89301ab227c35e712388d93751 100644 (file)
@@ -285,6 +285,7 @@ public:
   // FIXME: ObjCCompatibleAliasDecl requires aliased-class locations.
   bool VisitObjCForwardProtocolDecl(ObjCForwardProtocolDecl *D);
   bool VisitObjCClassDecl(ObjCClassDecl *D);
+  bool VisitLinkageSpecDecl(LinkageSpecDecl *D);
   bool VisitNamespaceDecl(NamespaceDecl *D);
 
   // Type visitors
@@ -727,6 +728,10 @@ bool CursorVisitor::VisitNamespaceDecl(NamespaceDecl *D) {
   return VisitDeclContext(D);
 }
 
+bool CursorVisitor::VisitLinkageSpecDecl(LinkageSpecDecl *D) {
+  return VisitDeclContext(D);
+}
+
 bool CursorVisitor::VisitBuiltinTypeLoc(BuiltinTypeLoc TL) {
   ASTContext &Context = TU->getASTContext();
 
@@ -1645,6 +1650,8 @@ CXString clang_getCursorKindSpelling(enum CXCursorKind Kind) {
     return createCXString("macro instantiation");
   case CXCursor_Namespace:
     return createCXString("Namespace");
+  case CXCursor_LinkageSpec:
+    return createCXString("LinkageSpec");
   }
 
   llvm_unreachable("Unhandled CXCursorKind");