diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2009-06-30 00:17:27 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2009-06-30 00:17:27 +0000 |
| commit | e853bfa970331bcd538b8cd286a8205265a825e1 (patch) | |
| tree | 4deedcb3bc2a1e3e75b01db02186ba59b22cb8b6 /clang/lib/Sema | |
| parent | 7b366b5d47372d9104dbed6de9a0e7f2f5c92924 (diff) | |
| download | bcm5719-llvm-e853bfa970331bcd538b8cd286a8205265a825e1.tar.gz bcm5719-llvm-e853bfa970331bcd538b8cd286a8205265a825e1.zip | |
Take care of Chris's comments.
llvm-svn: 74486
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index e59236c8a4e..1172d3e01b5 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -768,28 +768,29 @@ void Sema::ActOnMemInitializers(DeclPtrTy ConstructorDecl, Diag(ColonLoc, diag::err_only_constructors_take_base_inits); return; } - llvm::DenseMap<uintptr_t, CXXBaseOrMemberInitializer *>Members; + llvm::DenseMap<void*, CXXBaseOrMemberInitializer *>Members; for (unsigned i = 0; i < NumMemInits; i++) { CXXBaseOrMemberInitializer *Member = static_cast<CXXBaseOrMemberInitializer*>(MemInits[i]); CXXBaseOrMemberInitializer *&PrevMember = Members[Member->getBaseOrMember()]; - if (!PrevMember) + if (!PrevMember) { PrevMember = Member; + continue; + } + if (FieldDecl *Field = Member->getMember()) + Diag(Member->getSourceLocation(), + diag::error_multiple_mem_initialization) + << Field->getNameAsString(); else { - if (FieldDecl *Field = Member->getMember()) - Diag(Member->getSourceLocation(), - diag::error_multiple_mem_initialization) - << Field->getNameAsString(); - else if (Type *BaseClass = Member->getBaseClass()) - Diag(Member->getSourceLocation(), - diag::error_multiple_base_initialization) - << BaseClass->getDesugaredType(true); - else - assert(false && "ActOnMemInitializers - neither field or base"); - Diag(PrevMember->getSourceLocation(), diag::note_previous_initializer) - << 0; + Type *BaseClass = Member->getBaseClass(); + assert(BaseClass && "ActOnMemInitializers - neither field or base"); + Diag(Member->getSourceLocation(), + diag::error_multiple_base_initialization) + << BaseClass->getDesugaredType(true); } + Diag(PrevMember->getSourceLocation(), diag::note_previous_initializer) + << 0; } } |

