diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-05-03 01:08:28 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-05-03 01:08:28 +0000 |
commit | ad04e6737e3267a502970acac8abb54b0c899db6 (patch) | |
tree | fec4ab1e66a4f719cc4437a8f20b7f0295006784 | |
parent | 3e001f393d112a50e13c9a8f9a4c0d97f3f51cf4 (diff) | |
download | clang-ad04e6737e3267a502970acac8abb54b0c899db6.tar.gz |
Fix invalid error about duplicate declaration of padding bit field in
an interface.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70652 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Sema/SemaDecl.cpp | 14 | ||||
-rw-r--r-- | test/SemaObjC/duplicate-ivar-check.m | 2 |
2 files changed, 10 insertions, 6 deletions
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index 3ae2ba14c9..9647740b14 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -3980,12 +3980,14 @@ void Sema::ActOnFields(Scope* S, for (ObjCInterfaceDecl::ivar_iterator IVI = ID->ivar_begin(), IVE = ID->ivar_end(); IVI != IVE; ++IVI) { ObjCIvarDecl* Ivar = (*IVI); - IdentifierInfo *II = Ivar->getIdentifier(); - ObjCIvarDecl* prevIvar = - ID->getSuperClass()->lookupInstanceVariable(Context, II); - if (prevIvar) { - Diag(Ivar->getLocation(), diag::err_duplicate_member) << II; - Diag(prevIvar->getLocation(), diag::note_previous_declaration); + + if (IdentifierInfo *II = Ivar->getIdentifier()) { + ObjCIvarDecl* prevIvar = + ID->getSuperClass()->lookupInstanceVariable(Context, II); + if (prevIvar) { + Diag(Ivar->getLocation(), diag::err_duplicate_member) << II; + Diag(prevIvar->getLocation(), diag::note_previous_declaration); + } } } } diff --git a/test/SemaObjC/duplicate-ivar-check.m b/test/SemaObjC/duplicate-ivar-check.m index a5e2cb918e..7cab982e6e 100644 --- a/test/SemaObjC/duplicate-ivar-check.m +++ b/test/SemaObjC/duplicate-ivar-check.m @@ -3,6 +3,7 @@ @interface B1 { @public double fill_B; // expected-note {{previous declaration is here}} + unsigned : 0; } @end @@ -10,6 +11,7 @@ @public int one; // expected-note {{previous declaration is here}} int one; // expected-error {{duplicate member 'one'}} + unsigned : 0; } @end |