]> granicus.if.org Git - clang/commitdiff
Add 'referringDecl' field to CXCursor to prepare the way to better model declaration...
authorTed Kremenek <kremenek@apple.com>
Wed, 13 Jan 2010 19:59:20 +0000 (19:59 +0000)
committerTed Kremenek <kremenek@apple.com>
Wed, 13 Jan 2010 19:59:20 +0000 (19:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93343 91177308-0d34-0410-b5e6-96231b3b80d8

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

index 47f10e366358e58ccac9db65a004db6a0bb2b92d..f11a9eb76f43dc03a7fe28f16d40b3253c075599 100644 (file)
@@ -139,6 +139,7 @@ typedef struct {
   enum CXCursorKind kind;
   CXDecl decl;
   CXStmt stmt; /* expression reference */
+  CXDecl referringDecl;
 } CXCursor;  
 
 /* A unique token for looking up "visible" CXDecls from a CXTranslationUnit. */
index ff8124de467eaee199c370ca9b0ee56ea3128011..72d0837fd1d0fd85ec6b39d0ec18fc6c6e68de07 100644 (file)
@@ -188,7 +188,7 @@ private:
     if (ND->isImplicit())
       return;
 
-    CXCursor C = { CK, ND, 0 };
+    CXCursor C = { CK, ND, 0, 0 };
     Callback(Root, C, CData);
   }
 
@@ -289,7 +289,7 @@ class CDeclVisitor : public DeclVisitor<CDeclVisitor> {
     if (ND->getPCHLevel() > MaxPCHLevel)
       return;
 
-    CXCursor C = { CK, ND, 0 };
+    CXCursor C = { CK, ND, 0, 0 };
     Callback(CDecl, C, CData);
   }
 public:
@@ -931,7 +931,7 @@ CXCursor clang_getCursor(CXTranslationUnit CTUnit, const char *source_name,
   const FileEntry *File = FMgr.getFile(source_name,
                                        source_name+strlen(source_name));
   if (!File) {
-    CXCursor C = { CXCursor_InvalidFile, 0, 0 };
+    CXCursor C = { CXCursor_InvalidFile, 0, 0, 0 };
     return C;
   }
   SourceLocation SLoc =
@@ -951,28 +951,28 @@ CXCursor clang_getCursor(CXTranslationUnit CTUnit, const char *source_name,
   if (Dcl) {
     if (Stm) {
       if (DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(Stm)) {
-        CXCursor C = { TranslateDeclRefExpr(DRE), Dcl, Stm };
+        CXCursor C = { TranslateDeclRefExpr(DRE), Dcl, Stm, 0 };
         return C;
       } else if (ObjCMessageExpr *MExp = dyn_cast<ObjCMessageExpr>(Stm)) {
-        CXCursor C = { CXCursor_ObjCSelectorRef, Dcl, MExp };
+        CXCursor C = { CXCursor_ObjCSelectorRef, Dcl, MExp, 0 };
         return C;
       }
       // Fall through...treat as a decl, not a ref.
     }
     if (ALoc.isNamedRef()) {
       if (isa<ObjCInterfaceDecl>(Dcl)) {
-        CXCursor C = { CXCursor_ObjCClassRef, Dcl, ALoc.getParentDecl() };
+        CXCursor C = { CXCursor_ObjCClassRef, Dcl, ALoc.getParentDecl(), 0 };
         return C;
       }
       if (isa<ObjCProtocolDecl>(Dcl)) {
-        CXCursor C = { CXCursor_ObjCProtocolRef, Dcl, ALoc.getParentDecl() };
+        CXCursor C = { CXCursor_ObjCProtocolRef, Dcl, ALoc.getParentDecl(), 0 };
         return C;
       }
     }
-    CXCursor C = { TranslateKind(Dcl), Dcl, 0 };
+    CXCursor C = { TranslateKind(Dcl), Dcl, 0, 0 };
     return C;
   }
-  CXCursor C = { CXCursor_NoDeclFound, 0, 0 };
+  CXCursor C = { CXCursor_NoDeclFound, 0, 0, 0 };
   return C;
 }
 
@@ -992,7 +992,7 @@ CXCursor clang_getCursorFromDecl(CXDecl AnonDecl) {
   assert(AnonDecl && "Passed null CXDecl");
   NamedDecl *ND = static_cast<NamedDecl *>(AnonDecl);
 
-  CXCursor C = { TranslateKind(ND), ND, 0 };
+  CXCursor C = { TranslateKind(ND), ND, 0, 0 };
   return C;
 }