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>