summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-11-23 21:11:23 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-11-23 21:11:23 +0000
commita72450057b032bc2f21f311d5edfa6200513cf59 (patch)
treee1bd41887f44aaad9761bb1fb91fee6b3b3dda72 /clang
parent8ad3bab5057fedbe4cec33e27684d28b22fc97e2 (diff)
downloadbcm5719-llvm-a72450057b032bc2f21f311d5edfa6200513cf59.tar.gz
bcm5719-llvm-a72450057b032bc2f21f311d5edfa6200513cf59.zip
[PCH] Check for isTopLevelDeclInObjCContainer when picking abbreviations.
llvm-svn: 145110
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Serialization/ASTWriterDecl.cpp5
-rw-r--r--clang/test/Index/annotate-toplevel-in-objccontainer.m6
-rw-r--r--clang/test/Index/annotate-toplevel-in-objccontainer.m.h2
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
OpenPOWER on IntegriCloud