From dc69be23b1e8e02e831d192e479bd4881382cfc5 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Sun, 23 Oct 2011 18:59:37 +0000 Subject: [PATCH] Clean up duplicated code in Sema::BuildMemInitializer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142757 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/SemaDeclCXX.cpp | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) 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. -- 2.50.1