]> granicus.if.org Git - clang/commitdiff
Change cursor behavior for attributes to have them visited as part of recursing
authorTed Kremenek <kremenek@apple.com>
Thu, 18 Feb 2010 18:47:01 +0000 (18:47 +0000)
committerTed Kremenek <kremenek@apple.com>
Thu, 18 Feb 2010 18:47:01 +0000 (18:47 +0000)
to the children of a Decl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96599 91177308-0d34-0410-b5e6-96231b3b80d8

test/Index/c-index-api-loadTU-test.m
tools/CIndex/CIndex.cpp

index 555990306850553f5cd945303a1bc7917bc377ce..85cfac37bef5254577ba938528a888971d64255f 100644 (file)
@@ -55,8 +55,8 @@ int main (int argc, const char * argv[]) {
 }
 
 // CHECK: c-index-api-loadTU-test.m:4:12: ObjCInterfaceDecl=Foo:4:12 Extent=[4:1 - 12:5]
-// CHECK: c-index-api-loadTU-test.m:6:32: attribute(iboutlet)= Extent=[6:32 - 6:40]
 // CHECK: c-index-api-loadTU-test.m:6:32: ObjCIvarDecl=myoutlet:6:32 (Definition) Extent=[6:32 - 6:40]
+// CHECK: c-index-api-loadTU-test.m:6:32: attribute(iboutlet)= Extent=[6:32 - 6:40]
 // CHECK: c-index-api-loadTU-test.m:6:29: TypeRef=id:0:0 Extent=[6:29 - 6:31]
 // CHECK: c-index-api-loadTU-test.m:9:1: ObjCInstanceMethodDecl=foo:9:1 Extent=[9:1 - 9:7]
 // CHECK: c-index-api-loadTU-test.m:10:1: ObjCClassMethodDecl=fooC:10:1 Extent=[10:1 - 10:8]
index cb81988d9517b9571c431cbe68cb41c707b89629..61e9210aa503ea4468c3452fbeef7a6ec0d72484 100644 (file)
@@ -404,7 +404,7 @@ bool CursorVisitor::VisitChildren(CXCursor Cursor) {
   if (clang_isDeclaration(Cursor.kind)) {
     Decl *D = getCursorDecl(Cursor);
     assert(D && "Invalid declaration cursor");
-    return Visit(D);
+    return VisitAttributes(D) || Visit(D);
   }
 
   if (clang_isStatement(Cursor.kind))
@@ -438,12 +438,6 @@ bool CursorVisitor::VisitDeclContext(DeclContext *DC) {
   for (DeclContext::decl_iterator
        I = DC->decls_begin(), E = DC->decls_end(); I != E; ++I) {
 
-    // Attributes currently don't have source ranges.  We only report them
-    // when the client hasn't specified a region of interest.
-    if (!RegionOfInterest.isValid())
-      if (VisitAttributes(*I))
-        return true;
-
     CXCursor Cursor = MakeCXCursor(*I, TU);
 
     if (RegionOfInterest.isValid()) {