diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2010-09-23 14:26:01 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2010-09-23 14:26:01 +0000 |
commit | 2b64239a8ef4829be7b2c32eff60d8de204b4e2c (patch) | |
tree | d02aff7e9c6f810202ac2f66344a9b0faea8d291 /lib/Sema | |
parent | f765d76407d82e629337bba4ca6c26bdfc8bc9a6 (diff) |
Fix bogus compiler errors when declaring anonymous union, outside a class, with
members with the same name as a decl outside the scope where the members are actually introduced.
Fixes http://llvm.org/PR6741
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114641 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema')
-rw-r--r-- | lib/Sema/SemaDecl.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index 0b3e60f82a..48e36a9dc4 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -1707,11 +1707,10 @@ static bool CheckAnonMemberRedeclaration(Sema &SemaRef, // Pick a representative declaration. NamedDecl *PrevDecl = R.getRepresentativeDecl()->getUnderlyingDecl(); - if (PrevDecl && Owner->isRecord()) { - RecordDecl *Record = cast<RecordDecl>(Owner); - if (!SemaRef.isDeclInScope(PrevDecl, Record, S)) - return false; - } + assert(PrevDecl && "Expected a non-null Decl"); + + if (!SemaRef.isDeclInScope(PrevDecl, Owner, S)) + return false; SemaRef.Diag(NameLoc, diagnostic) << Name; SemaRef.Diag(PrevDecl->getLocation(), diag::note_previous_declaration); |