diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-11-23 21:11:23 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-11-23 21:11:23 +0000 |
commit | a72450057b032bc2f21f311d5edfa6200513cf59 (patch) | |
tree | e1bd41887f44aaad9761bb1fb91fee6b3b3dda72 | |
parent | 8ad3bab5057fedbe4cec33e27684d28b22fc97e2 (diff) | |
download | bcm5719-llvm-a72450057b032bc2f21f311d5edfa6200513cf59.tar.gz bcm5719-llvm-a72450057b032bc2f21f311d5edfa6200513cf59.zip |
[PCH] Check for isTopLevelDeclInObjCContainer when picking abbreviations.
llvm-svn: 145110
-rw-r--r-- | clang/lib/Serialization/ASTWriterDecl.cpp | 5 | ||||
-rw-r--r-- | clang/test/Index/annotate-toplevel-in-objccontainer.m | 6 | ||||
-rw-r--r-- | clang/test/Index/annotate-toplevel-in-objccontainer.m.h | 2 |
3 files changed, 10 insertions, 3 deletions
diff --git a/clang/lib/Serialization/ASTWriterDecl.cpp b/clang/lib/Serialization/ASTWriterDecl.cpp index 22b3acabd4e..ac1f89936d0 100644 --- a/clang/lib/Serialization/ASTWriterDecl.cpp +++ b/clang/lib/Serialization/ASTWriterDecl.cpp @@ -184,6 +184,7 @@ void ASTDeclWriter::VisitTypedefDecl(TypedefDecl *D) { D->RedeclLink.getNext() == D && !D->isInvalidDecl() && !D->isReferenced() && + !D->isTopLevelDeclInObjCContainer() && D->getAccess() == AS_none && !D->isModulePrivate() && D->getDeclName().getNameKind() == DeclarationName::Identifier) @@ -234,6 +235,7 @@ void ASTDeclWriter::VisitEnumDecl(EnumDecl *D) { D->RedeclLink.getNext() == D && !D->isInvalidDecl() && !D->isReferenced() && + !D->isTopLevelDeclInObjCContainer() && D->getAccess() == AS_none && !D->isModulePrivate() && !CXXRecordDecl::classofKind(D->getKind()) && @@ -257,6 +259,7 @@ void ASTDeclWriter::VisitRecordDecl(RecordDecl *D) { D->RedeclLink.getNext() == D && !D->isInvalidDecl() && !D->isReferenced() && + !D->isTopLevelDeclInObjCContainer() && D->getAccess() == AS_none && !D->isModulePrivate() && !CXXRecordDecl::classofKind(D->getKind()) && @@ -627,6 +630,7 @@ void ASTDeclWriter::VisitFieldDecl(FieldDecl *D) { !D->isUsed(false) && !D->isInvalidDecl() && !D->isReferenced() && + !D->isTopLevelDeclInObjCContainer() && !D->isModulePrivate() && !D->getBitWidth() && !D->hasInClassInitializer() && @@ -679,6 +683,7 @@ void ASTDeclWriter::VisitVarDecl(VarDecl *D) { !D->isUsed(false) && !D->isInvalidDecl() && !D->isReferenced() && + !D->isTopLevelDeclInObjCContainer() && D->getAccess() == AS_none && !D->isModulePrivate() && D->getDeclName().getNameKind() == DeclarationName::Identifier && diff --git a/clang/test/Index/annotate-toplevel-in-objccontainer.m b/clang/test/Index/annotate-toplevel-in-objccontainer.m index 61c0f04a1b1..cd1903b7f88 100644 --- a/clang/test/Index/annotate-toplevel-in-objccontainer.m +++ b/clang/test/Index/annotate-toplevel-in-objccontainer.m @@ -27,7 +27,7 @@ static int glob2; // CHECK-IMPL: Identifier: "meth1" [14:8 - 14:13] ObjCInstanceMethodDecl=meth1:14:1 (Definition) // CHECK-IMPL: Identifier: "meth2" [15:8 - 15:13] ObjCInstanceMethodDecl=meth2:15:1 (Definition) -// RUN: c-index-test -test-annotate-tokens=%s.h:5:1:7:1 %s -include %t.h \ +// RUN: c-index-test -test-annotate-tokens=%s.h:7:1:9:1 %s -include %t.h \ // RUN: | FileCheck -check-prefix=PCH %s -// CHECK-PCH: Identifier: "meth1" [5:8 - 5:13] ObjCInstanceMethodDecl=meth1:5:1 -// CHECK-PCH: Identifier: "meth2" [6:8 - 6:13] ObjCInstanceMethodDecl=meth2:6:1 +// CHECK-PCH: Identifier: "meth1" [7:8 - 7:13] ObjCInstanceMethodDecl=meth1:7:1 +// CHECK-PCH: Identifier: "meth2" [8:8 - 8:13] ObjCInstanceMethodDecl=meth2:8:1 diff --git a/clang/test/Index/annotate-toplevel-in-objccontainer.m.h b/clang/test/Index/annotate-toplevel-in-objccontainer.m.h index 191a10cf935..fe507fc0b7c 100644 --- a/clang/test/Index/annotate-toplevel-in-objccontainer.m.h +++ b/clang/test/Index/annotate-toplevel-in-objccontainer.m.h @@ -2,6 +2,8 @@ void funcPCH1(int); void funcPCH2(int); +enum E { Cake }; + -(void)meth1; -(void)meth2; @end |