From: Peter Collingbourne Date: Sun, 23 Oct 2011 18:59:37 +0000 (+0000) Subject: Clean up duplicated code in Sema::BuildMemInitializer. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dc69be23b1e8e02e831d192e479bd4881382cfc5;p=clang Clean up duplicated code in Sema::BuildMemInitializer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142757 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index 2896e9f585..4c7ebbd56a 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/lib/Sema/SemaDeclCXX.cpp @@ -1778,29 +1778,18 @@ Sema::BuildMemInitializer(Decl *ConstructorD, // using a qualified name. ] if (!SS.getScopeRep() && !TemplateTypeTy) { // Look for a member, first. - FieldDecl *Member = 0; DeclContext::lookup_result Result = ClassDecl->lookup(MemberOrBase); if (Result.first != Result.second) { - Member = dyn_cast(*Result.first); - - if (Member) { + ValueDecl *Member; + if ((Member = dyn_cast(*Result.first)) || + (Member = dyn_cast(*Result.first))) { if (EllipsisLoc.isValid()) Diag(EllipsisLoc, diag::err_pack_expansion_member_init) << MemberOrBase << SourceRange(IdLoc, Args.getEndLoc()); return BuildMemberInitializer(Member, Args, IdLoc); } - - // Handle anonymous union case. - if (IndirectFieldDecl* IndirectField - = dyn_cast(*Result.first)) { - if (EllipsisLoc.isValid()) - Diag(EllipsisLoc, diag::err_pack_expansion_member_init) - << MemberOrBase << SourceRange(IdLoc, Args.getEndLoc()); - - return BuildMemberInitializer(IndirectField, Args, IdLoc); - } } } // It didn't name a member, so see if it names a class.