a more complete bugfix, this fixes the typedef type checking for arrays.<br><br>Index: Sema/SemaDecl.cpp<br>===================================================================<br>--- Sema/SemaDecl.cpp (revision 46257)<br>
+++ Sema/SemaDecl.cpp (working copy)<br>@@ -296,8 +296,8 @@<br> if (hasUndefinedLength(NewAT) || hasUndefinedLength(OldAT)) {<br> if (NewAT->getIndexTypeQualifier() != OldAT->getIndexTypeQualifier())<br> return false;
<br>- NewQType = NewAT->getElementType();<br>- OldQType = OldAT->getElementType();<br>+ NewQType = NewAT->getElementType().getCanonicalType();<br>+ OldQType = OldAT->getElementType().getCanonicalType();
<br> }<br><br> return NewQType == OldQType;<br>@@ -338,10 +338,12 @@<br> return New;<br> }<br> // We've verified the types match, now check if Old is "extern".<br>+ /*<br> if (Old->getStorageClass() != VarDecl::Extern) {
<br> Diag(New->getLocation(), diag::err_redefinition, New->getName());<br> Diag(Old->getLocation(), diag::err_previous_definition);<br> }<br>+ */<br> return New;<br> }<br><br>