Fix a C++ regression where redefinitions weren't diagnosed.
llvm-svn: 95096
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp
index 894206a..a2cf738 100644
--- a/clang/lib/AST/Decl.cpp
+++ b/clang/lib/AST/Decl.cpp
@@ -553,7 +553,9 @@
}
VarDecl *VarDecl::getDefinition() {
- for (redecl_iterator I = redecls_begin(), E = redecls_end(); I != E; ++I) {
+ VarDecl *First = getFirstDeclaration();
+ for (redecl_iterator I = First->redecls_begin(), E = First->redecls_end();
+ I != E; ++I) {
if ((*I)->isThisDeclarationADefinition() == Definition)
return *I;
}